All of lore.kernel.org
 help / color / mirror / Atom feed
From: jszhang@marvell.com (Jisheng Zhang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/2] arm64: cpuidle: make arm_cpuidle_suspend() more efficient
Date: Thu, 24 Mar 2016 21:18:53 +0800	[thread overview]
Message-ID: <20160324211853.1ffebd49@xhacker> (raw)
In-Reply-To: <20160324111507.GB9323@arm.com>

Hi Will,

On Thu, 24 Mar 2016 11:15:07 +0000 Will Deacon wrote:

> On Thu, Mar 24, 2016 at 01:08:48PM +0800, Jisheng Zhang wrote:
> > This series is to improve the arm_cpuidle_suspend() a bit by removing/moving
> > out checks from this hot path.
> > 
> > Jisheng Zhang (2):
> >   arm64: cpuidle: remove cpu_ops check from arm_cpuidle_suspend()
> >   arm64: cpuidle: make arm_cpuidle_suspend() a bit more efficient
> > 
> >  arch/arm64/kernel/cpuidle.c | 9 ++-------
> >  1 file changed, 2 insertions(+), 7 deletions(-)  
> 
> These look fine to me, but do you have any rough numbers showing what
> sort of improvement we get from this change?

Good question. Here it is:

I measured the 4096 * time from arm_cpuidle_suspend entry point to the
cpu_psci_cpu_suspend entry point. HW platform is Marvell BG4CT STB board.

1. only one shell, no other process, hot-unplug secondary cpus, execute the
following cmd

while true
do
	sleep 0.2
done

before the patch: 1581220ns

after the patch: 1579630ns

reduced by 0.1%

2. only one shell, no other process, hot-unplug secondary cpus, execute the
following cmd

while true
do
	md5sum /tmp/testfile
	sleep 0.2
done

NOTE the testfile size should be larger than L1+L2 cache size

before the patch: 1961960ns
after the patch: 1912500ns

reduced by 2.5%

So the more complex the system load, the bigger the improvement.

Thanks,
Jisheng

WARNING: multiple messages have this Message-ID (diff)
From: Jisheng Zhang <jszhang@marvell.com>
To: Will Deacon <will.deacon@arm.com>, <catalin.marinas@arm.com>,
	<lorenzo.pieralisi@arm.com>, <daniel.lezcano@linaro.org>
Cc: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/2] arm64: cpuidle: make arm_cpuidle_suspend() more efficient
Date: Thu, 24 Mar 2016 21:18:53 +0800	[thread overview]
Message-ID: <20160324211853.1ffebd49@xhacker> (raw)
In-Reply-To: <20160324111507.GB9323@arm.com>

Hi Will,

On Thu, 24 Mar 2016 11:15:07 +0000 Will Deacon wrote:

> On Thu, Mar 24, 2016 at 01:08:48PM +0800, Jisheng Zhang wrote:
> > This series is to improve the arm_cpuidle_suspend() a bit by removing/moving
> > out checks from this hot path.
> > 
> > Jisheng Zhang (2):
> >   arm64: cpuidle: remove cpu_ops check from arm_cpuidle_suspend()
> >   arm64: cpuidle: make arm_cpuidle_suspend() a bit more efficient
> > 
> >  arch/arm64/kernel/cpuidle.c | 9 ++-------
> >  1 file changed, 2 insertions(+), 7 deletions(-)  
> 
> These look fine to me, but do you have any rough numbers showing what
> sort of improvement we get from this change?

Good question. Here it is:

I measured the 4096 * time from arm_cpuidle_suspend entry point to the
cpu_psci_cpu_suspend entry point. HW platform is Marvell BG4CT STB board.

1. only one shell, no other process, hot-unplug secondary cpus, execute the
following cmd

while true
do
	sleep 0.2
done

before the patch: 1581220ns

after the patch: 1579630ns

reduced by 0.1%

2. only one shell, no other process, hot-unplug secondary cpus, execute the
following cmd

while true
do
	md5sum /tmp/testfile
	sleep 0.2
done

NOTE the testfile size should be larger than L1+L2 cache size

before the patch: 1961960ns
after the patch: 1912500ns

reduced by 2.5%

So the more complex the system load, the bigger the improvement.

Thanks,
Jisheng

  reply	other threads:[~2016-03-24 13:18 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-24  5:08 [PATCH 0/2] arm64: cpuidle: make arm_cpuidle_suspend() more efficient Jisheng Zhang
2016-03-24  5:08 ` Jisheng Zhang
2016-03-24  5:08 ` [PATCH 1/2] arm64: cpuidle: remove cpu_ops check from arm_cpuidle_suspend() Jisheng Zhang
2016-03-24  5:08   ` Jisheng Zhang
2016-03-24  5:08 ` [PATCH 2/2] arm64: cpuidle: make arm_cpuidle_suspend() a bit more efficient Jisheng Zhang
2016-03-24  5:08   ` Jisheng Zhang
2016-03-24 11:15 ` [PATCH 0/2] arm64: cpuidle: make arm_cpuidle_suspend() " Will Deacon
2016-03-24 13:18   ` Jisheng Zhang [this message]
2016-03-24 13:18     ` Jisheng Zhang
2016-03-24 16:44     ` Lorenzo Pieralisi
2016-03-24 16:44       ` Lorenzo Pieralisi
2016-03-25  2:40       ` Jisheng Zhang
2016-03-25  2:40         ` Jisheng Zhang

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=20160324211853.1ffebd49@xhacker \
    --to=jszhang@marvell.com \
    --cc=linux-arm-kernel@lists.infradead.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.