All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chen Yu <yu.c.chen@intel.com>
To: Jemmy Wong <jemmywong512@gmail.com>
Cc: <mingo@redhat.com>, <peterz@infradead.org>,
	<tim.c.chen@linux.intel.com>, <chen.yu@linux.dev>,
	<juri.lelli@redhat.com>, <vincent.guittot@linaro.org>,
	<dietmar.eggemann@arm.com>, <rostedt@goodmis.org>,
	<bsegall@google.com>, <mgorman@suse.de>, <vschneid@redhat.com>,
	<kprateek.nayak@amd.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3] sched/cache: Remove the old cache group footprint on exec
Date: Wed, 21 Oct 2026 18:12:01 +0800	[thread overview]
Message-ID: <atiP8TwaDDtbImRn@chenyu-dev> (raw)
In-Reply-To: <20261015053604.29927-1-jemmywong512@gmail.com>

On Thu, Oct 15, 2026 at 01:36:04PM +0800, Jemmy Wong wrote:

[ ... ]

> @@ -3965,36 +3974,6 @@ static void task_numa_placement(struct task_struct *p)
>  				ng->total_faults += diff;
>  				group_faults += ng->faults[mem_idx];
>  			}
> -#ifdef CONFIG_SCHED_CACHE
> -			/*
> -			 * Per task p->numa_faults[mem_idx] converges,
> -			 * so the accumulation of each task's faults
> -			 * converges too - Given the number of threads,
> -			 * it cannot overflow an unsigned long.

Above comments can be kept for future reference, with minor adjustment:

 s/it cannot overflow an unsigned long/it cannot overflow an atomic_long_t

I launched a full hackbench test on a Xeon with multiple LLCs per node. There
is no obvious difference except for some false-positive regress with large
run-to-run variance. This patch looks good to me in terms of turning the
footprint into an accurate counter. Feel free to add:

Reviewed-by: Chen Yu <yu.c.chen@intel.com>
Tested-by: Chen Yu <yu.c.chen@intel.com>

thanks,
Chenyu



First run:
=========================================
Hackbench comparison
BASE: cas_on_baseline
TEST: cas_on_patched
=========================================
MODE     G  FD |         BASE(s) |         TEST(s) |   DIFF% | RESULT
------- -- ----+-----------------+-----------------+---------+----------
process 16   1 |      0.178/1.7% |      0.166/0.6% |   6.74% | IMPROVED
process 16  16 |      4.871/9.1% |      5.230/3.8% |  -7.37% | REGRESSED
process 16   2 |      1.574/3.0% |     1.296/27.5% |  17.66% | IMPROVED
process 16  20 |      6.502/7.8% |      6.262/1.5% |   3.69% | IMPROVED
process 16   4 |      2.296/5.0% |     2.138/13.0% |   6.88% | IMPROVED
process 16   8 |      2.056/1.1% |     1.982/12.3% |   3.60% | IMPROVED
process  1   1 |      2.040/0.8% |      2.010/4.5% |   1.47% | IMPROVED
process  1  16 |      4.837/3.5% |     4.189/12.7% |  13.40% | IMPROVED
process  1   2 |      3.708/5.0% |     2.768/14.3% |  25.35% | IMPROVED
process  1  20 |      4.552/3.5% |      4.505/2.2% |   1.03% | IMPROVED
process  1   4 |     2.696/17.0% |     3.092/21.8% | -14.69% | REGRESSED
process  1   8 |      5.474/3.4% |      5.372/9.3% |   1.86% | IMPROVED
process  2   1 |      1.089/3.4% |      1.115/2.3% |  -2.39% | REGRESSED
process  2  16 |     4.985/13.9% |      5.246/5.1% |  -5.24% | REGRESSED
process  2   2 |      1.063/7.2% |      0.998/3.2% |   6.11% | IMPROVED
process  2  20 |     5.091/13.6% |      5.081/3.1% |   0.20% | IMPROVED
process  2   4 |     3.935/18.2% |     3.438/23.2% |  12.63% | IMPROVED
process  2   8 |      4.791/7.0% |      4.925/3.8% |  -2.80% | REGRESSED
process  4   1 |     0.690/18.3% |      0.586/1.9% |  15.07% | IMPROVED
process  4  16 |      5.878/3.5% |      6.119/1.9% |  -4.10% | REGRESSED
process  4   2 |      0.534/6.4% |      0.512/2.7% |   4.12% | IMPROVED
process  4  20 |      5.839/3.1% |      5.644/5.0% |   3.34% | IMPROVED
process  4   4 |      4.012/1.5% |     3.386/12.0% |  15.60% | IMPROVED
process  4   8 |     4.737/11.0% |      4.703/3.9% |   0.72% | IMPROVED
process  8   1 |      0.317/0.9% |      0.322/0.3% |  -1.58% | REGRESSED
process  8  16 |      3.671/5.4% |      3.922/4.8% |  -6.84% | REGRESSED
process  8   2 |     0.921/35.8% |     0.812/36.0% |  11.83% | IMPROVED
process  8  20 |      4.878/6.9% |      4.769/1.8% |   2.23% | IMPROVED
process  8   4 |     2.969/10.2% |     3.500/16.5% | -17.88% | REGRESSED
process  8   8 |      4.698/2.6% |      4.263/4.7% |   9.26% | IMPROVED
threads 16   1 |      0.192/0.5% |      0.189/0.0% |   1.56% | IMPROVED
threads 16  16 |      5.430/4.7% |      5.685/1.2% |  -4.70% | REGRESSED
threads 16   2 |     0.362/17.4% |     0.577/29.6% | -59.39% | REGRESSED
threads 16  20 |      6.210/3.6% |      5.523/6.2% |  11.06% | IMPROVED
threads 16   4 |     2.678/11.0% |      3.173/5.6% | -18.48% | REGRESSED
threads 16   8 |      2.347/3.3% |      2.394/8.7% |  -2.00% | REGRESSED
threads  1   1 |      2.131/1.5% |      2.260/2.5% |  -6.05% | REGRESSED
threads  1  16 |      0.379/2.4% |      0.353/2.5% |   6.86% | IMPROVED
threads  1   2 |      2.050/0.9% |      2.003/0.6% |   2.29% | IMPROVED
threads  1  20 |      0.347/2.6% |      0.324/0.9% |   6.63% | IMPROVED
threads  1   4 |      1.342/1.0% |      1.333/1.1% |   0.67% | IMPROVED
threads  1   8 |      0.730/2.5% |      0.732/1.4% |  -0.27% | REGRESSED
threads  2   1 |      1.144/1.2% |      1.167/1.2% |  -2.01% | REGRESSED
threads  2  16 |      0.286/1.4% |     0.987/71.3% | -245.10% | REGRESSED
threads  2   2 |      1.035/2.4% |      1.040/0.5% |  -0.48% | REGRESSED
threads  2  20 |     1.016/73.2% |     2.038/43.5% | -100.59% | REGRESSED
threads  2   4 |      0.647/0.9% |      0.647/1.2% |   0.00% | SAME
threads  2   8 |      0.338/1.8% |      0.335/1.5% |   0.89% | IMPROVED
threads  4   1 |      0.658/1.4% |      0.614/4.4% |   6.69% | IMPROVED
threads  4  16 |      6.434/1.4% |      6.194/1.5% |   3.73% | IMPROVED
threads  4   2 |      0.522/2.1% |      0.521/1.7% |   0.19% | IMPROVED
threads  4  20 |      5.361/1.4% |      6.060/1.6% | -13.04% | REGRESSED
threads  4   4 |      0.324/1.5% |      0.335/1.8% |  -3.40% | REGRESSED
threads  4   8 |     0.946/35.4% |     0.854/61.1% |   9.73% | IMPROVED
threads  8   1 |      0.351/5.7% |      0.364/1.9% |  -3.70% | REGRESSED
threads  8  16 |      3.818/4.8% |      4.109/4.9% |  -7.62% | REGRESSED
threads  8   2 |      0.294/6.5% |      0.276/1.4% |   6.12% | IMPROVED
threads  8  20 |      4.640/5.2% |      4.788/9.1% |  -3.19% | REGRESSED
threads  8   4 |     1.548/57.0% |     0.880/11.0% |  43.15% | IMPROVED
threads  8   8 |      5.028/2.2% |      5.161/2.9% |  -2.65% | REGRESSED

Then I pick the following test, which seems to have a big regression with a
large stderr%:
threads 2 16 | 0.286/1.4% | 0.987/71.3% | -245.10% | REGRESSED
threads 2 20 | 1.016/73.2% | 2.038/43.5% | -100.59% | REGRESSED
threads 16 2 | 0.362/17.4% | 0.577/29.6% | -59.39% | REGRESSED
threads 16 4 | 2.678/11.0% | 3.173/5.6% | -18.48% | REGRESSED


The following is the second run:
=========================================
MODE     G  FD |         BASE(s) |         TEST(s) |   DIFF% | RESULT
------- -- ----+-----------------+-----------------+---------+----------
threads  2  16 |     0.915/29.6% |     1.376/66.1% | -50.38% | REGRESSED
threads  2  20 |     2.154/23.0% |     1.299/50.7% |  39.69% | IMPROVED
threads 16   2 |     0.320/18.8% |     0.756/26.3% | -136.25% | REGRESSED
threads 16   4 |      4.139/1.9% |     3.174/18.2% |  23.31% | IMPROVED

So the data seems to be quite unstable when the system is saturated, which
might be another issue that I'll investigate soon.


  reply	other threads:[~2026-10-21 10:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-15  5:36 [PATCH v3] sched/cache: Remove the old cache group footprint on exec Jemmy Wong
2026-10-21 10:12 ` Chen Yu [this message]
2026-10-21 12:50   ` Jemmy Wong
2026-10-21 16:53     ` Chen Yu

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=atiP8TwaDDtbImRn@chenyu-dev \
    --to=yu.c.chen@intel.com \
    --cc=bsegall@google.com \
    --cc=chen.yu@linux.dev \
    --cc=dietmar.eggemann@arm.com \
    --cc=jemmywong512@gmail.com \
    --cc=juri.lelli@redhat.com \
    --cc=kprateek.nayak@amd.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@linux.intel.com \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.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 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.