Unreliable Guide To Locking | ||
---|---|---|
Prev | Chapter 2. Two Main Types of Kernel Locks: Spinlocks and Semaphores | Next |
Often a softirq might want to share data with itself, a tasklet, or a bottom half.
The same softirq can run on the other CPUs: you can use a per-CPU array (see the section called Per-CPU Data in Chapter 4) for better performance. If you're going so far as to use a softirq, you probably care about scalable performance enough to justify the extra complexity.
You'll need to use spin_lock() and spin_unlock() for shared data.
You'll need to use spin_lock() and spin_unlock() for shared data, whether it be a timer (which can be running on a different CPU), bottom half, tasklet or the same or another softirq.