>linuxsymposium

July 20-23rd, 2005, Ottawa, Canada

Registration

Register/Submit Proposal

Content

Schedule
Presentations
Tutorials
BOFS

Related

Sponsors
Venue
Travel
FAQ

Archives

Proceedings
Photos
2005
2004
2003
2002
2001
2000
1999

Contacts

Information
Home

Ho Hum, yet another memory allocator. Do we need another dynamic per-cpu allocator?

Ravikiran G Thirumalai (kiran.th@gmail.com)

The linux kernel currently incorporates a minimalistic slab based dynamic per-cpu memory allocator. While the current allocator exists with some applications in the form of block layer statistics and network layer statistics, the current implementation has issues. Apart from the fact that it is not even guaranteed to be correct on all architectures, the current implementation is slow, fragments and does not do true node local allocation. A new per-cpu allocator has to be fast, work well with its static sibling, minimize fragmentation, co-exist with some arch specific tricks for per-cpu variables and get initialized early enough during boot up for some users like the slab subsystem.

In this paper, we describe a new per-cpu allocator which addresses all issues mentioned above, along with possible uses of this allocator in cache friendly reference counters (bigrefs), slab head arrays and performance benefits due to these applications.