hi, is a nointr pool safe for this pmap? iirc x86 pmap allocates pv entries from kmem_map to avoid this kind of recursion.
YAMAMOTO Takashi > Module Name: src > Committed By: tsutsui > Date: Sat Oct 29 18:26:20 UTC 2011 > > Modified Files: > src/sys/arch/m68k/include: pmap_motorola.h > src/sys/arch/m68k/m68k: pmap_motorola.c > > Log Message: > Use pool(9) for struct pv_entry allocations rather than > uvm_km_alloc(9)/uvm_km_free(9) and ancient homegrown pv_page_info structures. > > Calling uvm_km_free(9) during pmap_remove(9) could cause rw_lock error > in uvm_unmap1() as noted in PR port-m68k/45519. > > NetBSD/x68k (both real X68030 and XM6i emulator) still gets weird panic > (corrupted kernel stack pointer?) on some heavy load: > --- > panic: MMU fault > Stopped in pid 363.1 (X68k) at netbsd:cpu_Debugger+0x6: unlk a6 > db> tr > cpu_Debugger(4012004,8,1cbb528,2a618e0,2a5b000) + 6 > db> > --- > but it also occurs without this change so there might be some more bugs > in m68k pmap... > > > To generate a diff of this commit: > cvs rdiff -u -r1.33 -r1.34 src/sys/arch/m68k/include/pmap_motorola.h > cvs rdiff -u -r1.62 -r1.63 src/sys/arch/m68k/m68k/pmap_motorola.c > > Please note that diffs are not public domain; they are subject to the > copyright notices on the relevant files.