Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD-current on amd64 with Dell PERC 4e/Di hangs under load



Christos Zoulas <christos%zoulas.com@localhost> writes:

> If LOCKDEBUG hangs, you have problems.... I'd try to get more
> information on that first.

It's the same hang; it just occurred a bit earlier with LOCKDEBUG,
possibly because the lowered performance of the kernel with that option
on meant that it got pushed over the edge by the /etc/rc startup.

> I fixed 49328 just now. Can you try it?

Tried that this morning, but it made no difference.

I've also tried adding some of the more recent bug fixes and
improvements from the FreeBSD amr driver to ours, but they didn't make
any difference either.  The one I didn't apply was the one where they
monitor for repeated EAGAIN failures on the same operation, to detect a
hung controller.  Instead, I made sure that every timeout, and every
EAGAIN due to a busy controller, will complain to the console.  There's
been no complaining so far, so I'm starting to think the amr driver
isn't the actual problem, after all - unless it's getting stuck in a way
that keeps the kernel printf() from writing to the console.

Below is latest hang (provoked after applying your patch).  As usual,
there are processors working on disk I/O and networking, and there's at
least one processor in the _kernel_lock() function.  I notice a CPU
handling an uhci interrupt, too.  That's a USB attached serial port, and
things got significantly worse when I added that (it's NUT monitoring my
UPS, chatting more or less continuously with it over a 1200bps link).

CPU 0:

bus_space_read_2()
uhci_intr()
Xintr_ioapic_level4()
---interrupt---
Xspllower()
kpreemtp_enable()
pmap_extract()
_bus_dmamap_load_buffer.isra.12()
bus_dmamap_load()
amr_ccb_map()
ld_amr_dobio()
ldstart()
lddone()
amr_intr()
intr_biglock_wrapper()
Xintr_ioapic_level1()
---interrupt---
Xspllower()
spec_strategy()
VOP_STRATEGY()
bwrite()
VOP_BWRITE()
wapbl_flush()
ffs_sync()
VFS_SYNC()
sync_fsync()
VOP_FSYNC()
sched_sync()

CPU 1:

x86_pause()
sleepq_block()
cv_timedwait()
ipmi_thread()

CPU 2:

x86_pause()
frag6_fasttimo()
pffasttimo()
callout_softclock()
softint_dispatch()
Xsoftintr()

CPU 3:

_kernel_lock()
bdev_strategy()
spec_strategy()
VOP_STRATEGY()
ufs_strategy()
VOP_STRATEGY()
bio_doread.isra.4()
bread()
ffs_read()
VOP_READ()
ufs_readdir()
VOP_READDIR()
vn_readdir()
sys___getdents30()
syscall()
---syscall 390---

-tih
-- 
Popularity is the hallmark of mediocrity.  --Niles Crane, "Frasier"


Home | Main Index | Thread Index | Old Index