All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aaron Lu <aaron.lu@intel.com>
To: lkp@lists.01.org
Subject: Re: [sctp] a6c2f79287: netperf.Throughput_Mbps -37.2% regression
Date: Wed, 17 Aug 2016 14:37:19 +0800	[thread overview]
Message-ID: <20160817063719.GA5463@aaronlu.sh.intel.com> (raw)
In-Reply-To: <20160817061405.GA5401@aaronlu.sh.intel.com>

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

On Wed, Aug 17, 2016 at 02:14:05PM +0800, Aaron Lu wrote:
> On Wed, Aug 17, 2016 at 01:41:04PM +0800, Xin Long wrote:
> > > The perf-profile data for the two commits are attached(for the case of
> > > prsctp_enable=1, the perf-profile data doesn't get collected for the 0
> > > case for some reason, I'm checking the problem now).
> > >
> > > The CPU gets much more idle time in the bisected commit a6c2f79287:
> > >
> > >     68.89%     0.70%  [kernel.kallsyms]   [k] entry_SYSCALL_64_fastpath
> > >     49.32%     0.12%  [kernel.kallsyms]   [k] sys_sendmsg
> > >     49.17%     0.12%  [kernel.kallsyms]   [k] __sys_sendmsg
> > >     48.58%     0.22%  [kernel.kallsyms]   [k] ___sys_sendmsg
> > >     46.69%     0.06%  [kernel.kallsyms]   [k] sock_sendmsg
> > >     46.31%     0.16%  [kernel.kallsyms]   [k] inet_sendmsg
> > >     45.90%     0.98%  [kernel.kallsyms]   [k] sctp_sendmsg
> > >     29.66%     0.45%  [kernel.kallsyms]   [k] sctp_do_sm
> > >     29.54%     0.23%  [kernel.kallsyms]   [k] cpu_startup_entry
> > >     28.81%     0.68%  [kernel.kallsyms]   [k] sctp_cmd_interpreter.isra.24
> > >     26.20%     0.00%  [kernel.kallsyms]   [k] start_secondary
> > >     23.04%     0.09%  [kernel.kallsyms]   [k] sctp_inq_push
> > >     23.03%     0.08%  [kernel.kallsyms]   [k] call_cpuidle
> > >     22.94%     0.00%  [kernel.kallsyms]   [k] cpuidle_enter
> > >     22.60%     0.18%  [kernel.kallsyms]   [k] cpuidle_enter_state
> > >     21.99%    21.99%  [kernel.kallsyms]   [k] intel_idle
> > > ... ...
> > >
> > > While its immediate parent commit 826d253d57 is mostly busy working:
> > >
> > >     98.53%     0.83%  [kernel.kallsyms]   [k] entry_SYSCALL_64_fastpath
> > >     78.13%     0.12%  [kernel.kallsyms]   [k] sys_sendmsg
> > >     78.03%     0.16%  [kernel.kallsyms]   [k] __sys_sendmsg
> > >     77.08%     0.28%  [kernel.kallsyms]   [k] ___sys_sendmsg
> > >     74.44%     0.08%  [kernel.kallsyms]   [k] sock_sendmsg
> > >     73.82%     0.13%  [kernel.kallsyms]   [k] inet_sendmsg
> > >     73.34%     1.44%  [kernel.kallsyms]   [k] sctp_sendmsg
> > >     47.52%     0.75%  [kernel.kallsyms]   [k] sctp_do_sm
> > >     46.19%     0.90%  [kernel.kallsyms]   [k] sctp_cmd_interpreter.isra.24
> > >     37.17%     1.43%  [kernel.kallsyms]   [k] sctp_outq_flush
> > >     36.93%     0.08%  [kernel.kallsyms]   [k] sctp_outq_uncork
> > >     34.24%     0.15%  [kernel.kallsyms]   [k] sctp_inq_push
> > > ... ...
> > > No idle related function above 1%.
> > >
> > > Will the bisected commit make the idle possible?
> > No, not at all. :)
> > 
> > pls help to debug as I said in the last reply.
> 
> OK, will see how to do that.
> 
> In the meantime, I just tried to reproduce on my own desktop:
> Sandybridge i7-2600 CPU @ 3.40GHz and it reproduced:
> $ cat 4.7.0-rc6-01198-ga6c2f792873a/0/netperf.json
> {
>   "netperf.Throughput_Mbps": [
>    752.9450000000002
>   ]
> }
> $ cat 4.7.0-rc6-01197-g826d253d57b1/0/netperf.json
> {
>   "netperf.Throughput_Mbps": [
>    1068.5556249999997
>   ]
> }

On top of
commit 826d253d57b1 ("sctp: add SCTP_PR_ASSOC_STATUS on sctp sockopt")
I applied the below commit:

>From 98dd2532b14e29dcc2ab40a7348755531afa79e4 Mon Sep 17 00:00:00 2001
From: Aaron Lu <aaron.lu@intel.com>
Date: Wed, 17 Aug 2016 14:20:00 +0800
Subject: [PATCH] sctp: test

---
 include/net/sctp/structs.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index d8e464aacb20..932f2780d3a4 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -602,6 +602,9 @@ struct sctp_chunk {
 	/* This needs to be recoverable for SCTP_SEND_FAILED events. */
 	struct sctp_sndrcvinfo sinfo;
 
+	unsigned long prsctp_param;
+	int sent_count;
+
 	/* Which association does this belong to?  */
 	struct sctp_association *asoc;
 
-- 
2.5.5

Then the performance dropped to the same as the bisected commit
a6c2f792873a:
$ cat 4.7.0-rc6-01198-g98dd2532b14e/0/netperf.json
{
  "netperf.Throughput_Mbps": [
   754.494375
  ]
}

I think this agrees with the perf data in that the newly added function
doesn't show up in the perf-profile but still, the performance drops.
So the only possible reason is the newly added fields to the sctp_chunk
structure.

Is this expected?

Thanks,
Aaron

WARNING: multiple messages have this Message-ID (diff)
From: Aaron Lu <aaron.lu@intel.com>
To: Xin Long <lucien.xin@gmail.com>
Cc: 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>
Subject: Re: [LKP] [lkp] [sctp] a6c2f79287: netperf.Throughput_Mbps -37.2% regression
Date: Wed, 17 Aug 2016 14:37:19 +0800	[thread overview]
Message-ID: <20160817063719.GA5463@aaronlu.sh.intel.com> (raw)
In-Reply-To: <20160817061405.GA5401@aaronlu.sh.intel.com>

On Wed, Aug 17, 2016 at 02:14:05PM +0800, Aaron Lu wrote:
> On Wed, Aug 17, 2016 at 01:41:04PM +0800, Xin Long wrote:
> > > The perf-profile data for the two commits are attached(for the case of
> > > prsctp_enable=1, the perf-profile data doesn't get collected for the 0
> > > case for some reason, I'm checking the problem now).
> > >
> > > The CPU gets much more idle time in the bisected commit a6c2f79287:
> > >
> > >     68.89%     0.70%  [kernel.kallsyms]   [k] entry_SYSCALL_64_fastpath
> > >     49.32%     0.12%  [kernel.kallsyms]   [k] sys_sendmsg
> > >     49.17%     0.12%  [kernel.kallsyms]   [k] __sys_sendmsg
> > >     48.58%     0.22%  [kernel.kallsyms]   [k] ___sys_sendmsg
> > >     46.69%     0.06%  [kernel.kallsyms]   [k] sock_sendmsg
> > >     46.31%     0.16%  [kernel.kallsyms]   [k] inet_sendmsg
> > >     45.90%     0.98%  [kernel.kallsyms]   [k] sctp_sendmsg
> > >     29.66%     0.45%  [kernel.kallsyms]   [k] sctp_do_sm
> > >     29.54%     0.23%  [kernel.kallsyms]   [k] cpu_startup_entry
> > >     28.81%     0.68%  [kernel.kallsyms]   [k] sctp_cmd_interpreter.isra.24
> > >     26.20%     0.00%  [kernel.kallsyms]   [k] start_secondary
> > >     23.04%     0.09%  [kernel.kallsyms]   [k] sctp_inq_push
> > >     23.03%     0.08%  [kernel.kallsyms]   [k] call_cpuidle
> > >     22.94%     0.00%  [kernel.kallsyms]   [k] cpuidle_enter
> > >     22.60%     0.18%  [kernel.kallsyms]   [k] cpuidle_enter_state
> > >     21.99%    21.99%  [kernel.kallsyms]   [k] intel_idle
> > > ... ...
> > >
> > > While its immediate parent commit 826d253d57 is mostly busy working:
> > >
> > >     98.53%     0.83%  [kernel.kallsyms]   [k] entry_SYSCALL_64_fastpath
> > >     78.13%     0.12%  [kernel.kallsyms]   [k] sys_sendmsg
> > >     78.03%     0.16%  [kernel.kallsyms]   [k] __sys_sendmsg
> > >     77.08%     0.28%  [kernel.kallsyms]   [k] ___sys_sendmsg
> > >     74.44%     0.08%  [kernel.kallsyms]   [k] sock_sendmsg
> > >     73.82%     0.13%  [kernel.kallsyms]   [k] inet_sendmsg
> > >     73.34%     1.44%  [kernel.kallsyms]   [k] sctp_sendmsg
> > >     47.52%     0.75%  [kernel.kallsyms]   [k] sctp_do_sm
> > >     46.19%     0.90%  [kernel.kallsyms]   [k] sctp_cmd_interpreter.isra.24
> > >     37.17%     1.43%  [kernel.kallsyms]   [k] sctp_outq_flush
> > >     36.93%     0.08%  [kernel.kallsyms]   [k] sctp_outq_uncork
> > >     34.24%     0.15%  [kernel.kallsyms]   [k] sctp_inq_push
> > > ... ...
> > > No idle related function above 1%.
> > >
> > > Will the bisected commit make the idle possible?
> > No, not at all. :)
> > 
> > pls help to debug as I said in the last reply.
> 
> OK, will see how to do that.
> 
> In the meantime, I just tried to reproduce on my own desktop:
> Sandybridge i7-2600 CPU @ 3.40GHz and it reproduced:
> $ cat 4.7.0-rc6-01198-ga6c2f792873a/0/netperf.json
> {
>   "netperf.Throughput_Mbps": [
>    752.9450000000002
>   ]
> }
> $ cat 4.7.0-rc6-01197-g826d253d57b1/0/netperf.json
> {
>   "netperf.Throughput_Mbps": [
>    1068.5556249999997
>   ]
> }

On top of
commit 826d253d57b1 ("sctp: add SCTP_PR_ASSOC_STATUS on sctp sockopt")
I applied the below commit:

>From 98dd2532b14e29dcc2ab40a7348755531afa79e4 Mon Sep 17 00:00:00 2001
From: Aaron Lu <aaron.lu@intel.com>
Date: Wed, 17 Aug 2016 14:20:00 +0800
Subject: [PATCH] sctp: test

---
 include/net/sctp/structs.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index d8e464aacb20..932f2780d3a4 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -602,6 +602,9 @@ struct sctp_chunk {
 	/* This needs to be recoverable for SCTP_SEND_FAILED events. */
 	struct sctp_sndrcvinfo sinfo;
 
+	unsigned long prsctp_param;
+	int sent_count;
+
 	/* Which association does this belong to?  */
 	struct sctp_association *asoc;
 
-- 
2.5.5

Then the performance dropped to the same as the bisected commit
a6c2f792873a:
$ cat 4.7.0-rc6-01198-g98dd2532b14e/0/netperf.json
{
  "netperf.Throughput_Mbps": [
   754.494375
  ]
}

I think this agrees with the perf data in that the newly added function
doesn't show up in the perf-profile but still, the performance drops.
So the only possible reason is the newly added fields to the sctp_chunk
structure.

Is this expected?

Thanks,
Aaron

  reply	other threads:[~2016-08-17  6:37 UTC|newest]

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