Subject: missing some locking here? panic in -current...
To: None <port-sparc@netbsd.org>
From: Matthew Jacob <mjacob@feral.com>
List: port-sparc
Date: 01/10/1999 03:39:23
well, I was happily testing away when this occurred...

panic: pool_get(extent): free list modified: magic=f04910a8; page 0xf0491
000; item addr 0xf0491048

the DDB traceback is below. I'm not sure how to read it since the
traceback *appears* to have the dmamap unload happening after a load
which caused the panic.

Thoughts?

Stopped at      _Debugger+0x4:  jmpl            [%o7 + 0x8], %g0
db> t
_pool_get(0xf0465a00, 0x0, 0xf04910a8, 0xf0491000, 0xf0491048, 0x89b) at _pool_
get+0x19c
_extent_alloc_region_descriptor(0xf048bfa0, 0x0, 0xfe022000, 0xf01f0000, 0xf048
ab80, 0x1000) at _extent_alloc_region_descriptor+0xcc
_extent_free(0xf048bfa0, 0xfc04f000, 0x10000, 0x0, 0xf016c2d8, 0xf0172000) at _
extent_free+0xb8
_iommu_dmamap_unload(0xf0153144, 0xf0498800, 0xf00f3914, 0x10000, 0x2, 0xf00f39
98) at _iommu_dmamap_unload+0x54
_isp_sbus_dmateardown(0xf0499000, 0xf04900f0, 0xf0498800, 0xf00fdf94, 0x1f, 0x1
) at _isp_sbus_dmateardown+0x90
_isp_intr(0xf0499000, 0xf000b668, 0x0, 0x1, 0xf0147f40, 0xf0016b44) at _isp_int
r+0x580
_sparc_interrupt44c(0x7, 0x5, 0x0, 0x0, 0xf0147c30, 0x404000e1) at _sparc_inter
rupt44c+0x170
_printf(0xf014e800, 0x1, 0x15, 0xf049015a, 0xf0217088, 0xf0002000) at _printf+0
x4c
_panic(0xf003b798, 0x100, 0xf04910a8, 0xf0491000, 0xf0491048, 0x89b) at _panic+
0x40
_pool_get(0xf0465a00, 0x0, 0xf470c564, 0xf0174940, 0xffffffff, 0x200) at _pool_
get+0x19c
_extent_alloc_region_descriptor(0xf048bfa0, 0x0, 0xfc000000, 0xf0e9e0e0, 0xf016
c2d8, 0xf0172000) at _extent_alloc_region_descriptor+0xcc
_extent_alloc_subregion1(0xf048bfa0, 0xfc000000, 0xfe000000, 0x2000, 0x1000, 0x
0) at _extent_alloc_subregion1+0x120
_iommu_dmamap_load(0xf14c1000, 0xf0488e00, 0xf14c1000, 0x2000, 0x0, 0x1) at _io
mmu_dmamap_load+0x78
_lsi64854_setup(0xf048aa00, 0xf0486688, 0xf048668c, 0x1, 0xf0147f40, 0xf0016b44
) at _lsi64854_setup+0x150
_esp_dma_setup(0xf0486000, 0xf0486688, 0xf048668c, 0x1, 0xf0147f40, 0x28) at _e
sp_dma_setup+0x18
_ncr53c9x_intr(0xf0486000, 0xf0014ae0, 0x15, 0xf049015a, 0xf0217088, 0xf0002000
) at _ncr53c9x_intr+0x1554
_sparc_interrupt44c(0x0, 0x0, 0xf01411d8, 0x0, 0xffffffff, 0x89b) at _sparc_int
errupt44c+0x170
_mi_switch(0xbc97d, 0x3, 0xf470c564, 0xf0174940, 0xffffffff, 0x200) at _mi_swit
ch+0x1c8
_tsleep(0x0, 0x11, 0xf002f8c8, 0x0, 0x0, 0x2aff0000) at _tsleep+0x1e4
_physio(0x0, 0xf0508a80, 0x10000, 0x100000, 0xf010c1e8, 0xf470de28) at _physio+
0x274
_sdread(0x1118, 0xf470de28, 0x0, 0x2a8, 0xf010c264, 0x10000) at _sdread+0x20
_spec_read(0xf470dd98, 0x2c, 0xf0173000, 0xf0465400, 0xf0066758, 0xf0174310) at
 _spec_read+0xe0
_ufsspec_read(0xf470dd98, 0x2c, 0xf0465200, 0xf00def8c, 0xffffffff, 0x200) at _