From: Reinette Chatre <reinette.chatre@intel.com>
To: Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghuay@nvidia.com>,
"Maciej Wieczor-Retman" <maciej.wieczor-retman@intel.com>,
Peter Newman <peternewman@google.com>,
James Morse <james.morse@arm.com>,
Babu Moger <babu.moger@amd.com>,
Drew Fustini <dfustini@baylibre.com>,
Dave Martin <Dave.Martin@arm.com>, Chen Yu <yu.c.chen@intel.com>,
David E Box <david.e.box@intel.com>, <x86@kernel.org>
Cc: Christoph Hellwig <hch@infradead.org>,
<linux-kernel@vger.kernel.org>, <patches@lists.linux.dev>,
Sashiko <sashiko-bot@kernel.org>
Subject: Re: [PATCH v13 01/25] fs/resctrl: Ensure default group reports tasks on monitor-only systems
Date: Thu, 8 Oct 2026 15:21:48 -0700 [thread overview]
Message-ID: <c96110f6-d947-4d56-bc49-205ad2ab9632@intel.com> (raw)
In-Reply-To: <20260928221509.68002-2-tony.luck@intel.com>
Hi Tony,
On 9/28/26 3:14 PM, Tony Luck wrote:
> This is a pre-existing issue, but the resctrl_arch_alloc_capable() check in
> is_closid_match() actively breaks the default group on systems that only
> support monitoring capabilities.
It looks like my comments regarding tip changelog requirements are still being
missed. It is highly time-consuming to manually verify every claim made within
these changelogs, and then separately draft feedback on where they fail to meet
the documented tip requirements.
You inspired me to automate these steps. I created a "changelog checker" that
automatically verifies the claims and checks the changelog against the documented
tip requirements. These are the standard, straightforward expectations for our
submissions.
The tool will handle reviews of your changelogs instead of me so I don't lose any
more manual review time. You can coordinate directly with the bot's feedback now!
Here is what it has to say about this changelog:
Verified claims
- rdtgroup_tasks_show() → show_rdt_tasks() → is_closid_match() — CONFIRMED (that is the chain in
fs/resctrl/rdtgroup.c).
- resctrl_arch_alloc_capable() false on monitor-only systems makes is_closid_match() return false for all tasks —
CONFIRMED (x86 returns rdt_alloc_capable, set once in resctrl_cpu_detect() and never cleared; rdt_get_tree()
permits a mount with monitoring alone).
- The default group has type RDTCTRL_GROUP, so is_rmid_match() also returns false — CONFIRMED
(rdtgroup_setup_default() sets type = RDTCTRL_GROUP; is_rmid_match() requires RDTMON_GROUP).
- The root tasks file appears empty — CONFIRMED. The file always exists on a monitor-only mount; it carries
RFTYPE_BASE, which rdt_get_tree() passes unconditionally.
- A RDTCTRL_GROUP other than the default can only be created when allocation is supported — CONFIRMED
(rdtgroup_mkdir() gates rdtgroup_mkdir_ctrl_mon() on resctrl_arch_alloc_capable()).
- "whenever the remaining resctrl_arch_match_closid() check could meaningfully succeed,
resctrl_arch_alloc_capable() was already implicitly true, making the test redundant" — FALSE.
rdtgroup_setup_default() sets closid = RESCTRL_RESERVED_CLOSID, and every task that has not been moved keeps
that CLOSID, so resctrl_arch_match_closid() succeeds for the default group while resctrl_arch_alloc_capable()
is false. That is the case the patch fixes.
- Fixes: e6b2fac36fcc — CONFIRMED. That commit introduced the capability test into the tasks-file path, and its
own changelog asserted "This is harmless as rdtgroup_mkdir() tests these capable flags", which overlooked the
default group.
Findings
[R18][R9] must-fix The safety argument contradicts the bug being fixed
The last paragraph concludes the removed test was redundant. If it
were redundant the patch would be a no-op. The default group is the
one group whose result changes, and the parenthetical that excludes
it from the first sentence is not carried into the second. Scope the
claim: redundant for every other CTRL_MON group, wrong for the
default group.
[R5][R6][R24] should-fix No context paragraph; the problem leads
The body opens by naming the offending check. A reader has not yet
been told that resctrl can be mounted with monitoring only, that the
default group owns every unassigned task, or that CTRL_MON
membership is decided by CLOSID. Without that, the problem paragraph
has nothing to attach to.
[R12] should-fix No imperative solution sentence
"Removing the resctrl_arch_alloc_capable() test is safe because ..."
is a gerund, and the patch never says "Drop ...". The tip tree asks
for the fix in the imperative.
[R8] should-fix Three paragraphs re-derive a one-term removal
The indented call chain, then "is_closid_match() unconditionally
returns false for all tasks", then the empty-file effect all restate
the same single condition. The user-visible symptom plus the reason
both match tests fail is enough.
[R20] nit "This is a pre-existing issue, but ..."
This addresses the series reviewer, not a future reader of the
commit. The Fixes: tag already conveys that the bug predates the
series; such notes belong below the --- line.
[R13] nit "actively breaks" — "breaks" carries the same meaning.
[R23][RC5] nit Prose uses `type == RDTCTRL_GROUP`
Documentation/filesystems/resctrl.rst calls these "CTRL_MON" groups
and the root-owned ones "MON" groups. Those are the terms of art a
reviewer can map to the interface without opening the diff.
Tag ordering (Fixes → Reported-by → Closes → Signed-off-by) matches R21. Wrapping is 70–76 columns, within RC4 —
checkpatch's single "Prefer a maximum 75 chars" warning is not reportable for resctrl.
>
> When a user reads the root /sys/fs/resctrl/tasks file on a system with
> monitoring capabilities but no allocation capabilities, the following call
> chain occurs:
> rdtgroup_tasks_show()
> show_rdt_tasks()
> is_closid_match()
>
> Since resctrl_arch_alloc_capable() evaluates to false on such systems,
> is_closid_match() unconditionally returns false for all tasks. Furthermore,
> because the default group has type RDTCTRL_GROUP, is_rmid_match() will also
> return false.
>
> This causes the root tasks file to appear completely empty, hiding all tasks
> on the system that have not been explicitly moved to a monitoring group.
>
> Removing the resctrl_arch_alloc_capable() test is safe because a struct
> rdtgroup with type == RDTCTRL_GROUP (other than the always-present default
> group) can only be created on systems where allocation is supported. So
> whenever the remaining resctrl_arch_match_closid() check could meaningfully
> succeed, resctrl_arch_alloc_capable() was already implicitly true, making
> the test redundant.
>
> Fixes: e6b2fac36fcc ("x86/resctrl: Use is_closid_match() in more places")
> Reported-by: Sashiko <sashiko-bot@kernel.org>
> Closes: https://sashiko.dev/#/patchset/20260831174421.13921-1-tony.luck%40intel.com?part=9
> Signed-off-by: Tony Luck <tony.luck@intel.com>
> ---
Reinette
next prev parent reply other threads:[~2026-10-08 22:22 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 22:14 [PATCH v13 00/25] Allow AET to use PMT as loadable module Tony Luck
2026-09-28 22:14 ` [PATCH v13 01/25] fs/resctrl: Ensure default group reports tasks on monitor-only systems Tony Luck
2026-10-08 22:21 ` Reinette Chatre [this message]
2026-09-28 22:14 ` [PATCH v13 02/25] x86/cpufeatures: Add missing CQM feature dependency Tony Luck
2026-09-28 22:14 ` [PATCH v13 03/25] x86/resctrl: Check if monitoring features are supported Tony Luck
2026-10-08 23:25 ` Reinette Chatre
2026-09-28 22:14 ` [PATCH v13 04/25] x86/resctrl: Centralize monitoring feature enumeration Tony Luck
2026-09-28 22:14 ` [PATCH v13 05/25] x86/resctrl: Apply Intel MBM quirk from rdt_get_l3_mon_config() Tony Luck
2026-10-09 17:15 ` Reinette Chatre
2026-09-28 22:14 ` [PATCH v13 06/25] x86/resctrl: Delete resctrl_cpu_detect() Tony Luck
2026-09-28 22:14 ` [PATCH v13 07/25] arm,x86,fs/resctrl: Replace architecture resctrl_arch_{alloc,mon}_capable() Tony Luck
2026-09-28 22:14 ` [PATCH v13 08/25] x86/resctrl: Update special case for Intel Haswell enumeration Tony Luck
2026-09-28 22:14 ` [PATCH v13 09/25] x86/resctrl: Delete rdt_alloc_capable and rdt_mon_capable Tony Luck
2026-09-28 22:14 ` [PATCH v13 10/25] fs/resctrl: Remove redundant calls to resctrl_mon_capable() Tony Luck
2026-09-28 22:14 ` [PATCH v13 11/25] x86/resctrl: Honor rdt={perf|energy} options to force enable AET events Tony Luck
2026-09-28 22:14 ` [PATCH v13 12/25] fs/resctrl: Add interface to disable a monitor event Tony Luck
2026-09-28 22:14 ` [PATCH v13 13/25] arm,x86,fs/resctrl: Allocate maximum needed rmid_ptrs[] Tony Luck
2026-10-06 19:53 ` Babu Moger
2026-10-06 22:07 ` Luck, Tony
2026-10-07 14:10 ` Moger, Babu
2026-09-28 22:14 ` [PATCH v13 14/25] arm,x86,fs/resctrl: Use right size for L3 monitor data structures Tony Luck
2026-09-28 22:14 ` [PATCH v13 15/25] x86,fs/resctrl: Handle systems where AET is the only resource Tony Luck
2026-09-28 22:15 ` [PATCH v13 16/25] x86/resctrl: Add PMT registration API for AET enumeration callbacks Tony Luck
2026-09-28 22:15 ` [PATCH v13 17/25] platform/x86/intel/pmt: Register enumeration functions with resctrl Tony Luck
2026-09-28 22:15 ` [PATCH v13 18/25] x86/resctrl: Use registered function pointers for AET enumeration Tony Luck
2026-09-29 17:52 ` [PATCH v14.1 " Tony Luck
2026-09-28 22:15 ` [PATCH v13 19/25] arm,x86,fs/resctrl: Enumerate AET on every resctrl mount Tony Luck
2026-09-29 17:52 ` [PATCH v14.1 " Tony Luck
2026-10-07 19:55 ` Babu Moger
2026-10-07 20:43 ` Luck, Tony
2026-09-28 22:15 ` [PATCH v13 20/25] x86/resctrl: Enforce system RMID limit on AET Tony Luck
2026-09-29 17:52 ` [PATCH v14.1 " Tony Luck
2026-09-28 22:15 ` [PATCH v13 21/25] x86/resctrl: Export interface to report telemetry unbind/remove Tony Luck
2026-09-29 17:52 ` [PATCH v14.1 " Tony Luck
2026-09-28 22:15 ` [PATCH v13 22/25] platform/x86/intel/pmt: Inform resctrl when MMIO maps are being removed Tony Luck
2026-09-28 22:15 ` [PATCH v13 23/25] x86/resctrl: Require 64-bit x86 for resctrl support Tony Luck
2026-09-28 22:15 ` [PATCH v13 24/25] x86/resctrl: Simplify Kconfig options for resctrl Tony Luck
2026-09-28 22:15 ` [PATCH v13 25/25] x86,fs/resctrl: Document telemetry mount timing caveat Tony Luck
2026-09-29 0:29 ` [PATCH v13 00/25] Allow AET to use PMT as loadable module Luck, Tony
2026-09-29 19:43 ` Luck, Tony
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=c96110f6-d947-4d56-bc49-205ad2ab9632@intel.com \
--to=reinette.chatre@intel.com \
--cc=Dave.Martin@arm.com \
--cc=babu.moger@amd.com \
--cc=david.e.box@intel.com \
--cc=dfustini@baylibre.com \
--cc=fenghuay@nvidia.com \
--cc=hch@infradead.org \
--cc=james.morse@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.wieczor-retman@intel.com \
--cc=patches@lists.linux.dev \
--cc=peternewman@google.com \
--cc=sashiko-bot@kernel.org \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--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®