From: K Prateek Nayak <kprateek.nayak@amd.com>
To: Luo Gengkun <luogengkun@huaweicloud.com>, <peterz@infradead.org>,
<mingo@redhat.com>, <juri.lelli@redhat.com>,
<vincent.guittot@linaro.org>, <tim.c.chen@linux.intel.com>,
<yu.c.chen@intel.com>
Cc: <dietmar.eggemann@arm.com>, <rostedt@goodmis.org>,
<bsegall@google.com>, <mgorman@suse.de>, <vschneid@redhat.com>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v10 1/2] sched/cache: Reduce the overhead of task_cache_work by only scan the visisted cpus
Date: Wed, 21 Oct 2026 10:00:28 +0530 [thread overview]
Message-ID: <1e9259b5-0758-4387-a572-37e2d32c47c0@amd.com> (raw)
In-Reply-To: <20261009032943.95091-2-luogengkun@huaweicloud.com>
Hello Luo,
On 10/9/2026 8:59 AM, Luo Gengkun wrote:
> The overhead of task_cache_work() is high, especially in multi-NUMA systems.
> Currently, task_cache_work() tries to find the pref_llc by scanning all CPUs
> in the system. However, most of these scans are meaningless, such as those
> for CPUs that have never been visited or were accessed a long time ago.
>
> To address this problem, introduce visited_cpus to track the visited CPUs
> and evict them once they have not been accessed for a duration exceeding
> llc_epoch_affinity_timeout.
>
> Now that we know exactly which CPUs to scan from visited_cpus, we can remove
> get_scan_cpumasks().
nit. Could you include the performance numbers from the cover letter
in the commit message here to keep it around for the record.
>
> Signed-off-by: Luo Gengkun <luogengkun@huaweicloud.com>
I gave it a spin on my 4th Generation EPYC system (2 x 128C/256T) and
I could see small improvements and no regressions greater than the
expected run to run variance. Feel free to include:
Tested-by: K Prateek Nayak <kprateek.nayak@amd.com>
---
o Full benchmark results
==================================================================
Test : hackbench
Units : Normalized time in seconds
Interpretation: Lower is better
Statistic : AMean
==================================================================
Case: tip[pct imp](CV) cpu-track[pct imp](CV)
1-groups 1.00 [ -0.00](14.00) 1.02 [ -1.98](11.49)
2-groups 1.00 [ -0.00]( 4.92) 0.91 [ 9.49](11.67)
4-groups 1.00 [ -0.00]( 2.01) 0.99 [ 0.51]( 2.98)
8-groups 1.00 [ -0.00]( 3.13) 1.02 [ -2.16]( 3.25)
16-groups 1.00 [ -0.00]( 1.52) 0.99 [ 1.03]( 0.83)
==================================================================
Test : tbench
Units : Normalized throughput
Interpretation: Higher is better
Statistic : AMean
==================================================================
Clients: tip[pct imp](CV) cpu-track[pct imp](CV)
1 1.00 [ 0.00]( 0.27) 1.01 [ 0.81]( 0.62)
2 1.00 [ 0.00]( 0.22) 1.01 [ 1.01]( 0.70)
4 1.00 [ 0.00]( 0.36) 1.01 [ 0.65]( 0.13)
8 1.00 [ 0.00]( 0.23) 1.01 [ 1.15]( 0.41)
16 1.00 [ 0.00]( 0.17) 1.01 [ 1.04]( 0.17)
32 1.00 [ 0.00]( 0.16) 1.01 [ 0.95]( 0.12)
64 1.00 [ 0.00]( 0.16) 1.01 [ 0.64]( 0.21)
128 1.00 [ 0.00]( 0.04) 1.01 [ 0.83]( 0.40)
256 1.00 [ 0.00]( 0.14) 1.00 [ -0.05]( 0.25)
512 1.00 [ 0.00]( 0.25) 1.00 [ -0.12]( 0.63)
1024 1.00 [ 0.00]( 0.31) 1.00 [ 0.46]( 0.29)
2048 1.00 [ 0.00]( 0.41) 1.00 [ -0.20]( 0.49)
==================================================================
Test : stream-10
Units : Normalized Bandwidth, MB/s
Interpretation: Higher is better
Statistic : HMean
==================================================================
Test: tip[pct imp](CV) cpu-track[pct imp](CV)
Copy 1.00 [ 0.00]( 0.33) 0.98 [ -2.41]( 3.81)
Scale 1.00 [ 0.00]( 0.63) 0.98 [ -1.64]( 3.10)
Add 1.00 [ 0.00]( 0.49) 0.98 [ -1.56]( 2.58)
Triad 1.00 [ 0.00]( 0.46) 0.98 [ -1.87]( 2.66)
==================================================================
Test : stream-100
Units : Normalized Bandwidth, MB/s
Interpretation: Higher is better
Statistic : HMean
==================================================================
Test: tip[pct imp](CV) cpu-track[pct imp](CV)
Copy 1.00 [ 0.00]( 0.42) 1.00 [ -0.50]( 1.43)
Scale 1.00 [ 0.00]( 0.53) 0.99 [ -0.53]( 1.52)
Add 1.00 [ 0.00]( 0.44) 0.99 [ -0.56]( 1.19)
Triad 1.00 [ 0.00]( 0.44) 0.99 [ -0.54]( 1.23)
==================================================================
Test : netperf
Units : Normalized Througput
Interpretation: Higher is better
Statistic : AMean
==================================================================
Clients: tip[pct imp](CV) cpu-track[pct imp](CV)
1-clients 1.00 [ 0.00]( 0.03) 1.01 [ 0.86]( 0.17)
2-clients 1.00 [ 0.00]( 0.16) 1.00 [ 0.47]( 0.31)
4-clients 1.00 [ 0.00]( 0.32) 1.00 [ 0.46]( 0.27)
8-clients 1.00 [ 0.00]( 0.45) 1.01 [ 0.55]( 0.26)
16-clients 1.00 [ 0.00]( 0.24) 1.01 [ 0.63]( 0.27)
32-clients 1.00 [ 0.00]( 0.76) 1.01 [ 0.76]( 0.69)
64-clients 1.00 [ 0.00]( 0.73) 1.01 [ 0.79]( 0.89)
128-clients 1.00 [ 0.00]( 0.97) 1.01 [ 0.53]( 1.28)
256-clients 1.00 [ 0.00]( 1.13) 1.01 [ 0.64]( 1.21)
512-clients 1.00 [ 0.00]( 2.23) 1.01 [ 0.57]( 1.74)
768-clients 1.00 [ 0.00](11.06) 1.00 [ 0.04](11.12)
1024-clients 1.00 [ 0.00](11.42) 1.00 [ 0.03](10.77)
==================================================================
Test : schbench
Units : Normalized 99th percentile latency in us
Interpretation: Lower is better
Statistic : Median
==================================================================
#workers: tip[pct imp](CV) cpu-track[pct imp](CV)
1 1.00 [ -0.00](25.85) 0.76 [ 24.00]( 5.26)
2 1.00 [ -0.00](22.30) 1.17 [-16.67]( 4.41)
4 1.00 [ -0.00](16.86) 1.10 [-10.00]( 4.58)
8 1.00 [ -0.00](16.43) 0.88 [ 12.50](16.90)
16 1.00 [ -0.00]( 0.97) 1.03 [ -3.33]( 2.48)
32 1.00 [ -0.00]( 2.40) 1.01 [ -1.16]( 2.90)
64 1.00 [ -0.00]( 0.40) 1.00 [ -0.00]( 0.81)
128 1.00 [ -0.00]( 4.87) 1.01 [ -0.80]( 0.60)
256 1.00 [ -0.00]( 0.89) 1.01 [ -0.77]( 1.01)
512 1.00 [ -0.00]( 1.41) 1.00 [ -0.00]( 1.64)
768 1.00 [ -0.00]( 1.84) 0.98 [ 1.65]( 1.62)
1024 1.00 [ -0.00](13.59) 0.92 [ 7.57]( 4.64)
==================================================================
Test : new-schbench-requests-per-second
Units : Normalized Requests per second
Interpretation: Higher is better
Statistic : Median
==================================================================
#workers: tip[pct imp](CV) cpu-track[pct imp](CV)
1 1.00 [ 0.00]( 0.00) 1.01 [ 0.59]( 0.15)
2 1.00 [ 0.00]( 0.15) 1.00 [ 0.30]( 0.00)
4 1.00 [ 0.00]( 0.00) 1.00 [ -0.29]( 0.00)
8 1.00 [ 0.00]( 0.00) 1.00 [ -0.29]( 0.00)
16 1.00 [ 0.00]( 0.15) 1.00 [ -0.29]( 0.00)
32 1.00 [ 0.00]( 0.15) 0.99 [ -0.59]( 0.00)
64 1.00 [ 0.00]( 0.00) 1.00 [ -0.29]( 0.00)
128 1.00 [ 0.00](14.82) 1.00 [ 0.00](17.39)
256 1.00 [ 0.00]( 0.15) 1.00 [ -0.28]( 0.64)
512 1.00 [ 0.00]( 1.40) 1.00 [ -0.39]( 1.73)
768 1.00 [ 0.00]( 1.81) 1.00 [ -0.25]( 1.56)
1024 1.00 [ 0.00]( 0.17) 1.00 [ -0.32]( 0.76)
==================================================================
Test : new-schbench-wakeup-latency
Units : Normalized 99th percentile latency in us
Interpretation: Lower is better
Statistic : Median
==================================================================
#workers: tip[pct imp](CV) cpu-track[pct imp](CV)
1 1.00 [ -0.00](33.20) 1.21 [-21.43](25.04)
2 1.00 [ -0.00]( 5.00) 1.00 [ -0.00]( 8.94)
4 1.00 [ -0.00]( 5.53) 1.00 [ -0.00]( 5.53)
8 1.00 [ -0.00]( 0.00) 1.00 [ -0.00]( 0.00)
16 1.00 [ -0.00]( 4.43) 0.92 [ 8.33]( 8.13)
32 1.00 [ -0.00]( 4.84) 1.00 [ -0.00]( 0.00)
64 1.00 [ -0.00]( 0.00) 1.10 [-10.00]( 8.13)
128 1.00 [ -0.00]( 8.15) 0.90 [ 10.00](10.68)
256 1.00 [ -0.00]( 3.36) 0.95 [ 4.91]( 1.68)
512 1.00 [ -0.00](36.88) 1.01 [ -0.85](35.08)
768 1.00 [ -0.00]( 4.02) 1.00 [ -0.00]( 4.99)
1024 1.00 [ -0.00]( 1.61) 1.01 [ -0.78]( 0.87)
==================================================================
Test : new-schbench-request-latency
Units : Normalized 99th percentile latency in us
Interpretation: Lower is better
Statistic : Median
==================================================================
#workers: tip[pct imp](CV) cpu-track[pct imp](CV)
1 1.00 [ -0.00]( 0.14) 1.00 [ 0.26]( 0.00)
2 1.00 [ -0.00]( 0.00) 1.00 [ 0.26]( 0.00)
4 1.00 [ -0.00]( 0.14) 1.00 [ -0.00]( 0.00)
8 1.00 [ -0.00]( 0.00) 1.01 [ -0.53]( 0.00)
16 1.00 [ -0.00]( 0.14) 1.01 [ -0.53]( 0.00)
32 1.00 [ -0.00]( 0.14) 1.01 [ -0.53]( 0.00)
64 1.00 [ -0.00]( 0.00) 1.01 [ -0.79]( 0.14)
128 1.00 [ -0.00]( 4.56) 0.99 [ 1.48](27.76)
256 1.00 [ -0.00]( 0.13) 1.00 [ -0.25]( 0.13)
512 1.00 [ -0.00](28.11) 1.00 [ -0.23](25.97)
768 1.00 [ -0.00](13.36) 0.99 [ 0.60](14.72)
1024 1.00 [ -0.00]( 1.46) 1.00 [ 0.32]( 6.83)
--
Thanks and Regards,
Prateek
next prev parent reply other threads:[~2026-10-21 4:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 3:29 [PATCH v10 0/2] Cache aware scheduling: Reduce the overhead of task_cache_work Luo Gengkun
2026-10-09 3:29 ` [PATCH v10 1/2] sched/cache: Reduce the overhead of task_cache_work by only scan the visisted cpus Luo Gengkun
2026-10-21 4:30 ` K Prateek Nayak [this message]
2026-10-21 16:26 ` Chen Yu
2026-10-09 3:29 ` [PATCH v10 2/2] -- DO NOT APPLY!!! -- sched/cache/debug: Add trace event and sched feature to track scan cost Luo Gengkun
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=1e9259b5-0758-4387-a572-37e2d32c47c0@amd.com \
--to=kprateek.nayak@amd.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luogengkun@huaweicloud.com \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tim.c.chen@linux.intel.com \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.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®