From: Reinette Chatre <reinette.chatre@intel.com>
To: Richard Cheng <icheng@nvidia.com>, <tony.luck@intel.com>,
<x86@kernel.org>
Cc: <Dave.Martin@arm.com>, <james.morse@arm.com>,
<babu.moger@amd.com>, <shuah@kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-kselftest@vger.kernel.org>,
<newtonl@nvidia.com>, <kristinc@nvidia.com>, <kobak@nvidia.com>,
<kaihengf@nvidia.com>, <fenghuay@nvidia.com>,
<ltrager@nvidia.com>
Subject: Re: [PATCH v4 2/3] selftests/resctrl: Implement cl_flush() and sb() for aarch64
Date: Wed, 12 Aug 2026 10:25:46 -0700 [thread overview]
Message-ID: <affc5417-7074-41af-a01c-923fc31f53bf@intel.com> (raw)
In-Reply-To: <20260722035943.32337-3-icheng@nvidia.com>
Hi Everybody,
Could the resctrl Arm folks please consider this patch?
Thank you very much.
Reinette
On 7/21/26 8:59 PM, Richard Cheng wrote:
> cl_flush() and sb() compile to empty functions on aarch64, making
> mem_flush() a silent no-op and leaving CMT/CAT tests operating on
> unflushed state.
>
> Add "dsb sy" for sb(), ARM requires a DSB whose access type covers both
> loads and stores.
>
> For cl_flush(), "dc civac" only reaches the Point of Coherency, on
> ARM MPAM systems the SLC lies past the PoC and may be a NOP on coherent
> platforms. Instead, dirty each cacheline with a store so that
> mem_flush's full-buffer sweep evicts lines from the SLC via LRU
> pressure.
>
> Signed-off-by: Richard Cheng <icheng@nvidia.com>
> ---
> Changes since v3:
> - cl_flush(): replace "dc civac" with a dirty store. dc civac only
> cleans to the Point of Coherency, so it does not reach the SLC
> where MPAM cache portions are enforced. Rely on LRU eviction from
> mem_flush()'s full-buffer sweep instead.
>
> tools/testing/selftests/resctrl/fill_buf.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/tools/testing/selftests/resctrl/fill_buf.c b/tools/testing/selftests/resctrl/fill_buf.c
> index b9fa7968cd6e..eae0262fe265 100644
> --- a/tools/testing/selftests/resctrl/fill_buf.c
> +++ b/tools/testing/selftests/resctrl/fill_buf.c
> @@ -27,6 +27,9 @@ static void sb(void)
> #if defined(__i386) || defined(__x86_64)
> asm volatile("sfence\n\t"
> : : : "memory");
> +#elif defined(__aarch64__)
> + asm volatile("dsb sy\n\t"
> + : : : "memory");
> #endif
> }
>
> @@ -35,6 +38,14 @@ static void cl_flush(void *p)
> #if defined(__i386) || defined(__x86_64)
> asm volatile("clflush (%0)\n\t"
> : : "r"(p) : "memory");
> +#elif defined(__aarch64__)
> + /*
> + * Dirty the cache line with a store. As mem_flush() sweeps
> + * the full test buffer (sized larger than the SLC), cache pressure
> + * evicts lines from the SLC via LRU replacement.
> + */
> + asm volatile("strb wzr, [%0]\n\t"
> + : : "r"(p) : "memory");
> #endif
> }
>
next prev parent reply other threads:[~2026-08-12 17:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-22 3:59 [PATCH v4 0/3] selftests/resctrl: Fix resctrl selftests issues on aarch64 Richard Cheng
2026-07-22 3:59 ` [PATCH v4 1/3] selftests/resctrl: Skip L3_CAT when no exclusive cache portion exists Richard Cheng
2026-08-12 17:22 ` Reinette Chatre
2026-07-22 3:59 ` [PATCH v4 2/3] selftests/resctrl: Implement cl_flush() and sb() for aarch64 Richard Cheng
2026-08-12 17:25 ` Reinette Chatre [this message]
2026-07-22 3:59 ` [PATCH v4 3/3] selftests/resctrl: Recognise aarch64 as a vendor for L3_NONCONT_CAT Richard Cheng
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=affc5417-7074-41af-a01c-923fc31f53bf@intel.com \
--to=reinette.chatre@intel.com \
--cc=Dave.Martin@arm.com \
--cc=babu.moger@amd.com \
--cc=fenghuay@nvidia.com \
--cc=icheng@nvidia.com \
--cc=james.morse@arm.com \
--cc=kaihengf@nvidia.com \
--cc=kobak@nvidia.com \
--cc=kristinc@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=ltrager@nvidia.com \
--cc=newtonl@nvidia.com \
--cc=shuah@kernel.org \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/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.