summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2014-09-02 20:46:05 +0200
committerTejun Heo <tj@kernel.org>2014-09-02 20:46:05 +0200
commit1a4d76076cda69b0abf15463a8cebc172406da25 (patch)
treeeb2f8e317795c30942ae298585708e10652e8537 /lib
parentpercpu: rename pcpu_reclaim_work to pcpu_balance_work (diff)
downloadlinux-1a4d76076cda69b0abf15463a8cebc172406da25.tar.xz
linux-1a4d76076cda69b0abf15463a8cebc172406da25.zip
percpu: implement asynchronous chunk population
The percpu allocator now supports atomic allocations by only allocating from already populated areas but the mechanism to ensure that there's adequate amount of populated areas was missing. This patch expands pcpu_balance_work so that in addition to freeing excess free chunks it also populates chunks to maintain an adequate level of populated areas. pcpu_alloc() schedules pcpu_balance_work if the amount of free populated areas is too low or after an atomic allocation failure. * PERPCU_DYNAMIC_RESERVE is increased by two pages to account for PCPU_EMPTY_POP_PAGES_LOW. * pcpu_async_enabled is added to gate both async jobs - chunk->map_extend_work and pcpu_balance_work - so that we don't end up scheduling them while the needed subsystems aren't up yet. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions