Messages in this thread | | | Date | Tue, 9 Apr 2024 10:05:33 +0200 | Subject | Re: [PATCH v1 01/31] x86/resctrl: Fix allocation of cleanest CLOSID on platforms with no monitors | From | David Hildenbrand <> |
| |
On 21.03.24 17:50, James Morse wrote: > commit 6eac36bb9eb0 ("x86/resctrl: Allocate the cleanest CLOSID by > searching closid_num_dirty_rmid") added a Kconfig option that causes > resctrl to search for the CLOSID with the fewest dirty cache lines when > creating a new control group. This depends on the values read from the > llc_occupancy counters. > > This support missed that some platforms may not have these counters. > This causes a NULL pointer dereference when creating a new control > group as the array was not allocated by dom_data_init(). > > As this feature isn't necessary on platforms that don't have cache > occupancy monitors, add this to the check that occurs when a new > control group is allocated. > > The existing code is not selected by any upstream platform, it makes > no sense to backport this patch to stable. >
It's weird to not see RESCTRL_RMID_DEPENDS_ON_CLOSID appear in any Kconfig file. I guess it will all make sense once the refactoring is done :)
As Reinette comments, likely we want here:
Fixes: 6eac36bb9eb0 ("x86/resctrl: Allocate the cleanest CLOSID by searching closid_num_dirty_rmid")
> Signed-off-by: James Morse <james.morse@arm.com> > --- > arch/x86/kernel/cpu/resctrl/rdtgroup.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > index 011e17efb1a6..1767c1affa60 100644 > --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c > +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > @@ -149,7 +149,8 @@ static int closid_alloc(void) > > lockdep_assert_held(&rdtgroup_mutex); > > - if (IS_ENABLED(CONFIG_RESCTRL_RMID_DEPENDS_ON_CLOSID)) { > + if (IS_ENABLED(CONFIG_RESCTRL_RMID_DEPENDS_ON_CLOSID) && > + is_llc_occupancy_enabled()) { > cleanest_closid = resctrl_find_cleanest_closid(); > if (cleanest_closid < 0) > return cleanest_closid;
Reviewed-by: David Hildenbrand <david@redhat.com>
-- Cheers,
David / dhildenb
| |