[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Linux-cluster] GNBD: interrupt bug.



I seem to have found a bug in GNBD that I'm wondering if anyone else
has noticed.  On a Linux 2.6.9 host, mounting a remote GNBD partition,
i am hitting the WARN_ON in linux's local_bh_enable()
(kernel/softirq.c:141).  This results in repeated stack dumps,
effectively locking up the host.

After a bit of looking, it would appear that do_gnbd_request() in
gnbd.c expects to be called with interrupts disabled.  Unfortunately,
the entry through generic_unplug_device does not disable interrupts
first, and so the gnbd code is disagreeing.  The specific code in
gnbd.c that is causing problems is:

   spin_unlock_irq(q->queue_lock);
   ... 
   spin_lock_irq(q->queue_lock);

I'm planning to look at this a bit more tonight, but thought I'd
quickly check if anyone had initial insight.  I'm not yet sure if the
bug is on the Linux or the gnbd side here.

cheers,
a.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]