All of lore.kernel.org
 help / color / mirror / Atom feed
From: Feng Tang <feng.tang@intel.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: kernel test robot <oliver.sang@intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Oleg Nesterov <oleg@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>,
	x86@kernel.org, lkp@lists.01.org, lkp@intel.com,
	ying.huang@intel.com, zhengjun.xing@intel.com
Subject: Re: [signal]  4bad58ebc8:  will-it-scale.per_thread_ops -3.3% regression
Date: Sat, 1 May 2021 17:46:43 +0800	[thread overview]
Message-ID: <20210501094643.GC79529@shbuild999.sh.intel.com> (raw)
In-Reply-To: <874kfof8un.ffs@nanos.tec.linutronix.de>

Hi Thomas,

On Fri, Apr 30, 2021 at 10:57:20AM +0200, Thomas Gleixner wrote:
> Feng,
> 
> On Fri, Apr 30 2021 at 16:13, Feng Tang wrote:
> > On Tue, Apr 20, 2021 at 11:08:37AM +0800, kernel test robot wrote:
> >> commit: 
> >>   69995ebbb9 ("signal: Hand SIGQUEUE_PREALLOC flag to __sigqueue_alloc()")
> >>   4bad58ebc8 ("signal: Allow tasks to cache one sigqueue struct")
> >> 
> >> 69995ebbb9d37173 4bad58ebc8bc4f20d89cff95417 
> >> ---------------- --------------------------- 
> >>          %stddev     %change         %stddev
> >>              \          |                \  
> >>  1.273e+09            -3.3%  1.231e+09        will-it-scale.192.threads
> >>    6630224            -3.3%    6409738        will-it-scale.per_thread_ops
> >>  1.273e+09            -3.3%  1.231e+09        will-it-scale.workload
> >
> > We've double checked this, and it seems to be another case of
> > the code alignment change caused regression change, just like
> > the other case we debugged " [genirq]  cbe16f35be:
> > will-it-scale.per_thread_ops -5.2% regression" 
> >
> > https://lore.kernel.org/lkml/20210428050758.GB52098@shbuild999.sh.intel.com/
> >
> > With the same debug patch of forcing function address 64 bytes
> > aligned, then commit 4bad58ebc8 will bring no change on this case. 
> >
> > commit 09c60546f04f "./Makefile: add debug option to enable function
> > aligned on 32 bytes" only forced 32 bytes align, with thinking 64B
> > align will occupy more code space, and affect iTLB more. Maybe we
> > should just extend it to 64B align, as it is for debug only anyway. 
> 
> thanks for the heads up!
> 
> But why is this restricted to debug mode?
> 
> The fact that adding a few bytes of text causes regressions in unrelated
> code is not restricted to debug or am I missing something here?
 
With the default kernel config of 0day, 64B_force_aligned kernel is 11%
bigger than the 32B_force_aligned kernel (both the vmlinux and its text
size), and benchmark also shows there are performance drops with the
64B_forced_aligned kernel (should be related with more i-cache and i-TLB
footprint).

Also we are still looking for other ways with same effect, while not
increasing kernel text so much. So we are still put it under debug
options.

Thanks,
Feng

> Thanks,
> 
>         tglx

WARNING: multiple messages have this Message-ID (diff)
From: Feng Tang <feng.tang@intel.com>
To: lkp@lists.01.org
Subject: Re: [signal] 4bad58ebc8: will-it-scale.per_thread_ops -3.3% regression
Date: Sat, 01 May 2021 17:46:43 +0800	[thread overview]
Message-ID: <20210501094643.GC79529@shbuild999.sh.intel.com> (raw)
In-Reply-To: <874kfof8un.ffs@nanos.tec.linutronix.de>

[-- Attachment #1: Type: text/plain, Size: 2341 bytes --]

Hi Thomas,

On Fri, Apr 30, 2021 at 10:57:20AM +0200, Thomas Gleixner wrote:
> Feng,
> 
> On Fri, Apr 30 2021 at 16:13, Feng Tang wrote:
> > On Tue, Apr 20, 2021 at 11:08:37AM +0800, kernel test robot wrote:
> >> commit: 
> >>   69995ebbb9 ("signal: Hand SIGQUEUE_PREALLOC flag to __sigqueue_alloc()")
> >>   4bad58ebc8 ("signal: Allow tasks to cache one sigqueue struct")
> >> 
> >> 69995ebbb9d37173 4bad58ebc8bc4f20d89cff95417 
> >> ---------------- --------------------------- 
> >>          %stddev     %change         %stddev
> >>              \          |                \  
> >>  1.273e+09            -3.3%  1.231e+09        will-it-scale.192.threads
> >>    6630224            -3.3%    6409738        will-it-scale.per_thread_ops
> >>  1.273e+09            -3.3%  1.231e+09        will-it-scale.workload
> >
> > We've double checked this, and it seems to be another case of
> > the code alignment change caused regression change, just like
> > the other case we debugged " [genirq]  cbe16f35be:
> > will-it-scale.per_thread_ops -5.2% regression" 
> >
> > https://lore.kernel.org/lkml/20210428050758.GB52098(a)shbuild999.sh.intel.com/
> >
> > With the same debug patch of forcing function address 64 bytes
> > aligned, then commit 4bad58ebc8 will bring no change on this case. 
> >
> > commit 09c60546f04f "./Makefile: add debug option to enable function
> > aligned on 32 bytes" only forced 32 bytes align, with thinking 64B
> > align will occupy more code space, and affect iTLB more. Maybe we
> > should just extend it to 64B align, as it is for debug only anyway. 
> 
> thanks for the heads up!
> 
> But why is this restricted to debug mode?
> 
> The fact that adding a few bytes of text causes regressions in unrelated
> code is not restricted to debug or am I missing something here?
 
With the default kernel config of 0day, 64B_force_aligned kernel is 11%
bigger than the 32B_force_aligned kernel (both the vmlinux and its text
size), and benchmark also shows there are performance drops with the
64B_forced_aligned kernel (should be related with more i-cache and i-TLB
footprint).

Also we are still looking for other ways with same effect, while not
increasing kernel text so much. So we are still put it under debug
options.

Thanks,
Feng

> Thanks,
> 
>         tglx

  reply	other threads:[~2021-05-01  9:47 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-20  3:08 [signal] 4bad58ebc8: will-it-scale.per_thread_ops -3.3% regression kernel test robot
2021-04-20  3:08 ` kernel test robot
2021-04-20 18:35 ` Thomas Gleixner
2021-04-20 18:35   ` Thomas Gleixner
2021-04-22  6:02   ` Oliver Sang
2021-04-22  6:02     ` Oliver Sang
2021-04-22 15:37     ` Thomas Gleixner
2021-04-22 15:37       ` Thomas Gleixner
2021-04-30  8:13 ` Feng Tang
2021-04-30  8:13   ` Feng Tang
2021-04-30  8:57   ` Thomas Gleixner
2021-04-30  8:57     ` Thomas Gleixner
2021-05-01  9:46     ` Feng Tang [this message]
2021-05-01  9:46       ` Feng Tang

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=20210501094643.GC79529@shbuild999.sh.intel.com \
    --to=feng.tang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=lkp@lists.01.org \
    --cc=oleg@redhat.com \
    --cc=oliver.sang@intel.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=ying.huang@intel.com \
    --cc=zhengjun.xing@intel.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 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.