dect
/
linux-2.6
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/arch
Tejun Heo c8826dd538 percpu: update embedding first chunk allocator to handle sparse units
Now that percpu core can handle very sparse units, given that vmalloc
space is large enough, embedding first chunk allocator can use any
memory to build the first chunk.  This patch teaches
pcpu_embed_first_chunk() about distances between cpus and to use
alloc/free callbacks to allocate node specific areas for each group
and use them for the first chunk.

This brings the benefits of embedding allocator to NUMA configurations
- no extra TLB pressure with the flexibility of unified dynamic
allocator and no need to restructure arch code to build memory layout
suitable for percpu.  With units put into atom_size aligned groups
according to cpu distances, using large page for dynamic chunks is
also easily possible with falling back to reuglar pages if large
allocation fails.

Embedding allocator users are converted to specify NULL
cpu_distance_fn, so this patch doesn't cause any visible behavior
difference.  Following patches will convert them.

Signed-off-by: Tejun Heo <tj@kernel.org>
2009-08-14 15:00:52 +09:00
..
alpha Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
arm Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
avr32 Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
blackfin Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
cris Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
frv Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
h8300 Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
ia64 Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
m32r Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
m68k Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
m68knommu Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
microblaze Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
mips Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
mn10300 Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
parisc Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
powerpc Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
s390 Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
sh Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
sparc percpu: add pcpu_unit_offsets[] 2009-08-14 15:00:51 +09:00
um Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
x86 percpu: update embedding first chunk allocator to handle sparse units 2009-08-14 15:00:52 +09:00
xtensa Merge branch 'percpu-for-linus' into percpu-for-next 2009-08-14 14:45:31 +09:00
.gitignore
Kconfig gcov: add gcov profiling infrastructure 2009-06-18 13:03:57 -07:00