From: Joonsoo Kim <iamjoonsoo.kim@lge.com>
To: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: Christoph Lameter <cl@linux.com>,
linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
Alexander Duyck <alexander.duyck@gmail.com>,
Hannes Frederic Sowa <hannes@stressinduktion.org>
Subject: Re: [PATCH 3/3] slub: build detached freelist with look-ahead
Date: Thu, 23 Jul 2015 15:34:24 +0900 [thread overview]
Message-ID: <20150723063423.GG4449@js1304-P5Q-DELUXE> (raw)
In-Reply-To: <20150722012819.6b98a599@redhat.com>
On Wed, Jul 22, 2015 at 01:28:19AM +0200, Jesper Dangaard Brouer wrote:
> On Tue, 21 Jul 2015 08:50:36 -0500 (CDT)
> Christoph Lameter <cl@linux.com> wrote:
>
> > On Mon, 20 Jul 2015, Jesper Dangaard Brouer wrote:
> >
> > > Yes, I think it is merged... how do I turn off merging?
> >
> > linux/Documentation/kernel-parameters.txt
> >
> > slab_nomerge [MM]
> > Disable merging of slabs with similar size. May be
> > necessary if there is some reason to distinguish
> > allocs to different slabs. Debug options disable
> > merging on their own.
> > For more information see Documentation/vm/slub.txt.
>
> I was hoping I could define this per slub runtime. Any chance this
> would be made possible?
It's not possible to set/reset slab merge in runtime. Once merging
happens, one slab could have objects from different kmem_caches so we
can't separate it cleanly. Current best approach is to prevent merging
when creating new kmem_cache by introducing new slab flag
like as SLAB_NO_MERGE.
>
> Setting boot param "slab_nomerge" made my benchmarking VERY stable
> between runs (obj size 256).
>
>
> Run01: slab_nomerge
> 1 - 63 cycles(tsc) 15.927 ns - 46 cycles(tsc) 11.707 ns
> 2 - 56 cycles(tsc) 14.185 ns - 28 cycles(tsc) 7.129 ns
> 3 - 54 cycles(tsc) 13.588 ns - 23 cycles(tsc) 5.762 ns
> 4 - 53 cycles(tsc) 13.291 ns - 20 cycles(tsc) 5.085 ns
> 8 - 51 cycles(tsc) 12.918 ns - 19 cycles(tsc) 4.886 ns
> 16 - 50 cycles(tsc) 12.607 ns - 19 cycles(tsc) 4.858 ns
> 30 - 51 cycles(tsc) 12.759 ns - 19 cycles(tsc) 4.980 ns
> 32 - 51 cycles(tsc) 12.930 ns - 19 cycles(tsc) 4.975 ns
> 34 - 93 cycles(tsc) 23.410 ns - 27 cycles(tsc) 6.924 ns
> 48 - 80 cycles(tsc) 20.193 ns - 25 cycles(tsc) 6.279 ns
> 64 - 73 cycles(tsc) 18.322 ns - 23 cycles(tsc) 5.939 ns
> 128 - 88 cycles(tsc) 22.083 ns - 29 cycles(tsc) 7.413 ns
> 158 - 97 cycles(tsc) 24.274 ns - 34 cycles(tsc) 8.696 ns
> 250 - 102 cycles(tsc) 25.556 ns - 40 cycles(tsc) 10.100 ns
>
> Run02: slab_nomerge
> 1 - 63 cycles(tsc) 15.879 ns - 46 cycles(tsc) 11.701 ns
> 2 - 56 cycles(tsc) 14.222 ns - 28 cycles(tsc) 7.140 ns
> 3 - 54 cycles(tsc) 13.586 ns - 23 cycles(tsc) 5.783 ns
> 4 - 53 cycles(tsc) 13.339 ns - 20 cycles(tsc) 5.095 ns
> 8 - 51 cycles(tsc) 12.899 ns - 19 cycles(tsc) 4.905 ns
> 16 - 50 cycles(tsc) 12.624 ns - 19 cycles(tsc) 4.853 ns
> 30 - 51 cycles(tsc) 12.781 ns - 19 cycles(tsc) 4.984 ns
> 32 - 51 cycles(tsc) 12.933 ns - 19 cycles(tsc) 4.997 ns
> 34 - 93 cycles(tsc) 23.421 ns - 27 cycles(tsc) 6.909 ns
> 48 - 80 cycles(tsc) 20.241 ns - 25 cycles(tsc) 6.267 ns
> 64 - 73 cycles(tsc) 18.346 ns - 23 cycles(tsc) 5.947 ns
> 128 - 88 cycles(tsc) 22.192 ns - 29 cycles(tsc) 7.415 ns
> 158 - 97 cycles(tsc) 24.358 ns - 34 cycles(tsc) 8.693 ns
> 250 - 102 cycles(tsc) 25.597 ns - 40 cycles(tsc) 10.144 ns
>
> Run03: slab_nomerge
> 1 - 63 cycles(tsc) 15.897 ns - 46 cycles(tsc) 11.685 ns
> 2 - 56 cycles(tsc) 14.178 ns - 28 cycles(tsc) 7.132 ns
> 3 - 54 cycles(tsc) 13.590 ns - 23 cycles(tsc) 5.774 ns
> 4 - 53 cycles(tsc) 13.314 ns - 20 cycles(tsc) 5.092 ns
> 8 - 51 cycles(tsc) 12.872 ns - 19 cycles(tsc) 4.886 ns
> 16 - 50 cycles(tsc) 12.603 ns - 19 cycles(tsc) 4.840 ns
> 30 - 50 cycles(tsc) 12.750 ns - 19 cycles(tsc) 4.966 ns
> 32 - 51 cycles(tsc) 12.910 ns - 19 cycles(tsc) 4.977 ns
> 34 - 93 cycles(tsc) 23.372 ns - 27 cycles(tsc) 6.929 ns
> 48 - 80 cycles(tsc) 20.205 ns - 25 cycles(tsc) 6.276 ns
> 64 - 73 cycles(tsc) 18.292 ns - 23 cycles(tsc) 5.929 ns
> 128 - 90 cycles(tsc) 22.516 ns - 29 cycles(tsc) 7.425 ns
> 158 - 99 cycles(tsc) 24.825 ns - 34 cycles(tsc) 8.668 ns
> 250 - 102 cycles(tsc) 25.652 ns - 40 cycles(tsc) 10.129 ns
Really looks stable!
Thanks.
--
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>
next prev parent reply other threads:[~2015-07-23 6:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-15 16:01 [PATCH 0/3] slub: introducing detached freelist Jesper Dangaard Brouer
2015-07-15 16:01 ` [PATCH 1/3] slub: extend slowpath __slab_free() to handle bulk free Jesper Dangaard Brouer
2015-07-15 16:54 ` Christoph Lameter
2015-07-15 16:02 ` [PATCH 2/3] slub: optimize bulk slowpath free by detached freelist Jesper Dangaard Brouer
2015-07-15 16:56 ` Christoph Lameter
2015-07-15 16:02 ` [PATCH 3/3] slub: build detached freelist with look-ahead Jesper Dangaard Brouer
2015-07-16 9:57 ` Jesper Dangaard Brouer
2015-07-20 2:54 ` Joonsoo Kim
2015-07-20 21:28 ` Jesper Dangaard Brouer
2015-07-21 13:50 ` Christoph Lameter
2015-07-21 23:28 ` Jesper Dangaard Brouer
2015-07-23 6:34 ` Joonsoo Kim [this message]
2015-07-23 11:09 ` Jesper Dangaard Brouer
2015-07-23 14:14 ` 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=20150723063423.GG4449@js1304-P5Q-DELUXE \
--to=iamjoonsoo.kim@lge.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.duyck@gmail.com \
--cc=brouer@redhat.com \
--cc=cl@linux.com \
--cc=hannes@stressinduktion.org \
--cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox