* Linus Torvalds <torvalds@linux-foundation.org> wrote:i dont think the SLUB problem could be explained purely via a double memset(). [which ought to be extremely fast anyway] We are talking about a 10 times slowdown on a 64-way box of a workload that is fairly common-sense. (tasks sending messages to each other via bog standard means) while i dont want to jump to conclusions without looking at some profiles, i think the SLUB performance regression is indicative of the following fallacy: "SLAB can be done significantly simpler while keeping the same performance". I couldnt point to any particular aspect of SLAB that i could characterise as "needless bloat". the SLUB concept is proudly outlined in init/Kconfig: config SLUB bool "SLUB (Unqueued Allocator)" help SLUB is a slab allocator that minimizes cache line usage instead of managing queues of cached objects (SLAB approach). Per cpu caching is realized using slabs of objects instead of queues of objects. SLUB can use memory efficiently and has enhanced diagnostics. but that's not true anymore - the two concepts are pretty much equivalent, after all the "performance tuning" that went on in SLUB. (read: 'frantically try to catch up with SLAB in benchmarks') so even today's upstream kernel, which has 'ancient' SLUB code, SLAB and SLUB have essentially the same linecount: $ wc -l mm/slab.c mm/slub.c 4478 mm/slab.c 4125 mm/slub.c (and while linecount != complexity, there is a strong relationship.) With SLAB having 10 years more test coverage and tuning. the messiest and most fragile aspect of SLAB that i can think of is its bootstrap hacks - but that is an entirely unimportant detail in my opinion. SLAB has been cleaned up significantly in the past few years by Pekka Enberg & co, it's pretty pleasant and straightforward code these days. I think we should we make SLAB the default for v2.6.24 ... Ingo --
| Jeremy Fitzhardinge | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| jmerkey | [ANNOUNCE] mdb: Merkey's Linux Kernel Debugger 2.6.27-rc4 released |
| Greg Kroah-Hartman | [PATCH 021/196] ISDN: Convert from class_device to device for ISDN capi |
| Ingo Molnar | Re: [PATCH 00/23] per device dirty throttling -v8 |
git: | |
| Linus Torvalds | Re: VCS comparison table |
| Peter Stahlir | Git as a filesystem |
| Johannes Schindelin | Re: git on MacOSX and files with decomposed utf-8 file names |
| Bill Lear | Meaning of "fatal: protocol error: bad line length character"? |
| Mayuresh Kathe | Re: What is our ultimate goal?? |
| Richard Stallman | Real men don't attack straw men |
| bofh | Re: web development on OpenBSD |
| Kevin | uvm_mapent_alloc: out of static map entries on 4.3 i386 |
| Mark Lord | Re: 2.6.25-rc8: FTP transfer errors |
| Evgeniy Polyakov | Re: [BUG] New Kernel Bugs |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Andi Kleen | [PATCH RFC] [1/9] Core module symbol namespaces code and intro. |
