On Tue, Apr 26, 2005 at 07:09:01PM -0700, Jay Vosburgh wrote:
>
> >dev_ioctl => bond_enslave => bond_check_dev_link => slave_dev->ioctl
>
> Why would it deadlock? dev_ioctl holds RTNL, bonding grabs
> various bond locks, and the slave device ioctl handler may or may not
> get a lock of its own.
I get it now. I had thought that it was calling sys_ioctl but it's
going direct to slave_dev->ioctl which bypasses the rtnl.
So the bond_enslave path is safe but the timer path isn't as you
noted previously.
> >For the amount of work that these timers are doing, the overhead is
> >pretty small. It is also gentler on the system when the CPU load
> >goes up.
>
> Just so I'm clear: by "the overhead" do you mean the overhead of
> running everything in a work queue, or the overhead of calling out from
> a timer to a work queue for "special occasions"?
I'm referring to running everything out of a work queue.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
|