From: Srikar Dronamraju <srikar@linux.ibm.com>
To: Madadi Vineeth Reddy <vineethr@linux.ibm.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Naveen N Rao <naveen@kernel.org>,
Ard Biesheuvel <ardb@kernel.org>,
Eric Biggers <ebiggers@google.com>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Andrew Morton <akpm@linux-foundation.org>,
Yosry Ahmed <yosry.ahmed@linux.dev>,
Tamir Duberstein <tamird@gmail.com>,
Shrikanth Hegde <sshegde@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] powerpc/defconfigs: Set HZ=1000 on ppc64 and powernv defconfigs
Date: Wed, 2 Apr 2025 13:13:40 +0530 [thread overview]
Message-ID: <Z-zqrE-8YQVHDyFS@linux.ibm.com> (raw)
In-Reply-To: <20250330074734.16679-1-vineethr@linux.ibm.com>
* Madadi Vineeth Reddy <vineethr@linux.ibm.com> [2025-03-30 13:17:34]:
> Commit 030bdc3fd080 ("powerpc/defconfigs: Set HZ=100 on pseries and ppc64
> defconfigs") lowered CONFIG_HZ from 250 to 100, citing reduced need for a
> higher tick rate due to high-resolution timers and concerns about timer
> interrupt overhead and cascading effects in the timer wheel.
>
> However, improvements have been made to the timer wheel algorithm since
> then, particularly in eliminating cascading effects at the cost of minor
> timekeeping inaccuracies. More details are available here
> https://lwn.net/Articles/646950/. This removes the original concern about
> cascading, and the reliance on high-resolution timers is not applicable
> to the scheduler, which still depends on periodic ticks set by CONFIG_HZ.
>
> With the introduction of the EEVDF scheduler, users can specify custom
> slices for workloads. The default base_slice is 3ms, but with CONFIG_HZ=100
> (10ms tick interval), base_slice is ineffective. Workloads like stress-ng
> that do not voluntarily yield the CPU run for ~10ms before switching out.
> Additionally, setting a custom slice below 3ms (e.g., 2ms) should lower
> task latency, but this effect is lost due to the coarse 10ms tick.
>
> By increasing CONFIG_HZ to 1000 (1ms tick), base_slice is properly honored,
> and user-defined slices work as expected. Benchmark results support this
> change:
>
> Latency improvements in schbench with EEVDF under stress-ng-induced noise:
>
> Scheduler CONFIG_HZ Custom Slice 99th Percentile Latency (µs)
> --------------------------------------------------------------------
> EEVDF 1000 No 0.30x
> EEVDF 1000 2 ms 0.29x
> EEVDF (default) 100 No 1.00x
>
> Switching to HZ=1000 reduces the 99th percentile latency in schbench by
> ~70%. This improvement occurs because, with HZ=1000, stress-ng tasks run
> for ~3ms before yielding, compared to ~10ms with HZ=100. As a result,
> schbench gets CPU time sooner, reducing its latency.
>
> Daytrader Performance:
>
> Daytrader results show minor variation within standard deviation,
> indicating no significant regression.
>
> Workload (Users/Instances) Throughput 1000HZ vs 100HZ (Std Dev%)
> --------------------------------------------------------------------------
> 30 u, 1 i +3.01% (1.62%)
> 60 u, 1 i +1.46% (2.69%)
> 90 u, 1 i –1.33% (3.09%)
> 30 u, 2 i -1.20% (1.71%)
> 30 u, 3 i –0.07% (1.33%)
>
> Avg. Response Time: No Change (=)
>
> pgbench select queries:
>
> Metric 1000HZ vs 100HZ (Std Dev%)
> ------------------------------------------------------------------
> Average TPS Change +2.16% (1.27%)
> Average Latency Change –2.21% (1.21%)
>
> Average TPS: Higher the better
> Average Latency: Lower the better
>
> pgbench shows both throughput and latency improvements beyond standard
> deviation.
>
> Given these results and the improvements in timer wheel implementation,
> increasing CONFIG_HZ to 1000 ensures that powerpc benefits from EEVDF’s
> base_slice and allows fine-tuned scheduling for latency-sensitive
> workloads.
>
> Signed-off-by: Madadi Vineeth Reddy <vineethr@linux.ibm.com>
Good work Vineeth,
As pointed by you, the base slice is 3ms and having base slice as a multiple
of tick will help. The numbers also support this change.
Looks good to me.
Reviewed-by: Srikar Dronamraju <srikar@linux.ibm.com>
--
Thanks and Regards
Srikar Dronamraju
next prev parent reply other threads:[~2025-04-02 7:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-30 7:47 [PATCH] powerpc/defconfigs: Set HZ=1000 on ppc64 and powernv defconfigs Madadi Vineeth Reddy
2025-03-31 7:08 ` Shrikanth Hegde
2025-04-01 5:43 ` Mukesh Kumar Chaurasiya
2025-04-02 7:43 ` Srikar Dronamraju [this message]
2025-04-16 6:40 ` Madadi Vineeth Reddy
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=Z-zqrE-8YQVHDyFS@linux.ibm.com \
--to=srikar@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=ardb@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=ebiggers@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=martin.petersen@oracle.com \
--cc=mpe@ellerman.id.au \
--cc=naveen@kernel.org \
--cc=npiggin@gmail.com \
--cc=sshegde@linux.ibm.com \
--cc=tamird@gmail.com \
--cc=vineethr@linux.ibm.com \
--cc=yosry.ahmed@linux.dev \
/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).