Re: kmem_cache_alloc & kernel_lock

Ingo Molnar
2001-12-09T15:47:08Z

On Sun, 9 Dec 2001, Frank Cornelis wrote:

> Can I use kmem_cache_alloc(mycache_cachep, SLAB_KERNEL) within a
> kernel_lock/kernel_unlock block? Or should it be SLAB_ATOMIC?

kernel_lock/kernel_unlock is not a spinlock in the classic Linux sense.
It's automatically undone on scheduling, so you can hold it while
rescheduling, and it will be automatically re-acquired once the process
gets runnable again.

Ingo