From: K Prateek Nayak <kprateek.nayak@amd.com>
To: Tim Chen <tim.c.chen@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
"Gautham R . Shenoy" <gautham.shenoy@amd.com>
Cc: Juri Lelli <juri.lelli@redhat.com>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Valentin Schneider <vschneid@redhat.com>,
Tim Chen <tim.c.chen@intel.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Libo Chen <libo.chen@oracle.com>,
Abel Wu <wuyun.abel@bytedance.com>,
Madadi Vineeth Reddy <vineethr@linux.ibm.com>,
Hillf Danton <hdanton@sina.com>, Len Brown <len.brown@intel.com>,
linux-kernel@vger.kernel.org, Chen Yu <yu.c.chen@intel.com>
Subject: Re: [RFC patch v3 00/20] Cache aware scheduling
Date: Wed, 25 Jun 2025 10:00:41 +0530 [thread overview]
Message-ID: <fc6a2cd3-1425-40de-99a3-605d3215c0cd@amd.com> (raw)
In-Reply-To: <2c72e2ada1bcc86053c01c67ba4a03cf1b4f132d.camel@linux.intel.com>
Hello Tim,
On 6/25/2025 6:00 AM, Tim Chen wrote:
>> o Benchmark that prefer co-location and run in threaded mode see
>> a benefit including hackbench at high utilization and schbench
>> at low utilization.
>>
>> o schbench (both new and old but particularly the old) regresses
>> quite a bit on the tial latency metric when #workers cross the
>> LLC size.
>
> Will take closer look at the cases where #workers just exceed LLC size.
> Perhaps adjusting the threshold to spread the load earlier at a
> lower LLC utilization will help.
I too will test with different number of fd pairs to see if I can
spot a trend.
>
>>
>> o client-server benchmarks where client and servers are threads
>> from different processes (netserver-netperf, tbench_srv-tbench,
>> services of DeathStarBench) seem to noticeably regress due to
>> lack of co-location between the communicating client and server.
>>
>> Not sure if WF_SYNC can be an indicator to temporarily ignore
>> the preferred LLC hint.
>
> Currently we do not aggregate tasks from different processes.
> The case where client and server actually reside on the same
> system I think is the exception rather than the rule for real
> workloads where clients and servers reside on different systems.
>
> But I do see tasks from different processes talking to each
> other via pipe/socket in real workload. Do you know of good
> use cases for such scenario that would justify extending task
> aggregation to multi-processes?
We've seen cases with Kubernetes deployments where co-locating
processes of different services from the same pod can help with
throughput and latency. Perhaps it can happen indirectly where
co-location on WF_SYNC can actually help increase the cache
occupancy for a the other process and they both arrive at the
same preferred LLC. I'll see if I can get my hands on a setup
which is closer to these real world deployment.
>
>>
>> o stream regresses in some runs where the occupancy metrics trip
>> and assign a preferred LLC for all the stream threads bringing
>> down performance in !50% of the runs.
>>
>
> Yes, stream does not have cache benefit from co-locating threads, and
> get hurt from sharing common resource like memory controller.
>
>
>> Full data from my testing is as follows:
>>
>> o Machine details
>>
>> - 3rd Generation EPYC System
>> - 2 sockets each with 64C/128T
>> - NPS1 (Each socket is a NUMA node)
>> - C2 Disabled (POLL and C1(MWAIT) remained enabled)
>>
>>
>> ==================================================================
>> Test : Various longer running benchmarks
>> Units : %diff in throughput reported
>> Interpretation: Higher is better
>> Statistic : Median
>> ==================================================================
>> Benchmarks: %diff
>> ycsb-cassandra -0.99%
>> ycsb-mongodb -0.96%
>> deathstarbench-1x -2.09%
>> deathstarbench-2x -0.26%
>> deathstarbench-3x -3.34%
>> deathstarbench-6x -3.03%
>> hammerdb+mysql 16VU -2.15%
>> hammerdb+mysql 64VU -3.77%
>>
>
> The clients and server of the benchmarks are co-located on the same
> system, right?
Yes that is correct. I'm using a 2P systems and our runner scripts
pin the workload to the first socket, and the workload driver runs
from the second socket. One side effect of this is that changes can
influence the placement of workload driver and that can lead to
some inconsistencies. I'll check if the the stats for the workload
driver is way off between the baseline and with this series.
--
Thanks and Regards,
Prateek
next prev parent reply other threads:[~2025-06-25 4:30 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-18 18:27 Tim Chen
2025-06-18 18:27 ` [RFC patch v3 01/20] sched: Cache aware load-balancing Tim Chen
2025-06-26 12:23 ` Jianyong Wu
2025-06-26 13:32 ` Chen, Yu C
2025-06-27 0:10 ` Tim Chen
2025-06-27 2:13 ` Jianyong Wu
2025-07-03 19:29 ` Shrikanth Hegde
2025-07-04 8:40 ` Chen, Yu C
2025-07-04 8:45 ` Peter Zijlstra
2025-07-04 8:54 ` Shrikanth Hegde
2025-07-07 19:57 ` Tim Chen
2025-06-18 18:27 ` [RFC patch v3 02/20] sched: Several fixes for cache aware scheduling Tim Chen
2025-07-03 19:33 ` Shrikanth Hegde
2025-07-07 21:02 ` Tim Chen
2025-07-08 1:15 ` Libo Chen
2025-07-08 7:54 ` Chen, Yu C
2025-07-08 15:47 ` Libo Chen
2025-06-18 18:27 ` [RFC patch v3 03/20] sched: Avoid task migration within its preferred LLC Tim Chen
2025-06-18 18:27 ` [RFC patch v3 04/20] sched: Avoid calculating the cpumask if the system is overloaded Tim Chen
2025-07-03 19:39 ` Shrikanth Hegde
2025-07-07 14:57 ` Tim Chen
2025-06-18 18:27 ` [RFC patch v3 05/20] sched: Add hysteresis to switch a task's preferred LLC Tim Chen
2025-07-02 6:47 ` Madadi Vineeth Reddy
2025-07-02 21:47 ` Tim Chen
2025-06-18 18:27 ` [RFC patch v3 06/20] sched: Save the per LLC utilization for better cache aware scheduling Tim Chen
2025-06-18 18:27 ` [RFC patch v3 07/20] sched: Add helper function to decide whether to allow " Tim Chen
2025-07-08 0:41 ` Libo Chen
2025-07-08 8:29 ` Chen, Yu C
2025-07-08 17:22 ` Libo Chen
2025-07-09 14:41 ` Chen, Yu C
2025-07-09 21:31 ` Libo Chen
2025-07-08 21:59 ` Tim Chen
2025-07-09 21:22 ` Libo Chen
2025-06-18 18:27 ` [RFC patch v3 08/20] sched: Set up LLC indexing Tim Chen
2025-07-03 19:44 ` Shrikanth Hegde
2025-07-04 9:36 ` Chen, Yu C
2025-06-18 18:27 ` [RFC patch v3 09/20] sched: Introduce task preferred LLC field Tim Chen
2025-06-18 18:27 ` [RFC patch v3 10/20] sched: Calculate the number of tasks that have LLC preference on a runqueue Tim Chen
2025-07-03 19:45 ` Shrikanth Hegde
2025-07-04 15:00 ` Chen, Yu C
2025-06-18 18:27 ` [RFC patch v3 11/20] sched: Introduce per runqueue task LLC preference counter Tim Chen
2025-06-18 18:28 ` [RFC patch v3 12/20] sched: Calculate the total number of preferred LLC tasks during load balance Tim Chen
2025-06-18 18:28 ` [RFC patch v3 13/20] sched: Tag the sched group as llc_balance if it has tasks prefer other LLC Tim Chen
2025-06-18 18:28 ` [RFC patch v3 14/20] sched: Introduce update_llc_busiest() to deal with groups having preferred LLC tasks Tim Chen
2025-07-03 19:52 ` Shrikanth Hegde
2025-07-05 2:26 ` Chen, Yu C
2025-06-18 18:28 ` [RFC patch v3 15/20] sched: Introduce a new migration_type to track the preferred LLC load balance Tim Chen
2025-06-18 18:28 ` [RFC patch v3 16/20] sched: Consider LLC locality for active balance Tim Chen
2025-06-18 18:28 ` [RFC patch v3 17/20] sched: Consider LLC preference when picking tasks from busiest queue Tim Chen
2025-06-18 18:28 ` [RFC patch v3 18/20] sched: Do not migrate task if it is moving out of its preferred LLC Tim Chen
2025-06-18 18:28 ` [RFC patch v3 19/20] sched: Introduce SCHED_CACHE_LB to control cache aware load balance Tim Chen
2025-06-18 18:28 ` [RFC patch v3 20/20] sched: Introduce SCHED_CACHE_WAKE to control LLC aggregation on wake up Tim Chen
2025-06-19 6:39 ` [RFC patch v3 00/20] Cache aware scheduling Yangyu Chen
2025-06-19 13:21 ` Chen, Yu C
2025-06-19 14:12 ` Yangyu Chen
2025-06-20 19:25 ` Madadi Vineeth Reddy
2025-06-22 0:39 ` Chen, Yu C
2025-06-24 17:47 ` Madadi Vineeth Reddy
2025-06-23 16:45 ` Tim Chen
2025-06-24 5:00 ` K Prateek Nayak
2025-06-24 12:16 ` Chen, Yu C
2025-06-25 4:19 ` K Prateek Nayak
2025-06-25 0:30 ` Tim Chen
2025-06-25 4:30 ` K Prateek Nayak [this message]
2025-07-03 20:00 ` Shrikanth Hegde
2025-07-04 10:09 ` Chen, Yu C
2025-07-09 19:39 ` Madadi Vineeth Reddy
2025-07-10 3:33 ` Chen, Yu C
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=fc6a2cd3-1425-40de-99a3-605d3215c0cd@amd.com \
--to=kprateek.nayak@amd.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=gautham.shenoy@amd.com \
--cc=hdanton@sina.com \
--cc=juri.lelli@redhat.com \
--cc=len.brown@intel.com \
--cc=libo.chen@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tim.c.chen@intel.com \
--cc=tim.c.chen@linux.intel.com \
--cc=vincent.guittot@linaro.org \
--cc=vineethr@linux.ibm.com \
--cc=vschneid@redhat.com \
--cc=wuyun.abel@bytedance.com \
--cc=yu.c.chen@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
all inboxes | Powered by JetHome®