Messages in this thread | | | Date | Mon, 1 Apr 2024 14:17:18 -0500 | Subject | Re: [PATCH] x86/resctrl: Fix uninitialized memory read when last CPU of domain goes offline | From | "Moger, Babu" <> |
| |
On 4/1/24 13:12, Reinette Chatre wrote: > Hi Babu, > > On 4/1/2024 10:57 AM, Moger, Babu wrote: >> On 3/28/24 16:12, Reinette Chatre wrote: > >>> --- a/arch/x86/kernel/cpu/resctrl/internal.h >>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h >>> @@ -85,6 +85,10 @@ cpumask_any_housekeeping(const struct cpumask *mask, int exclude_cpu) >>> if (cpu < nr_cpu_ids && !tick_nohz_full_cpu(cpu)) >>> return cpu; >>> >>> + /* Only continue if tick_nohz_full_mask has been initialized. */ >>> + if (!tick_nohz_full_enabled()) >>> + return cpu; >>> + >> >> I am curious why this below check didn't fail? >> >> if (cpu < nr_cpu_ids && !tick_nohz_full_cpu(cpu)) >> return cpu; >> >> The tick_nohz_full_cpu() already checks tick_nohz_full_enabled(). >> >> It should returned 'false' and returned cpu already. >> >> Did i miss something? >> > > The scenario occurs when the last CPU of a domain goes offline and the cpu itself > is the cpu to be excluded. In this scenario cpu >= nr_cpu_ids in the check you > quote. > > You may, as did I, wonder why continue the check on a smaller set of CPUs > if the first check already failed? James addressed that in: > https://lore.kernel.org/lkml/bd8a64fa-86d3-4417-a570-36469330508f@arm.com/ >
Got it. -- Thanks Babu Moger
| |