On Wed, Aug 11 2021 at 09:50, Marc Zyngier wrote: > On Tue, 10 Aug 2021 14:41:26 +0100, > Valentin Schneider <valentin.schneider@xxxxxxx> wrote: > The issue is that although the redistributor tables have been > allocated ahead of time (outside of any cpuhp callback), they cannot > be programmed into the RDs until the corresponding CPUs have been > brought up (the registers may not be accessible). > > For the same reason, we don't know whether we can free them (because > there is already a table programmed there) or have to reserve them > with an efi_mem_reserve_persistent() call. efi_mem_reserve_iomem() > uses GFP_ATOMIC for its allocation, but this is not sufficient for RT > anymore. > > We could postpone the reservation of the memory to a later point (it > is only useful for kexec), but it isn't clear where that point is. The > CPU is not quite up yet, and we can't easily IPI the boot CPU to do > the reserve call. Right, but don't you know about the need for reservation _before_ bringing the CPU up? Thanks, tglx