Re: [PATCH 00/13] Re: Scalability requirements for sysv ipc

From: Manfred Spraul
Date: Mon Apr 14 2008 - 14:54:42 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/