[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8737qgmc5g.fsf@linux.vnet.ibm.com>
Date: Wed, 20 Apr 2016 10:18:51 -0700
From: Stewart Smith <stewart@...ux.vnet.ibm.com>
To: Akshay Adiga <akshay.adiga@...ux.vnet.ibm.com>, rjw@...ysocki.net,
viresh.kumar@...aro.org, linux-pm@...r.kernel.org,
linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Cc: ego@...ux.vnet.ibm.com,
Akshay Adiga <akshay.adiga@...ux.vnet.ibm.com>
Subject: Re: [PATCH v2 2/2] cpufreq: powernv: Ramp-down global pstate slower than local-pstate
Akshay Adiga <akshay.adiga@...ux.vnet.ibm.com> writes:
> Iozone results show fairly consistent performance boost.
> YCSB on redis shows improved Max latencies in most cases.
What about power consumption?
> Iozone write/rewite test were made with filesizes 200704Kb and 401408Kb
> with different record sizes . The following table shows IOoperations/sec
> with and without patch.
> Iozone Results ( in op/sec) ( mean over 3 iterations )
What's the variance between runs?
> Tested with YCSB workload (50% update + 50% read) over redis for 1 million
> records and 1 million operation. Each test was carried out with target
> operations per second and persistence disabled.
>
> Max-latency (in us)( mean over 5 iterations )
What's the variance between runs?
std dev? 95th percentile?
> ---------------------------------------------------------------
> op/s Operation with patch without patch %change
> ---------------------------------------------------------------
> 15000 Read 61480.6 50261.4 22.32
This seems fairly significant regression. Any idea why at 15K op/s
there's such a regression?
> --- a/drivers/cpufreq/powernv-cpufreq.c
> +++ b/drivers/cpufreq/powernv-cpufreq.c
[ 15 more citation lines. Click/Enter to show. ]
> @@ -36,12 +36,56 @@
> #include <asm/reg.h>
> #include <asm/smp.h> /* Required for cpu_sibling_mask() in UP configs */
> #include <asm/opal.h>
> +#include <linux/timer.h>
>
> #define POWERNV_MAX_PSTATES 256
> #define PMSR_PSAFE_ENABLE (1UL << 30)
> #define PMSR_SPR_EM_DISABLE (1UL << 31)
> #define PMSR_MAX(x) ((x >> 32) & 0xFF)
>
> +#define MAX_RAMP_DOWN_TIME 5120
> +/*
> + * On an idle system we want the global pstate to ramp-down from max value
> to
> + * min over a span of ~5 secs. Also we want it to initially ramp-down
> slowly and
> + * then ramp-down rapidly later on.
Where does 5 seconds come from?
Why 5 and not 10, or not 2? Is there some time period inherit in
hardware or software that this is computed from?
> +/* Interval after which the timer is queued to bring down global pstate */
> +#define GPSTATE_TIMER_INTERVAL 2000
in ms?
--
Stewart Smith
OPAL Architect, IBM.
Powered by blists - more mailing lists