* [PATCH] selftests/resctrl: Skip L3_CAT when no exclusive cache portion exists
@ 2026-05-26 2:42 Richard Cheng
2026-05-27 3:17 ` Chen, Yu C
0 siblings, 1 reply; 2+ messages in thread
From: Richard Cheng @ 2026-05-26 2:42 UTC (permalink / raw)
To: tony.luck
Cc: reinette.chatre, shuah, Dave.Martin, james.morse, babu.moger,
linux-kernel, linux-kselftest, fenghuay, newtonl, kristinc,
kaihengf, kobak, Richard Cheng
L3_CAT measures cache isolation, which requires at least one ache bit
not shared with non-CPU agents, i.e. cbm_mask & ~shareable_bits != 0 .
On MPAM, shareable_bits == cbm_mask is a legitimate state, so there
might be situations that no bit can be reported as exclusive.
Previously get_mask_no_shareable() does the check inside cat_run_test(),
which returns -1 silently and surfaced as a failure for arm64 MPAM.
Implement cat_feature_check() to run the same check at feature-check
time, it prints a diagnostic and return false so the test case itself
can know when to skip.
Signed-off-by: Richard Cheng <icheng@nvidia.com>
---
tools/testing/selftests/resctrl/cat_test.c | 23 +++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c
index 37ca70523ed2..6a25efa59837 100644
--- a/tools/testing/selftests/resctrl/cat_test.c
+++ b/tools/testing/selftests/resctrl/cat_test.c
@@ -383,11 +383,32 @@ static bool noncont_cat_feature_check(const struct resctrl_test *test)
return resource_info_file_exists(test->resource, "sparse_masks");
}
+static bool cat_feature_check(const struct resctrl_test *test)
+{
+ unsigned long mask;
+
+ if (!test_resource_feature_check(test))
+ return false;
+
+ /*
+ * The CAT isolation measurement needs a cache portion that no
+ * other agent shares. On MPAM the kernel may legitimately
+ * report all bits as shareable, skip if that the case.
+ */
+ if (get_mask_no_shareable(test->resource, &mask)) {
+ ksft_print_msg("All %s bits are shareable; cannot measure CAT isolation\n",
+ test->resource);
+ return false;
+ }
+
+ return true;
+}
+
struct resctrl_test l3_cat_test = {
.name = "L3_CAT",
.group = "CAT",
.resource = "L3",
- .feature_check = test_resource_feature_check,
+ .feature_check = cat_feature_check,
.run_test = cat_run_test,
.cleanup = cat_test_cleanup,
};
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] selftests/resctrl: Skip L3_CAT when no exclusive cache portion exists
2026-05-26 2:42 [PATCH] selftests/resctrl: Skip L3_CAT when no exclusive cache portion exists Richard Cheng
@ 2026-05-27 3:17 ` Chen, Yu C
0 siblings, 0 replies; 2+ messages in thread
From: Chen, Yu C @ 2026-05-27 3:17 UTC (permalink / raw)
To: Richard Cheng
Cc: Reinette Chatre, shuah, Dave Martin, James Morse, Babu Moger,
Fenghua Yu, newtonl, kristinc, kaihengf, Koba Ko, Richard Cheng,
LKML, linux-kselftest, Luck, Tony, Ning, Hongyu
Hi Richard,
On 5/26/2026 10:42 AM, Richard Cheng wrote:
> L3_CAT measures cache isolation, which requires at least one ache bit
> not shared with non-CPU agents, i.e. cbm_mask & ~shareable_bits != 0 .
> On MPAM, shareable_bits == cbm_mask is a legitimate state, so there
> might be situations that no bit can be reported as exclusive.
>
> Previously get_mask_no_shareable() does the check inside cat_run_test(),
> which returns -1 silently and surfaced as a failure for arm64 MPAM.
>
> Implement cat_feature_check() to run the same check at feature-check
> time, it prints a diagnostic and return false so the test case itself
> can know when to skip.
>
> Signed-off-by: Richard Cheng <icheng@nvidia.com>
We have also observed this issue, and the patch helps identify the root
cause
of the CAT test failure.
./resctrl_tests -t L3_CAT
TAP version 13
# Pass: Check kernel supports resctrl filesystem
# Pass: Check resctrl mountpoint "/sys/fs/resctrl" exists
# resctrl filesystem not mounted
# dmesg: [ 43.705792] resctrl: L3 allocation detected
# dmesg: [ 43.712878] resctrl: L2 allocation detected
# dmesg: [ 43.719856] resctrl: MB allocation detected
# dmesg: [ 43.726800] resctrl: L3 monitoring detected
1..1
# Starting L3_CAT test ...
# Mounting resctrl to "/sys/fs/resctrl"
# All L3 bits are shareable; cannot measure CAT isolation
ok 1 # SKIP Hardware does not support L3_CAT or L3_CAT is disabled
# 1 skipped test(s) detected. Consider enabling relevant config options
to improve coverage.
# Totals: pass:0 fail:0 xfail:0 xpass:0 skip:1 error:0
Tested-by: Chen Yu <yu.c.chen@intel.com>
thanks,
Chenyu
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-27 3:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-26 2:42 [PATCH] selftests/resctrl: Skip L3_CAT when no exclusive cache portion exists Richard Cheng
2026-05-27 3:17 ` Chen, Yu C
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox