Messages in this thread |  | | | Date | Mon, 14 Apr 2008 20:54:23 +0200 | | From | Manfred Spraul <> | | Subject | Re: [PATCH 00/13] Re: Scalability requirements for sysv ipc |
Nadia Derbey wrote: > > Well, 1 interface changes, 1 is added and another one went away: > > 1) for the preload part (it becomes like the radix-tree preload part): > > int idr_pre_get(struct idr *, gfp_t); > would become > int idr_pre_get(gfp_t); > Btw, that's one point I didn't understand about the idr code: Is it interrupt-safe? It uses spin_lock_irqsave and gfp_t, this implies that it could be called from all contexts.
But the prealloc made me a bit nervous: does it handle idr_pre_get(); interrupt with another idr_pre_get(), add, pre_get_end, interrupt ends, ... correctly? If it's only intended to be called from process context I would remove the _irqsave and perhaps add an assert(!in_interrupt()) -- Manfred
|  |