I have been maintaining a set of patches based on the reimplemented dynamic
per-cpu allocator. I would like to have them included in -mm for testing
and maybe merged when the mainline merge window opens :)...
The reimplementation of the dynamic per-cpu allocator has been published
earlier and discussed, But the re-implementation with the applications and
supporting numbers weren't published earlier. Here is an attempt towards
the same.
This patchset contains
a) Reimplementation of alloc_percpu.
b) Rusty's implementation of distributed reference counters (bigrefs)
c) Code to change struct netdevice.refcnt to bigrefs -- this patch improves
tbench performance by 6% on a 8 way 3.00 GHZ x86 Intel xeon (x445).
d) Code to change struct dst_entry.__refcnt per-cpu. This patch was
originally submitted sometime back by Christoph. The reworked patch uses
alloc_percpu, and struct dst_entry does not bloat up now. This patch along with
the netdevice ref-counter patch above gives a whopping 55 % improvement on
tbench on a 8way x86 xeon (x445). The same patchset resulted in 30% better
tbench throughput on a x460 (8 way 3.3 Ghz x86_64 xeon).
All tbench numbers were on loopback with 8 clients.
The patches consist of
1. vmalloc_fixup
(Fix up __get_vm_area to take gfp flags as extra arg -- preparatory for 3.)
2. alloc_percpu
(Main allocator)
3. alloc_percpu_atomic
(Add GFP_FLAGS args to alloc_percpu -- for dst_entry.refcount)
4.change_alloc_percpu_users
(Change alloc_percpu users to use modified interface (with gfp_flags))
5. add_getcpuptr
(This is needed for bigrefs)
6. bigrefs
(Fixed up bigref from rusty)
7. netdev_refcnt_bigref.patch
(Bigref based netdev refcount)
8. dst_abstraction
9. dst_alloc_percpu
(dst_entry.refcount patches)
10. allow_early_mapvmarea
11. hotplug_alloc_percpu_blocks
(If alloc_percpu needs to be used real early then these patches will be
needed. This patch allows us to use bigrefs/alloc_percpu for refcounters
like struct vfsmount.mnt_count)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
|
|