From: Dave Hansen <dave@sr71.net>
To: Christoph Lameter <cl@linux.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Pekka Enberg <penberg@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/9] re-shrink 'struct page' when SLUB is on.
Date: Thu, 16 Jan 2014 09:08:36 -0800 [thread overview]
Message-ID: <52D81214.7070608@sr71.net> (raw)
In-Reply-To: <alpine.DEB.2.10.1401161041160.29778@nuc>
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@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Dave Hansen <dave@sr71.net>
To: Christoph Lameter <cl@linux.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Pekka Enberg <penberg@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/9] re-shrink 'struct page' when SLUB is on.
Date: Thu, 16 Jan 2014 09:08:36 -0800 [thread overview]
Message-ID: <52D81214.7070608@sr71.net> (raw)
In-Reply-To: <alpine.DEB.2.10.1401161041160.29778@nuc>
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.
next prev parent reply other threads:[~2014-01-16 17:10 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-03 18:01 [PATCH 0/9] re-shrink 'struct page' when SLUB is on Dave Hansen
2014-01-03 18:01 ` [PATCH 1/9] mm: slab/slub: use page->list consistently instead of page->lru Dave Hansen
2014-01-03 18:01 ` Dave Hansen
2014-01-03 18:01 ` [PATCH 2/9] mm: blk-mq: uses page->list incorrectly Dave Hansen
2014-01-03 18:01 ` Dave Hansen
2014-01-03 18:01 ` [PATCH 3/9] mm: page->pfmemalloc only used by slab/skb Dave Hansen
2014-01-03 18:01 ` Dave Hansen
2014-01-03 18:01 ` [PATCH 4/9] mm: slabs: reset page at free Dave Hansen
2014-01-03 18:01 ` Dave Hansen
2014-01-03 18:01 ` [PATCH 5/9] mm: rearrange struct page Dave Hansen
2014-01-03 18:01 ` Dave Hansen
2014-01-03 18:01 ` [PATCH 6/9] mm: slub: rearrange 'struct page' fields Dave Hansen
2014-01-03 18:01 ` Dave Hansen
2014-01-03 18:02 ` [PATCH 7/9] mm: slub: abstract out double cmpxchg option Dave Hansen
2014-01-03 18:02 ` Dave Hansen
2014-01-03 18:02 ` [PATCH 8/9] mm: slub: remove 'struct page' alignment restrictions Dave Hansen
2014-01-03 18:02 ` Dave Hansen
2014-01-03 18:02 ` [PATCH 9/9] mm: slub: cleanups after code churn Dave Hansen
2014-01-03 18:02 ` Dave Hansen
2014-01-03 22:18 ` [PATCH 0/9] re-shrink 'struct page' when SLUB is on Andrew Morton
2014-01-03 22:18 ` Andrew Morton
2014-01-06 4:32 ` Joonsoo Kim
2014-01-06 4:32 ` Joonsoo Kim
2014-01-10 20:52 ` Dave Hansen
2014-01-10 20:52 ` Dave Hansen
2014-01-10 23:39 ` Andrew Morton
2014-01-10 23:39 ` Andrew Morton
2014-01-10 23:42 ` Dave Hansen
2014-01-10 23:42 ` Dave Hansen
2014-01-11 9:26 ` Pekka Enberg
2014-01-11 9:26 ` Pekka Enberg
2014-01-12 0:55 ` Christoph Lameter
2014-01-12 0:55 ` Christoph Lameter
2014-01-13 1:44 ` Joonsoo Kim
2014-01-13 1:44 ` Joonsoo Kim
2014-01-13 3:36 ` Davidlohr Bueso
2014-01-13 3:36 ` Davidlohr Bueso
2014-01-13 13:46 ` Fengguang Wu
2014-01-13 13:46 ` Fengguang Wu
2014-01-13 15:42 ` Dave Hansen
2014-01-13 15:42 ` Dave Hansen
2014-01-13 17:16 ` Dave Hansen
2014-01-13 17:16 ` Dave Hansen
2014-01-14 20:07 ` Christoph Lameter
2014-01-14 20:07 ` Christoph Lameter
2014-01-14 22:05 ` Dave Hansen
2014-01-14 22:05 ` Dave Hansen
2014-01-16 16:44 ` Christoph Lameter
2014-01-16 16:44 ` Christoph Lameter
2014-01-16 17:08 ` Dave Hansen [this message]
2014-01-16 17:08 ` Dave Hansen
2014-01-16 18:26 ` Christoph Lameter
2014-01-16 18:26 ` Christoph Lameter
2014-01-14 17:40 ` Christoph Lameter
2014-01-14 17:40 ` Christoph Lameter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52D81214.7070608@sr71.net \
--to=dave@sr71.net \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.