Hi guys,

(CC: +kvmarm list)

On 29/06/2019 03:42, Xiongfeng Wang wrote:
> This patchset mark all the GICC node in MADT as possible CPUs even though it
> is disabled. But only those enabled GICC node are marked as present CPUs.
> So that kernel will initialize some CPU related data structure in advance 
> before
> the CPU is actually hot added into the system. This patchset also implement 
> 'acpi_(un)map_cpu()' and 'arch_(un)register_cpu()' for ARM64. These functions 
> are
> needed to enable CPU hotplug.
> 
> To support CPU hotplug, we need to add all the possible GICC node in MADT
> including those CPUs that are not present but may be hot added later. Those
> CPUs are marked as disabled in GICC nodes.

... what do you need this for?

(The term cpu-hotplug in the arm world almost never means hot-adding a new 
package/die to
the platform, we usually mean taking CPUs online/offline for power management. 
e.g.
cpuhp_offline_cpu_device())

It looks like you're adding support for hot-adding a new package/die to the 
platform ...
but only for virtualisation.

I don't see why this is needed for virtualisation. The in-kernel irqchip needs 
to know
these vcpu exist before you can enter the guest for the first time. You can't 
create them
late. At best you're saving the host scheduling a vcpu that is offline. Is this 
really a
problem?

If we moved PSCI support to user-space, you could avoid creating host vcpu 
threads until
the guest brings the vcpu online, which would solve that problem, and save the 
host
resources for the thread too. (and its acpi/dt agnostic)

I don't see the difference here between booting the guest with 'maxcpus=1', and 
bringing
the vcpu online later. The only real difference seems to be moving the 
can-be-online
policy into the hypervisor/VMM...


I think physical package/die hotadd is a much bigger, uglier problem than doing 
the same
under virtualisation. Its best to do this on real hardware first so we don't 
miss
something. (cpu-topology, numa, memory, errata, timers?)
I'm worried that doing virtualisation first means the firmware-requirements for 
physical
hotadd stuff is "whatever Qemu does".


Thanks,

James
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to