Hello, Andrew.

On Fri, Feb 22, 2013 at 2:44 PM, Andrew Morton
<a...@linux-foundation.org> wrote:
> Not "guarantee".
>
> - idr_preload() might fail.  It is a design error that idr_preload()
>   returns void - it should do what radix_tree_preload() does.

That would equal to GFP_KERNEL allocation failing. The error isn't
ignored. It gets propagated to the actual idr_alloc() allocation.
You're just collecting the error later.

> - even if idr_preload() completed the preload, an interrupt might
>   come in and its handler might drain this cpu's preload pool.

Non-process context doesn't dip into preload pool, so the first
allocation after idr_preload() is *guaranteed* to fail iff the
previous idr_preload(GFP_KERNEL) failed and there just isn't much we
can do other than failing if GFP_KERNEL allocation fails.

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to