linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Aaron Lu <aaron.lu@intel.com>
To: Xin Long <lucien.xin@gmail.com>
Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>,
	kernel test robot <xiaolong.ye@intel.com>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	lkp@01.org, "David S. Miller" <davem@davemloft.net>,
	LKML <linux-kernel@vger.kernel.org>,
	"Chen, Tim C" <tim.c.chen@intel.com>,
	Huang Ying <ying.huang@intel.com>
Subject: Re: [LKP] [lkp] [sctp] a6c2f79287: netperf.Throughput_Mbps -37.2% regression
Date: Fri, 19 Aug 2016 13:29:41 +0800	[thread overview]
Message-ID: <20160819052941.GA1179@aaronlu.sh.intel.com> (raw)
In-Reply-To: <CADvbK_cF3Mphd5CDqGVHcbbZ-L8Xz=vRPzdKTzE4A_p-ZBiDVA@mail.gmail.com>

On Thu, Aug 18, 2016 at 08:45:42PM +0800, Xin Long wrote:
> >> Hi, Aaron
> >>
> >> 1)
> >> I talked with Marcelo about this one.
> >> He said it might be related with cacheline.  the  new field distroyed
> >> the prior cacheline. So on top of commit 826d253d57b1, pls only add
> >> +       unsigned long prsctp_param;
> >>
> >> to the end of struct sctp_chunk, then try.
> >
> > This doesn't work.
> >
> 
> If it's because of cache lines changed, I'm not sure this, either.
> Maybe 2) is a good way to fix it.

A comparison of the good commit 826d253d57b1 and the bad a6c2f792873a:

tests: 8
testcase/path_params/tbox_group/run: netperf/ipv4-300s-200%-cs-localhost-10K-SCTP_STREAM_MANY-performance/lkp-ivb-d02

826d253d57b11f69             a6c2f792873aff332a4689717c  
----------------             --------------------------  
         %stddev      change         %stddev
             \          |                \  
      3923             -37%       2461        netperf.Throughput_Mbps
         9             -78%          2        vmstat.procs.r
    112616              19%     133981        vmstat.system.cs
      4053               7%       4350        vmstat.system.in
      8598 ±  4%       957%      90912        softirqs.SCHED
  16466114             -37%   10305467        softirqs.NET_RX
    605899             -46%     329262        softirqs.TIMER
     72067 ± 10%       -63%      26356 ±  3%  softirqs.RCU
      4785 ±  7%        -9%       4352        slabinfo.anon_vma_chain.num_objs
       642 ±  7%        14%        731 ±  6%  slabinfo.kmalloc-512.active_objs
      4993              15%       5735        slabinfo.kmalloc-64.active_objs
      4993              15%       5735        slabinfo.kmalloc-64.num_objs
      2529 ±  4%       -15%       2150        proc-vmstat.nr_alloc_batch
 4.733e+08             -37%  2.999e+08        proc-vmstat.pgalloc_normal
 8.476e+08             -37%   5.36e+08        proc-vmstat.pgfree
 3.742e+08             -37%  2.361e+08        proc-vmstat.pgalloc_dma32
  1.48e+08             -37%   93033641        proc-vmstat.numa_hit
  1.48e+08             -37%   93033640        proc-vmstat.numa_local
      0.05 ± 17%     52102%      24.80        turbostat.CPU%c1
      0.64            3065%      20.10 ±  3%  turbostat.CPU%c6
      0.12 ± 39%      1900%       2.35 ±  3%  turbostat.Pkg%pc2
      0.46 ± 10%      1686%       8.22 ±  6%  turbostat.Pkg%pc6
     37.54             -14%      32.11        turbostat.PkgWatt
     20.20             -25%      15.22        turbostat.CorWatt
     99.31             -45%      54.97        turbostat.%Busy
      3269             -45%       1803        turbostat.Avg_MHz
     76510 ± 46%     3e+05%  1.954e+08        cpuidle.C1-IVB.time
     19769 ± 17%      5534%    1113742 ±  5%  cpuidle.C1E-IVB.time
       151 ± 11%      4175%       6454 ±  7%  cpuidle.C1E-IVB.usage
       114 ± 14%      6216%       7232 ±  5%  cpuidle.C3-IVB.usage
     33074 ± 14%      5159%    1739419 ±  3%  cpuidle.C3-IVB.time
      8874            4203%     381901        cpuidle.C6-IVB.usage
   8006184            4072%   3.34e+08        cpuidle.C6-IVB.time
     12019 ± 35%       303%      48398        perf-stat.cpu-migrations
  34232822              19%   40780053        perf-stat.context-switches
    339045               5%     354573        perf-stat.minor-faults
    339041               5%     354568        perf-stat.page-faults
 2.776e+11             -28%  2.003e+11        perf-stat.branch-instructions
 1.505e+12             -29%  1.065e+12        perf-stat.instructions
 6.421e+11             -30%  4.473e+11        perf-stat.dTLB-loads
  5.32e+11             -34%  3.536e+11        perf-stat.dTLB-stores
 1.173e+11             -38%  7.271e+10        perf-stat.cache-references
 3.735e+08 ±  5%       -48%  1.959e+08 ±  4%  perf-stat.iTLB-load-misses
 3.864e+09             -51%    1.9e+09        perf-stat.branch-misses
 4.069e+09 ± 20%       -56%  1.798e+09 ± 40%  perf-stat.dTLB-load-misses
 5.285e+08 ± 22%       -70%  1.585e+08 ± 16%  perf-stat.dTLB-store-misses
 7.126e+09 ± 16%       -97%   2.27e+08 ±  4%  perf-stat.cache-misses

The obvious change is:
1 the bad commit has a much fewer runnable process - vmstat.procs.r
2 the context switches are much higher in the bad commit - vmstat.system.cs

It all suggests the netperf processes go to sleep for some reason in the bad
commit.

I used "perf record -p one_netperf_pid -e probe:pick_next_task_idle" as
suggested by Tim to see where it went to sleep:

Samples: 78  of event 'probe:pick_next_task_idle', Event count(approx.): 78
  Children      Self  Trace output
  ■-  100.00%   100.00%  (ffffffff810fc750)
  ▒     __sendmsg_nocancel
  ▒     entry_SYSCALL_64_fastpath
  ▒     sys_sendmsg
  ▒     __sys_sendmsg
  ▒     ___sys_sendmsg
  ▒     inet_sendmsg
  ▒     sctp_sendmsg
  ▒     sctp_wait_for_sndbuf
  ▒     schedule_timeout
  ▒     schedule
  ▒     pick_next_task_idle

It doesn't look insane and sctp_wait_for_sndbuf may actually have
something to do with a larger sctp_chunk I suppose?

The same perf record doesn't capture any sample for the good commit,
which suggests the nerperf process doesn't sleep in sctp_wait_for_sndbuf.

Regards,
Aaron

  reply	other threads:[~2016-08-19  5:29 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-27  1:54 [lkp] [sctp] a6c2f79287: netperf.Throughput_Mbps -37.2% regression kernel test robot
2016-07-28  7:01 ` Xin Long
2016-08-05  3:31   ` [LKP] " Aaron Lu
2016-08-05 11:53     ` Xin Long
2016-08-08  2:10       ` Aaron Lu
2016-08-16  2:38         ` Aaron Lu
2016-08-16  8:02         ` Xin Long
2016-08-16  8:30           ` Aaron Lu
2016-08-16  8:51           ` Aaron Lu
2016-08-16  9:56             ` Xin Long
2016-08-17  5:04               ` Aaron Lu
2016-08-17  5:34                 ` Xin Long
2016-08-17  5:34                 ` Aaron Lu
2016-08-17  5:41                   ` Xin Long
2016-08-17  6:14                     ` Aaron Lu
2016-08-17  6:37                       ` Aaron Lu
2016-08-17  6:42                         ` Aaron Lu
2016-08-17  7:35                         ` Xin Long
2016-08-17  7:42                           ` Aaron Lu
2016-08-17  7:53                             ` Aaron Lu
2016-08-17  8:02                             ` Xin Long
2016-08-17  8:48                               ` Aaron Lu
2016-08-17  8:58                                 ` Xin Long
2016-08-17  9:20                                   ` Aaron Lu
2016-08-17 18:06                                     ` Xin Long
2016-08-18  3:21                                       ` Aaron Lu
2016-08-18 12:45                                         ` Xin Long
2016-08-19  5:29                                           ` Aaron Lu [this message]
2016-08-19  7:19                                             ` Marcelo Ricardo Leitner
2016-08-19  7:24                                               ` Aaron Lu
2016-08-22 21:44                                                 ` Marcelo Ricardo Leitner
2016-08-23  9:19                                                   ` Aaron Lu
2016-09-30  7:05                                                   ` Aaron Lu
2016-10-03  2:32                                                     ` Xin Long
2016-10-09  7:41                                                       ` Aaron Lu
2016-08-16 18:34             ` Xin Long

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=20160819052941.GA1179@aaronlu.sh.intel.com \
    --to=aaron.lu@intel.com \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@01.org \
    --cc=lucien.xin@gmail.com \
    --cc=marcelo.leitner@gmail.com \
    --cc=sfr@canb.auug.org.au \
    --cc=tim.c.chen@intel.com \
    --cc=xiaolong.ye@intel.com \
    --cc=ying.huang@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).