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

From: Jonathan Cameron
Date: Wed Apr 24 2024 - 13:09:38 EST


On Wed, 24 Apr 2024 17:35:54 +0100
Salil Mehta <salil.mehta@xxxxxxxxxx> wrote:

> > 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);

FWIW I think not necessary. enabled is only set in register_cpu() and aim here is to
never call that for CPUs in this state.

Anyhow, I got distracted by the firmware bug I found whilst trying to test this but
now have a test setup that hits this path (once deliberately broken), so will
see what we can do about that doesn't have affect those masks.

Jonathan


>
>
> Best regards
> Salil