Re: Major regression on hackbench with SLUB (more numbers)

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Linus Torvalds <torvalds@...>
Cc: Ingo Molnar <mingo@...>, Steven Rostedt <rostedt@...>, LKML <linux-kernel@...>, Andrew Morton <akpm@...>, Peter Zijlstra <a.p.zijlstra@...>, Christoph Hellwig <hch@...>, Rafael J. Wysocki <rjw@...>
Date: Friday, December 21, 2007 - 6:11 pm

On Fri, 21 Dec 2007, Linus Torvalds wrote:


Not motivated? I have analyzed the problem in detail and when it comes 
down to it  there is not much impact that I can see in real life 
applications. I have always responded to the regression reported also via 
TPC-C. There is still no answer to my post at 
http://lkml.org/lkml/2007/10/27/245

SLAB has similar issues when freeing to remote nodes under NUMA. Its 
even worse since the lock is not per slab page but per slab cache. The 
alien caches that are then used have one lock per node.


It obviously can replace it and has replaced it for awhile now.


Looks like I need to find someone to get that going here to be able to 
test under it.


I have looked at this issue under various circumstances for the last week. 
Nothing really convinced me that this is so serious. Could not figure 
out if its really worth anything about but if you put it that way then of 
course it is.
 

The reason for SLUB was dysfunctional behavior of SLAB in many areas. It 
was not just SGI's concerns that drove it.


Well still SLUB is really superior to SLAB in many ways....

- SLUB is performance wise much faster than SLAB. This can be more than a
  factor of 10 (case of concurrent allocations / frees on multiple
  processors). See http://lkml.org/lkml/2007/10/27/245

- Single threaded allocation speed is up to double that of SLAB

- Remote freeing of objectcs in a NUMA systems is typically 30% faster.

- Debugging on SLAB is difficult. Requires recompile of the kernel
  and the resulting output is difficult to interpret. SLUB can apply
  debugging options to a subset of the slabcaches in order to allow
  the system to work with maximum speed. This is necessary to detect
  difficult to reproduce race conditions.

- SLAB can capture huge amounts of memory in its queues. The problem
  gets worse the more processors and NUMA nodes are in the system.

- SLAB requires a pass through all slab caches every 2 seconds to
  expire objects. This is a problem both for realtime and MPI jobs
  that cannot take such a processor outage.

- SLAB does not have a sophisticated slabinfo tool to report the
  state of slab objects on the system. Can provide details of
  object use.

- SLAB requires the update of two words for freeing
  and allocation. SLUB can do that by updating a single
  word which allows to avoid enabling and disabling interrupts if
  the processor supports an atomic instruction for that purpose.
  This is important for realtime kernels where special measures
  may have to be implemented.

- SLAB requires memory to be set aside for queues (processors
  times number of slabs times queue size).
  SLUB requires none of that.

- SLUB merges slab caches with similar characteristics to
  reduce the memory footprint even further.

- SLAB performs object level NUMA management which creates
  a complex allocator complexity. SLUB manages NUMA on the level of
  slab pages.

- SLUB allows remote node defragmentation to avoid the buildup
  of large partial lists on a single node.

- SLUB can actively reduce the fragmentation of slabs through
  slab cache specific callbacks (not merged yet)

- SLUB has resiliency features that allow it to isolate a problem
  object and continue after diagnostics have been performed.

- SLUB creates rarely used DMA caches on demand instead of creating
  them all on bootup (SLAB).
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Major regression on hackbench with SLUB, Steven Rostedt, (Fri Dec 7, 1:50 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Thu Dec 13, 6:22 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 14, 12:24 am)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 6:22 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 6:37 pm)
Re: Major regression on hackbench with SLUB (more numbers), Steven Rostedt, (Fri Dec 21, 6:52 pm)
Re: Major regression on hackbench with SLUB (more numbers), Linus Torvalds, (Fri Dec 21, 6:51 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 7:54 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 12:18 pm)
Re: Major regression on hackbench with SLUB (more numbers), Linus Torvalds, (Fri Dec 21, 12:44 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 6:11 pm)
Re: Major regression on hackbench with SLUB (more numbers), Linus Torvalds, (Fri Dec 21, 6:49 pm)
Re: Major regression on hackbench with SLUB (more numbers), Peter Zijlstra, (Fri Dec 21, 6:16 pm)
Re: Major regression on hackbench with SLUB (more numbers), Peter Zijlstra, (Fri Dec 21, 6:17 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 6:27 pm)
Re: Major regression on hackbench with SLUB (more numbers), Linus Torvalds, (Sat Dec 22, 2:01 pm)
Re: Major regression on hackbench with SLUB (more numbers), Linus Torvalds, (Sat Dec 22, 5:00 pm)
Re: Major regression on hackbench with SLUB (more numbers), Steven Rostedt, (Sat Dec 22, 8:59 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Mon Dec 24, 3:21 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Wed Dec 26, 5:31 pm)
Re: Major regression on hackbench with SLUB (more numbers), Steven Rostedt, (Fri Dec 28, 10:52 am)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Thu Dec 27, 1:51 am)
SLUB sysfs support, Christoph Lameter, (Thu Dec 27, 4:28 pm)
Re: SLUB sysfs support, Al Viro, (Thu Dec 27, 6:59 pm)
Re: SLUB sysfs support, Christoph Lameter, (Thu Dec 27, 7:22 pm)
Re: SLUB sysfs support, Al Viro, (Thu Dec 27, 7:54 pm)
Re: SLUB sysfs support, Christoph Lameter, (Thu Dec 27, 7:53 pm)
Re: SLUB sysfs support, Al Viro, (Thu Dec 27, 7:58 pm)
Re: SLUB sysfs support, Christoph Lameter, (Thu Dec 27, 8:02 pm)
Re: SLUB sysfs support, Al Viro, (Thu Dec 27, 8:45 pm)
Re: SLUB sysfs support, Christoph Lameter, (Thu Dec 27, 10:19 pm)
Re: SLUB sysfs support, Al Viro, (Thu Dec 27, 11:26 pm)
Re: SLUB sysfs support, Christoph Lameter, (Wed Jan 2, 4:25 pm)
[patch] slub: provide /proc/slabinfo, Ingo Molnar, (Tue Jan 1, 12:23 pm)
Re: [patch] slub: provide /proc/slabinfo, Arjan van de Ven, (Fri Jan 4, 8:27 pm)
Re: [patch] slub: provide /proc/slabinfo, Linus Torvalds, (Fri Jan 4, 8:49 pm)
Re: Major regression on hackbench with SLUB (more numbers), Jason L Tibbitts III, (Sat Dec 22, 6:52 pm)
Re: Major regression on hackbench with SLUB (more numbers), Alessandro Suardi, (Sun Dec 23, 11:59 pm)
Re: Major regression on hackbench with SLUB (more numbers), Alexey Dobriyan, (Sat Dec 22, 9:01 am)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 7:51 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Mon Dec 24, 3:24 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 12:26 pm)
Re: Major regression on hackbench with SLUB (more numbers), Christoph Lameter, (Fri Dec 21, 5:56 pm)
Re: Major regression on hackbench with SLUB (more numbers), Steven Rostedt, (Fri Dec 14, 2:15 am)
Re: Major regression on hackbench with SLUB, Linus Torvalds, (Fri Dec 7, 1:59 pm)
Re: Major regression on hackbench with SLUB, Linus Torvalds, (Fri Dec 7, 2:36 pm)
Re: Major regression on hackbench with SLUB, Christoph Lameter, (Thu Dec 13, 6:11 pm)
Re: Major regression on hackbench with SLUB, Steven Rostedt, (Sat Dec 8, 8:28 pm)
Re: Major regression on hackbench with SLUB, Steven Rostedt, (Sat Dec 8, 6:16 pm)
Re: Major regression on hackbench with SLUB, Björn, (Mon Dec 10, 3:38 am)
Re: Major regression on hackbench with SLUB, Steven Rostedt, (Mon Dec 10, 10:00 am)
Re: Major regression on hackbench with SLUB, Steven Rostedt, (Fri Dec 7, 2:58 pm)
Re: Major regression on hackbench with SLUB, Ingo Molnar, (Fri Dec 7, 1:55 pm)