linux/include
Manfred Spraul 97e2bde47f [PATCH] add kmalloc_node, inline cleanup
The patch makes the following function calls available to allocate memory
on a specific node without changing the basic operation of the slab
allocator:

 kmem_cache_alloc_node(kmem_cache_t *cachep, unsigned int flags, int node);
 kmalloc_node(size_t size, unsigned int flags, int node);

in a similar way to the existing node-blind functions:

 kmem_cache_alloc(kmem_cache_t *cachep, unsigned int flags);
 kmalloc(size, flags);

kmem_cache_alloc_node was changed to pass flags and the node information
through the existing layers of the slab allocator (which lead to some minor
rearrangements).  The functions at the lowest layer (kmem_getpages,
cache_grow) are already node aware.  Also __alloc_percpu can call
kmalloc_node now.

Performance measurements (using the pageset localization patch) yields:

w/o patches:
Tasks    jobs/min  jti  jobs/min/task      real       cpu
    1      484.27  100       484.2736     12.02      1.97   Wed Mar 30 20:50:43 2005
  100    25170.83   91       251.7083     23.12    150.10   Wed Mar 30 20:51:06 2005
  200    34601.66   84       173.0083     33.64    294.14   Wed Mar 30 20:51:40 2005
  300    37154.47   86       123.8482     46.99    436.56   Wed Mar 30 20:52:28 2005
  400    39839.82   80        99.5995     58.43    580.46   Wed Mar 30 20:53:27 2005
  500    40036.32   79        80.0726     72.68    728.60   Wed Mar 30 20:54:40 2005
  600    44074.21   79        73.4570     79.23    872.10   Wed Mar 30 20:55:59 2005
  700    44016.60   78        62.8809     92.56   1015.84   Wed Mar 30 20:57:32 2005
  800    40411.05   80        50.5138    115.22   1161.13   Wed Mar 30 20:59:28 2005
  900    42298.56   79        46.9984    123.83   1303.42   Wed Mar 30 21:01:33 2005
 1000    40955.05   80        40.9551    142.11   1441.92   Wed Mar 30 21:03:55 2005

with pageset localization and slab API patches:
Tasks    jobs/min  jti  jobs/min/task      real       cpu
    1      484.19  100       484.1930     12.02      1.98   Wed Mar 30 21:10:18 2005
  100    27428.25   92       274.2825     21.22    149.79   Wed Mar 30 21:10:40 2005
  200    37228.94   86       186.1447     31.27    293.49   Wed Mar 30 21:11:12 2005
  300    41725.42   85       139.0847     41.84    434.10   Wed Mar 30 21:11:54 2005
  400    43032.22   82       107.5805     54.10    582.06   Wed Mar 30 21:12:48 2005
  500    42211.23   83        84.4225     68.94    722.61   Wed Mar 30 21:13:58 2005
  600    40084.49   82        66.8075     87.12    873.11   Wed Mar 30 21:15:25 2005
  700    44169.30   79        63.0990     92.24   1008.77   Wed Mar 30 21:16:58 2005
  800    43097.94   79        53.8724    108.03   1155.88   Wed Mar 30 21:18:47 2005
  900    41846.75   79        46.4964    125.17   1303.38   Wed Mar 30 21:20:52 2005
 1000    40247.85   79        40.2478    144.60   1442.21   Wed Mar 30 21:23:17 2005

Signed-off-by: Christoph Lameter <christoph@lameter.com>
Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-01 08:58:38 -07:00
..
acpi Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-alpha [PATCH] alpha: key management syscalls 2005-04-21 11:28:26 -07:00
asm-arm [PATCH] ARM: IntegratorCP: Fix CLCD MUX selection values 2005-04-30 23:32:38 +01:00
asm-arm26 [PATCH] freepgt: arm26 FIRST_USER_ADDRESS PAGE_SIZE 2005-04-19 13:29:22 -07:00
asm-cris [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-frv [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-generic [PATCH] __get_unaligned() turned into macro 2005-04-24 12:28:35 -07:00
asm-h8300 [PATCH] h8300 header update 2005-04-16 15:25:21 -07:00
asm-i386 [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-ia64 [IA64] re-enable preempt before page allocation for pgtable quicklist 2005-04-26 09:04:31 -07:00
asm-m32r [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-m68k [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-m68knommu Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-mips [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-parisc [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-ppc [PATCH] ppc iomem annotations: ->io_base_virt 2005-04-25 07:55:57 -07:00
asm-ppc64 [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-s390 [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-sh [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-sh64 [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-sparc [SPARC]: Fix mxcc warning 2005-04-24 20:46:00 -07:00
asm-sparc64 [SPARC64]: Fix SMP build. 2005-04-24 21:04:02 -07:00
asm-um [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
asm-v850 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-x86_64 [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 2005-04-19 13:29:23 -07:00
linux [PATCH] add kmalloc_node, inline cleanup 2005-05-01 08:58:38 -07:00
math-emu Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
media Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mtd Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
net [PKT_SCHED]: Fix range in psched_tod_diff() to 0..bound 2005-04-28 12:14:37 -07:00
pcmcia Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rxrpc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scsi merge by hand (scsi_device.h) 2005-04-18 13:45:00 -05:00
sound Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
video Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00