All of lore.kernel.org
 help / color / mirror / Atom feed
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%)



  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.