[openib-general] Re: ipoib and core patches for 2.6.17

Michael S. Tsirkin mst at mellanox.co.il
Thu Mar 2 11:33:37 PST 2006


Quoting r. Roland Dreier <rdreier at cisco.com>:
> Subject: Re: ipoib and core patches for 2.6.17
> 
>     Michael> I wander why. However, since ipoib workqueue is
>     Michael> single-threaded, this gives us a drastically simple
>     Michael> solution to all synchronisation problems, good for
>     Michael> everything that isn't data-path.
> 
> I guess the main thing that I don't like is this:
> 
>  > -int ipoib_ib_dev_down(struct net_device *dev);
>  > +int ipoib_ib_dev_down(struct net_device *dev, int flush);
> 
> Now we have to worry about getting another flush flag correct, and I'd
> like to avoid that.

I see. I wish workqueue could simply be changed to do nothing on flush
if I'm running out of the same workqueue.
I'm not sure setting this as default behaviour will fly, but maybe
add an option for this? That would solve this problem, would it not?

> Also, the more different things there are in the same workqueue, the
> more we have to worry about deadlocks when flushing the workqueue.

Actually, since we dont hold any locks when flushing the queue,
we can't deadlock, can we?

>     Michael> Roland, how about adding a global, system-wide, single-threaded
>     Michael> wq to linux?  We might not be the only ones that have a
>     Michael> problem with the default per-CPU workqueue.
> 
> Not a bad idea to propose.  There are about 20 other single-threaded
> workqueues in the current tree, and some of them can probably be consolidated.

Okay, I'll see if I have the time to prepare such a patch.

-- 
Michael S. Tsirkin
Staff Engineer, Mellanox Technologies



More information about the general mailing list