RE: [PATCH v7 11/16] irqchip/gic-v3: Add support for ACPI's disabled but 'online capable' CPUs

From: Salil Mehta
Date: Wed Apr 24 2024 - 12:37:23 EST


> From: Marc Zyngier <maz@xxxxxxxxxx>
> Sent: Wednesday, April 24, 2024 4:33 PM
> To: Jonathan Cameron <jonathan.cameron@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>; Peter Zijlstra
> <peterz@xxxxxxxxxxxxx>; linux-pm@xxxxxxxxxxxxxxx;
> loongarch@xxxxxxxxxxxxxxx; linux-acpi@xxxxxxxxxxxxxxx; linux-
> arch@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx; kvmarm@xxxxxxxxxxxxxxx; x86@xxxxxxxxxx;
> Russell King <linux@xxxxxxxxxxxxxxx>; Rafael J . Wysocki
> <rafael@xxxxxxxxxx>; Miguel Luis <miguel.luis@xxxxxxxxxx>; James Morse
> <james.morse@xxxxxxx>; Salil Mehta <salil.mehta@xxxxxxxxxx>; Jean-
> Philippe Brucker <jean-philippe@xxxxxxxxxx>; Catalin Marinas
> <catalin.marinas@xxxxxxx>; Will Deacon <will@xxxxxxxxxx>; Linuxarm
> <linuxarm@xxxxxxxxxx>; Ingo Molnar <mingo@xxxxxxxxxx>; Borislav
> Petkov <bp@xxxxxxxxx>; Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>;
> justin.he@xxxxxxx; jianyong.wu@xxxxxxx
> Subject: Re: [PATCH v7 11/16] irqchip/gic-v3: Add support for ACPI's
> disabled but 'online capable' CPUs
>
> On Wed, 24 Apr 2024 13:54:38 +0100,
> Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote:
> >
> > On Tue, 23 Apr 2024 13:01:21 +0100
> > Marc Zyngier <maz@xxxxxxxxxx> wrote:
> >
> > > On Mon, 22 Apr 2024 11:40:20 +0100,
> > > Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote:
> > > >
> > > > On Thu, 18 Apr 2024 14:54:07 +0100 Jonathan Cameron
> > > > <Jonathan.Cameron@xxxxxxxxxx> wrote:
>
> [...]
>
> > > >
> > > > > + /*
> > > > > + * Capable but disabled CPUs can be brought online later. What about
> > > > > + * the redistributor? ACPI doesn't want to say!
> > > > > + * Virtual hotplug systems can use the MADT's "always-on" GICR entries.
> > > > > + * Otherwise, prevent such CPUs from being brought online.
> > > > > + */
> > > > > + if (!(gicc->flags & ACPI_MADT_ENABLED)) {
> > > > > + pr_warn_once("CPU %u's redistributor is inaccessible: this CPU can't be brought online\n", cpu);
> > > > > + set_cpu_present(cpu, false);
> > > > > + set_cpu_possible(cpu, false);

(a digression) shouldn't we be clearing the enabled mask as well?

set_cpu_enabled(cpu, false);


Best regards
Salil