[PATCH] might_sleep on con_lock (was Re: [openib-general] SDP_CONN_LOCK)

Libor Michalek libor at topspin.com
Mon Mar 7 13:23:02 PST 2005


On Sun, Mar 06, 2005 at 12:38:40PM +0200, Michael S. Tsirkin wrote:
> Quoting r. Libor Michalek <libor at topspin.com>:
> > Subject: Re: [openib-general] SDP_CONN_LOCK
> > > >   They do implement exclusive access to the socket, but they implement
> > > > exclusive access from both process and irq context, which is why a
> > > > semaphore was not used. In interrupt context SDP_CONN_LOCK_BH is used
> > > > to lock the connection, look in sdp_cq_event_handler() for it's use,
> > > > and in process context SDP_CONN_LOCK is used.
> > > 
> > > I dont really understand how it works.
> > > When an interrupt arrives while users != 0, it seems you are
> > > calling scheduler().
> > > What is sdp_conn_internal_lock doing? I understand it is to be called
> > > from interrupt context, but how can it call scheduler() then?
> > 
> >   SDP_CONN_LOCK and SDP_CONN_UNLOCK are never called from interrupt
> > context, only from process context.
> 
> So how about this patch, to make sure we get a stack dump if they are:

Seems reasonable, I've applied and committed the patch.
Thanks Michael.

-Libor



More information about the general mailing list