From: Eric Dumazet <eric.dumazet@gmail.com>
To: David Rientjes <rientjes@google.com>
Cc: Andi Kleen <andi@firstfloor.org>,
Ezequiel Garcia <elezegarcia@gmail.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org, Tim Bird <tim.bird@am.sony.com>,
celinux-dev@lists.celinuxforum.org
Subject: Re: [Q] Default SLAB allocator
Date: Sat, 13 Oct 2012 17:10:21 +0200 [thread overview]
Message-ID: <1350141021.21172.14949.camel@edumazet-glaptop> (raw)
In-Reply-To: <alpine.DEB.2.00.1210130249070.7462@chino.kir.corp.google.com>
On Sat, 2012-10-13 at 02:51 -0700, David Rientjes wrote:
> On Thu, 11 Oct 2012, Andi Kleen wrote:
>
> > When did you last test? Our regressions had disappeared a few kernels
> > ago.
> >
>
> This was in August when preparing for LinuxCon, I tested netperf TCP_RR on
> two 64GB machines (one client, one server), four nodes each, with thread
> counts in multiples of the number of cores. SLUB does a comparable job,
> but once we have the the number of threads equal to three times the number
> of cores, it degrades almost linearly. I'll run it again next week and
> get some numbers on 3.6.
In latest kernels, skb->head no longer use kmalloc()/kfree(), so SLAB vs
SLUB is less a concern for network loads.
In 3.7, (commit 69b08f62e17) we use fragments of order-3 pages to
populate skb->head.
SLUB was really bad in the common workload you describe (allocations
done by one cpu, freeing done by other cpus), because all kfree() hit
the slow path and cpus contend in __slab_free() in the loop guarded by
cmpxchg_double_slab(). SLAB has a cache for this, while SLUB directly
hit the main "struct page" to add the freed object to freelist.
I played some months ago adding a percpu associative cache to SLUB, then
just moved on other strategy.
(Idea for this per cpu cache was to build a temporary free list of
objects to batch accesses to struct page)
--
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:[~2012-10-13 15:10 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-11 14:19 Ezequiel Garcia
2012-10-11 22:42 ` Andi Kleen
2012-10-11 22:59 ` David Rientjes
2012-10-11 23:10 ` Andi Kleen
2012-10-12 12:07 ` Ezequiel Garcia
2012-10-13 9:54 ` David Rientjes
2012-10-13 12:44 ` Ezequiel Garcia
2012-10-16 0:46 ` David Rientjes
2012-10-16 12:35 ` Ezequiel Garcia
2012-10-16 12:56 ` Eric Dumazet
2012-10-16 18:07 ` Tim Bird
2012-10-16 18:27 ` Ezequiel Garcia
2012-10-16 18:44 ` Tim Bird
2012-10-16 18:49 ` Ezequiel Garcia
2012-10-16 19:16 ` Eric Dumazet
2012-10-17 18:45 ` Tim Bird
2012-10-17 19:13 ` Eric Dumazet
2012-10-17 19:20 ` Shentino
2012-10-17 20:33 ` Tim Bird
2012-10-18 0:46 ` Shentino
2012-10-17 20:58 ` Tim Bird
2012-10-17 21:05 ` Ezequiel Garcia
2012-10-16 18:36 ` Ezequiel Garcia
2012-10-16 18:54 ` Christoph Lameter
2012-10-13 9:51 ` David Rientjes
2012-10-13 15:10 ` Eric Dumazet [this message]
2012-10-16 1:28 ` JoonSoo Kim
2012-10-16 7:23 ` Eric Dumazet
2012-10-19 0:03 ` JoonSoo Kim
2012-10-19 7:01 ` Eric Dumazet
2012-10-16 0:45 ` David Rientjes
2012-10-16 18:53 ` Christoph Lameter
2012-10-16 19:02 ` 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=1350141021.21172.14949.camel@edumazet-glaptop \
--to=eric.dumazet@gmail.com \
--cc=andi@firstfloor.org \
--cc=celinux-dev@lists.celinuxforum.org \
--cc=elezegarcia@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rientjes@google.com \
--cc=tim.bird@am.sony.com \
/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