From: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Kay Sievers <kay.sievers@vrfy.org>,
Greg Kroah-Hartman <gregkh@suse.de>,
LKML <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@elte.hu>
Subject: Re: hackbench regression since 2.6.25-rc
Date: Mon, 17 Mar 2008 11:35:40 +0800 [thread overview]
Message-ID: <1205724940.3215.339.camel@ymzhang> (raw)
In-Reply-To: <Pine.LNX.4.64.0803141713340.29413@schroedinger.engr.sgi.com>
On Fri, 2008-03-14 at 17:15 -0700, Christoph Lameter wrote:
> Here is a patch to just not perform refills but switch slabs instead.
> Could check what effect doing so has on the statistics you see on the 16p?
>
> ---
> mm/slub.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> Index: linux-2.6/mm/slub.c
> ===================================================================
> --- linux-2.6.orig/mm/slub.c 2008-03-14 16:49:36.000000000 -0700
> +++ linux-2.6/mm/slub.c 2008-03-14 16:50:04.000000000 -0700
> @@ -1474,10 +1474,7 @@ static void *__slab_alloc(struct kmem_ca
> goto new_slab;
>
> slab_lock(c->page);
> - if (unlikely(!node_match(c, node)))
> - goto another_slab;
> -
> - stat(c, ALLOC_REFILL);
> + goto another_slab;
>
> load_freelist:
> object = c->page->freelist;
There is no much help. In 2.6.25-rc5, REFILL means refill from c->page->freelist
and another_slab. It's looks like its definition is confusing. In the case of
hackbench, mostly, c->page->freelist is NULL.
With #hackbench 100 process 2000, 100*20*2 (totoally 4000) processes are started.
vmstat shows about 300~500 processes are at RUNNING state, so every processor runqueue
has more than 20 processes running on 16p tigerton.
Below is the data with kernel 2.6.25-rc5+your_patch.
[ymzhang@lkp-tt01-x8664 ~]$ slabinfo kmalloc-512
Slabcache: kmalloc-512 Aliases: 1 Order : 0 Objects: 352
Sizes (bytes) Slabs Debug Memory
------------------------------------------------------------------------
Object : 512 Total : 56 Sanity Checks : Off Total: 229376
SlabObj: 512 Full : 36 Redzoning : Off Used : 180224
SlabSiz: 4096 Partial: 4 Poisoning : Off Loss : 49152
Loss : 0 CpuSlab: 16 Tracking : Off Lalig: 0
Align : 8 Objects: 8 Tracing : Off Lpadd: 0
kmalloc-512 has no kmem_cache operations
kmalloc-512: Kernel object allocation
-----------------------------------------------------------------------
No Data
kmalloc-512: Kernel object freeing
------------------------------------------------------------------------
No Data
kmalloc-512: No NUMA information available.
Slab Perf Counter Alloc Free %Al %Fr
--------------------------------------------------
Fastpath 55883575 6130576 69 7
Slowpath 24131134 73883818 30 92
Page Alloc 84844 84788 0 0
Add partial 270625 23860257 0 29
Remove partial 24046290 84752 30 0
RemoteObj/SlabFrozen 270825 439015 0 0
Total 80014709 80014394
Deactivate Full=23860293(98%) Empty=200(0%) ToHead=0(0%) ToTail=270625(1%)
next prev parent reply other threads:[~2008-03-17 3:37 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-13 7:46 hackbench regression since 2.6.25-rc Zhang, Yanmin
2008-03-13 8:48 ` Andrew Morton
2008-03-13 9:28 ` Zhang, Yanmin
2008-03-13 9:52 ` Andrew Morton
2008-03-14 0:16 ` Christoph Lameter
2008-03-14 3:04 ` Zhang, Yanmin
2008-03-14 3:30 ` Zhang, Yanmin
2008-03-14 5:28 ` Zhang, Yanmin
2008-03-14 6:39 ` Christoph Lameter
2008-03-14 7:29 ` Zhang, Yanmin
2008-03-14 21:05 ` Christoph Lameter
2008-03-14 6:34 ` Christoph Lameter
2008-03-14 7:23 ` Zhang, Yanmin
2008-03-14 21:06 ` Christoph Lameter
2008-03-17 7:50 ` Zhang, Yanmin
2008-03-17 17:32 ` Christoph Lameter
2008-03-18 3:28 ` Zhang, Yanmin
2008-03-18 4:07 ` Christoph Lameter
2008-03-14 6:32 ` Christoph Lameter
2008-03-14 7:14 ` Zhang, Yanmin
2008-03-14 21:08 ` Christoph Lameter
2008-03-15 0:15 ` Christoph Lameter
2008-03-17 3:35 ` Zhang, Yanmin [this message]
2008-03-17 17:27 ` Christoph Lameter
2008-03-17 3:05 ` Zhang, Yanmin
2008-03-13 15:14 ` Greg KH
2008-03-13 16:19 ` Randy Dunlap
2008-03-13 17:12 ` Greg KH
2008-03-14 0:50 ` Zhang, Yanmin
2008-03-14 5:01 ` Greg KH
2008-03-14 5:32 ` Zhang, Yanmin
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=1205724940.3215.339.camel@ymzhang \
--to=yanmin_zhang@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=gregkh@suse.de \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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.