On 01/16/2014 08:44 AM, Christoph Lameter wrote: > On Tue, 14 Jan 2014, Dave Hansen wrote: > >> On 01/14/2014 12:07 PM, Christoph Lameter wrote: >>> One easy way to shrink struct page is to simply remove the feature. The >>> patchset looked a bit complicated and does many other things. >> >> Sure. There's a clear path if you only care about 'struct page' size, >> or if you only care about making the slub fast path as fast as possible. >> We've got three variables, though: >> >> 1. slub fast path speed > > The fast path does use this_cpu_cmpxchg_double which is something > different from a cmpxchg_double and its not used on struct page. Yeah, I'm confusing the two. I might as well say: "slub speed when touching 'struct page'" >> Arranged in three basic choices: >> >> 1. Big 'struct page', fast, medium complexity code >> 2. Small 'struct page', slow, lowest complexity > > The numbers that I see seem to indicate that a big struct page means slow. This was a really tight loop where the caches are really hot, but it did show the large 'struct page' winning: http://sr71.net/~dave/intel/slub/slub-perf-20140109.png As I said in the earlier description, the paravirt code doing interrupt disabling was what really hurt the two spinlock cases. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>