Re: Locking Between User Context and Soft IRQs in 2.4.0

From: Andi Kleen (ak@suse.de)
Date: Sat Nov 04 2000 - 05:19:09 EST


On Sat, Nov 04, 2000 at 04:45:33AM -0500, Jeff Garzik wrote:
>
> > * What about dev->open and dev->stop ?
>
> Sleep all you want, we'll leave the light on for ya.

... but make sure you have no module unload races (or at least not too
huge holes, some are probably unavoidable with the current network
driver interface, e.g. without moving module count management a bit up).
This means you should do MOD_INC_USE_COUNT very early at least to
minimize the windows (and DEC_USE_COUNT very late)

> dev->do_ioctl:
> Locking: Inside rtnl_lock() semaphore.
> Sleeping: OK

Just make sure you lock against your interrupt and xmit threads.

> Locking: Inside dev->xmit_lock spinlock.
> Sleeping: NO[1]
>
>
> NOTE [1]: On principle, you should not sleep when a spinlock is held.
> However, since this spinlock is per-net-device, we only block ourselves
> if we sleep, so the effect is mitigated.

Sounds like dangerous advice.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Nov 07 2000 - 21:00:15 EST