[PATCH] irqchip/gic-v3-its: Don't acquire rt_spin_lock in allocate_vpe_l1_table()
Thomas Gleixner
tglx at kernel.org
Thu Jan 8 14:11:33 PST 2026
On Thu, Jan 08 2026 at 08:26, Marc Zyngier wrote:
> Err, no. That's horrible. I can see three ways to address this in a
> more appealing way:
>
> - you give RT a generic allocator that works for (small) atomic
> allocations. I appreciate that's not easy, and even probably
> contrary to the RT goals. But I'm also pretty sure that the GIC code
> is not the only pile of crap being caught doing that.
>
> - you pre-compute upfront how many cpumasks you are going to require,
> based on the actual GIC topology. You do that on CPU0, outside of
> the hotplug constraints, and allocate what you need. This is
> difficult as you need to ensure the RD<->CPU matching without the
> CPUs having booted, which means wading through the DT/ACPI gunk to
> try and guess what you have.
>
> - you delay the allocation of L1 tables to a context where you can
> perform allocations, and before we have a chance of running a guest
> on this CPU. That's probably the simplest option (though dealing
> with late onlining while guests are already running could be
> interesting...).
At the point where a CPU is brought up, the topology should be known
already, which means this can be allocated on the control CPU _before_
the new CPU comes up, no?
Thanks,
tglx
More information about the linux-arm-kernel
mailing list