x86/Xen: streamline (and fix) PV CPU enumeration
authorJan Beulich <jbeulich@suse.com>
Tue, 1 Feb 2022 10:57:16 +0000 (11:57 +0100)
committerJuergen Gross <jgross@suse.com>
Thu, 3 Feb 2022 07:25:04 +0000 (08:25 +0100)
commite25a8d959992f61b64a58fc62fb7951dc6f31d1f
tree60ca990c7edea857a81b29e682b6444bf1a4f2cb
parent3ccb3128e50380b86e01c2f9b6f4ac9c11dc05eb
x86/Xen: streamline (and fix) PV CPU enumeration

This started out with me noticing that "dom0_max_vcpus=<N>" with <N>
larger than the number of physical CPUs reported through ACPI tables
would not bring up the "excess" vCPU-s. Addressing this is the primary
purpose of the change; CPU maps handling is being tidied only as far as
is necessary for the change here (with the effect of also avoiding the
setting up of too much per-CPU infrastructure, i.e. for CPUs which can
never come online).

Noticing that xen_fill_possible_map() is called way too early, whereas
xen_filter_cpu_maps() is called too late (after per-CPU areas were
already set up), and further observing that each of the functions serves
only one of Dom0 or DomU, it looked like it was better to simplify this.
Use the .get_smp_config hook instead, uniformly for Dom0 and DomU.
xen_fill_possible_map() can be dropped altogether, while
xen_filter_cpu_maps() is re-purposed but not otherwise changed.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/2dbd5f0a-9859-ca2d-085e-a02f7166c610@suse.com
Signed-off-by: Juergen Gross <jgross@suse.com>
arch/x86/xen/enlighten_pv.c
arch/x86/xen/smp_pv.c