Messages in this thread | | | Subject | Re: kmalloc without GFP_xxx? | From | Benjamin Herrenschmidt <> | Date | Thu, 30 Jun 2005 11:02:53 +1000 |
| |
On Wed, 2005-06-29 at 09:44 -0400, Steven Rostedt wrote: > > On Wed, 29 Jun 2005, Arjan van de Ven wrote: > > > > > > but it sets irqs_disabled() IIRC. > > > > only spin_lock_irq() and co do. > > not the simple spin_lock() > > > > It may be dangerous to use spin_lock with interrupts enabled, since you > have to make sure that no interrupt ever grabs that lock. Although I do > recall seeing a few locks like this. But even so, you can transfer the > latency of the interrupts going off while holding that lock to another CPU > which IMHO is a bad thing. Also a simple spin_lock would disable > preemption with CONFIG_PREEMPT set and that would make in_atomic fail. > But to implement a kmalloc_auto you would always need to have a preempt > count.
There are cases where using spin_lock instead of _irqsave version is a matter of correctness. For example, the page table lock beeing always taking without _irq is important to let the IPIs flow.
Ben.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |