percpu: implement [__]alloc_percpu_gfp()
authorTejun Heo <tj@kernel.org>
Tue, 2 Sep 2014 18:46:04 +0000 (14:46 -0400)
committerTejun Heo <tj@kernel.org>
Tue, 2 Sep 2014 18:46:04 +0000 (14:46 -0400)
commit5835d96e9ce4efdba8c6cefffc2f1575925456de
tree5d0419fff89fc11469be48e5935ebe46c0fb57fa
parente04d320838f573d8fa989a0d7af0972f9b0142d9
percpu: implement [__]alloc_percpu_gfp()

Now that pcpu_alloc_area() can allocate only from populated areas,
it's easy to add atomic allocation support to [__]alloc_percpu().
Update pcpu_alloc() so that it accepts @gfp and skips all the blocking
operations and allocates only from the populated areas if @gfp doesn't
contain GFP_KERNEL.  New interface functions [__]alloc_percpu_gfp()
are added.

While this means that atomic allocations are possible, this isn't
complete yet as there's no mechanism to ensure that certain amount of
populated areas is kept available and atomic allocations may keep
failing under certain conditions.

Signed-off-by: Tejun Heo <tj@kernel.org>
include/linux/percpu.h
mm/percpu.c