Messages in this thread | | | Date | Mon, 31 Mar 2014 14:58:17 -0400 | From | Tejun Heo <> | Subject | [GIT PULL] percpu changes for v3.15-rc1 |
| |
Hello, Linus.
percpu allocation is now popular enough for the extremely naive range allocator to cause scalability issues. The existing allocator linearly scanned the allocation map on both alloc and free without making use of hint or anything. Al reimplemented the range allocator so that it can use binary search instead of linear scan during free and alloc path uses simple hinting to avoid scanning in common cases. Combined, the new allocator resolves the scalability issue percpu allocator was showing during container benchmark workload.
The following changes since commit 0f0ca14386e0431fbedaae5efc550d46cf93b9cf:
Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging (2014-02-22 08:29:25 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git for-3.15
for you to fetch changes up to 21ddfd38ee9aac804d22beaceed4c7b903cca234:
percpu: renew the max_contig if we merge the head and previous block (2014-03-29 09:29:42 -0400)
Thanks.
---------------------------------------------------------------- Al Viro (4): perpcu: fold pcpu_split_block() into the only caller percpu: store offsets instead of lengths in ->map[] percpu: speed alloc_pcpu_area() up percpu: allocation size should be even
Jianyu Zhan (1): percpu: renew the max_contig if we merge the head and previous block
mm/percpu.c | 208 ++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 112 insertions(+), 96 deletions(-)
-- tejun
| |