On Fri, Sep 26, 2008 at 11:02:01PM +0800, Sepherosa Ziehau wrote: > On Wed, Sep 24, 2008 at 9:05 PM, YONETANI Tomokazu <[EMAIL PROTECTED]> wrote: > > On Tue, Sep 23, 2008 at 12:31:52AM +0200, Thomas Nikolajsen wrote: > >> - on SMP nfs server (from 21:19 also server) - didn“t notice any ill > >> effect > >> Sep 22 18:24:04 boy kernel: spin_lock: 0xc6087fdc, indefinite wait! > >> Sep 22 19:08:10 boy kernel: spin_lock: 0xc6087fdc, indefinite wait! > >> Sep 22 21:37:18 boy kernel: spin_lock: 0xc6087fdc, indefinite wait! > >> Sep 22 22:03:27 boy kernel: spin_lock: 0xc6087fdc, indefinite wait! > > > > Does it cease you set kern.intr_mpsafe to 0? I started seeing it, > > especially frequently on DragonFly as a VMWare guest, after it's been > > changed to 1 by default. > > Could you test following patch on HEAD? > http://leaf.dragonflybsd.org/~sephe/nata_nompsafe.diff > > It works for me at least :)
Hey, you've already committed it :) Yes, it works for me, too. I also tweaked nata driver(using sys_cputimer->count()) and found that - `indefinite wait!' message is displayed when spin_lock_wr() is called from ata_start(), to lock state_mtx - ata_interrupt takes too long while it's holding state_mtx when it calls ch->hw.end_transaction. digging further, it's callout_stop() right below the `end_finished' label in ata_end_transaction() that is taking long time (> sys_cputimer->freq) I'll try diving into callout_stop() later. Cheers.
