On Tue, Mar 02, 2021 at 10:59:37AM +0100, Jan Beulich wrote: > On 01.03.2021 19:00, Roger Pau Monné wrote: > > On Mon, Mar 01, 2021 at 04:14:26PM +0100, Jan Beulich wrote: > >> On 01.03.2021 15:01, Roger Pau Monné wrote: > >>> On Mon, Mar 01, 2021 at 09:31:07AM +0100, Jan Beulich wrote: > >>>> In this case the compiler is recognizing that no valid array indexes > >>>> remain (in x2apic_cluster()'s access to per_cpu(cpu_2_logical_apicid, > >>>> ...)), but oddly enough isn't really consistent about the checking it > >>>> does (see the code comment). > >>> > >>> I assume this is because of the underlying per_cpu access to > >>> __per_cpu_offset using cpu as the index, in which case wouldn't it be > >>> better to place the BUG_ON there? > >> > >> Not sure, to be honest. It seemed more logical to me to place it > >> next to where the issue is. > > > > I'm not sure whether I would prefer to place it in per_cpu directly to > > avoid similar issues popping up in other parts of the code in the > > future? > > That's going to be a lot of BUG_ON(), and hence a lot of "ud2" > instances. Not something I'm keen on having. The more that it's > not the per_cpu() which triggers the warning, but separate > conditionals allowing the compiler to deduce value ranges of > variables.
Right. I don't see much other way around this then. Did you check with clang also? Acked-by: Roger Pau Monné <[email protected]> Thanks, Roger.
