mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Dhaval Giani <dhaval@linux.vnet.ibm.com>,
	Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
	Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
	Aneesh Kumar KV <aneesh.kumar@linux.vnet.ibm.com>,
	Balbir Singh <balbir@in.ibm.com>
Subject: Re: VolanoMark regression with 2.6.27-rc1
Date: Tue, 13 Aug 2030 16:50:42 +0800	[thread overview]
Message-ID: <1912841442.25608.284.camel@ymzhang> (raw)
In-Reply-To: <1218180605.8625.64.camel@twins>


On Fri, 2008-08-08 at 09:30 +0200, Peter Zijlstra wrote:
> On Tue, 2030-08-06 at 11:26 +0800, Zhang, Yanmin wrote:
> > On Mon, 2008-08-04 at 09:12 +0200, Peter Zijlstra wrote:
> > > On Mon, 2008-08-04 at 12:35 +0530, Dhaval Giani wrote:
> > > > On Mon, Aug 04, 2008 at 08:26:11AM +0200, Peter Zijlstra wrote:
> > > > > On Mon, 2008-08-04 at 11:23 +0530, Dhaval Giani wrote:
> > > > > 
> > > > > > Peter, vatsa, any ideas?
> > > > > 
> > > > > ---
> > > > > 
> > > > > Revert:
> > > > >   a7be37ac8e1565e00880531f4e2aff421a21c803  sched: revert the revert of: weight calculations
> > > > >   c9c294a630e28eec5f2865f028ecfc58d45c0a5a  sched: fix calc_delta_asym()
> > > > >   ced8aa16e1db55c33c507174c1b1f9e107445865  sched: fix calc_delta_asym, #2
> > > > > 
> > > > 
> > > > Did we not fix those? :) 
> > > 
> > > Works for me,.. just guessing here.
> > I did more investigation on 16-core tigerton.
> > 
> > Firstly, let's focus on CONFIG_GROUP_SCHED=n. With 2.6.26, the result
> > has little difference
> > between with and without CONFIG_GROUP_SCHED.
> > 
> > 1) I tried different sched_features and found AFFINE_WAKEUPS has big
> > impact on volanoMark. Other
> > features have little impact.
> > 
> > 2) With kernel 2.6.26, if disabling AFFINE_WAKEUPS, the result is
> > 260000; if enabling AFFINE_WAKEUPS,
> > the result is 515000, so the improvement caused by AFFINE_WAKEUPS is
> > about 100%. With kernel 2.6.27-rc1,
> > the improvement is only about 25%.
> > 
> > 3) I turned on CONFIG_SCHETSTATS in kernel and collect
> > ttwu_move_affine. Mostly, collect ttwu_move_affine,
> > then recollect it after 30 seconds and calculate the difference. With
> > 2.6.26, I got below data:
> 
> <snip data>
> 
> > So with kernel 2.6.27-rc1, the successful wakeup_affine is about
> > double of the one of 2.6.27-rc1
> > on domain 0, but about 10 times on domain 1. That means more tasks are
> > woken up on waker cpus.
> > 
> > Does that mean it doesn't follow cache-hot checking?
> 
> I'm a bit puzzled, but you're right - I too noticed that volanomark is
> _very_ sensitive to affine wakeups.
> 
> I'll try and find what changed in that code for GROUP=n.
I collect more data and find CPU_NEWLY_IDLE balance schedstat looks abnormal.
Comparing with 2.6.26, 2.6.27-rc1 has more successful move_tasks among cpu runqueue. I
instrument kernel and find that, with 2.6.26, mostly task is hot when kernel tries to
move it to another cpu. But with 2.6.27-rc1, task is often moved successfully.
If I set /proc/sys/kernel/sched_migration_cost=1500000 (default is 500000), volanoMark
result is improved significantly, near to the result of 2.6.26. Above testing set
CONFIG_GROUP_SCHED=n. So perhaps some key data structures are changed with 2.6.27-rc1
to create more cache misses. With 2.6.26, cpu idle is about 6~7%. With 2.6.27-rc1, cpu idle
is about 1%. I compare the 2 kernels and couldn't find what data structure change makes it.

As for CONFIG_GROUP_SCHED=y, oprofile shows tg_shares_up consumes about 8% cpu utilization
on my 16-core tigerton. If I enlarge /proc/sys/kernel/sched_shares_ratelimit, it doesn't help
volanoMark result. I check the group schedule codes and got an idea to improve it. Add
share_percent, a new var in task_group->sched_entity[i] to record the percent this task group
occupies in the parent group. share_percent is updated in walk_tg_tree. In account_entity_enqueue,
if the task entity has parent, we could just use share_percent and se->load.weight to calculate
a new weight and add the new weight to parent entity weight, in the end to runqueue load weight.
So when sched_shares_ratelimit is enlarged, various load balances still could work well. I think
volanoMark could benefit from it.

BTW, with CONFIG_GROUP_SCHED=y, hackbench has about 80% regression on my 8core+multi_thread
Montvale Itanium machine and Tulsa machines. It seems mutli-thread machines has the regression.

-yanmin



  parent reply	other threads:[~2008-08-13  8:52 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-31  3:20 Zhang, Yanmin
2008-07-31  7:31 ` Zhang, Yanmin
2008-07-31  7:39   ` Peter Zijlstra
2008-07-31  7:49     ` Zhang, Yanmin
2008-08-01  0:39       ` Zhang, Yanmin
2008-08-01  2:35         ` Miao Xie
2008-08-01  3:08           ` Zhang, Yanmin
2008-08-01  5:14         ` Dhaval Giani
2008-08-04  5:04           ` Zhang, Yanmin
2008-08-04  5:22             ` Dhaval Giani
2008-08-04  5:37               ` Zhang, Yanmin
2008-08-04  5:53                 ` Dhaval Giani
2008-08-04  6:26                   ` Peter Zijlstra
2008-08-04  6:26                   ` Peter Zijlstra
2008-08-04  7:05                     ` Dhaval Giani
2008-08-04  7:12                       ` Peter Zijlstra
2030-08-06  3:26                         ` Zhang, Yanmin
2008-08-08  7:30                           ` Peter Zijlstra
     [not found]                             ` <20080811185008.GA29291@linux.vnet.ibm.com>
     [not found]                               ` <1912726331.25608.235.camel@ymzhang>
     [not found]                                 ` <20080817115035.GA32223@linux.vnet.ibm.com>
     [not found]                                   ` <20080818052155.GA5063@linux.vnet.ibm.com>
2008-08-20  7:24                                     ` Zhang, Yanmin
2008-08-20  7:41                                       ` Peter Zijlstra
2008-08-20 10:51                                         ` Ingo Molnar
2008-08-20 13:32                                           ` Peter Zijlstra
2008-08-20 13:47                                             ` Ingo Molnar
2008-08-21  2:25                                               ` Zhang, Yanmin
2008-08-21  6:16                                                 ` Ingo Molnar
2008-08-21  6:48                                                   ` Zhang, Yanmin
2008-08-29  3:35                                                     ` Zhang, Yanmin
2008-08-29  3:38                                                       ` Zhang, Yanmin
2008-08-20 14:32                                             ` adobriyan
2008-08-20 14:33                                               ` Peter Zijlstra
2008-08-20 15:10                                                 ` Nick Piggin
2008-08-20 15:15                                                   ` Peter Zijlstra
2008-08-20 16:29                                                   ` Ray Lee
2008-08-20 16:51                                                     ` Peter Zijlstra
2008-08-20 17:21                                                     ` Peter Zijlstra
2008-08-20 17:55                                                       ` Nick Piggin
2008-08-20 18:15                                                         ` Ray Lee
2008-08-20 20:30                                                           ` Peter Zijlstra
2008-08-20 20:56                                                             ` Peter Zijlstra
2008-08-21  6:11                                                               ` Nick Piggin
2008-08-21  8:17                                                                 ` Peter Zijlstra
2008-08-21  6:15                                                               ` Ingo Molnar
2008-08-20 20:58                                                             ` Ray Lee
2008-08-20 21:04                                                               ` Peter Zijlstra
2008-08-21  6:12                                                       ` Ingo Molnar
2030-08-13  8:50                             ` Zhang, Yanmin [this message]
2008-08-04  6:54                   ` Peter Zijlstra
2008-08-15 15:37                     ` Ingo Molnar
2008-08-01 12:25 ` Hugh Dickins
2008-08-04  0:54   ` 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=1912841442.25608.284.camel@ymzhang \
    --to=yanmin_zhang@linux.intel.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=balbir@in.ibm.com \
    --cc=dhaval@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=vatsa@linux.vnet.ibm.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

Powered by JetHome