On 20.03.2024 15:06, Andrew Cooper wrote: > On 20/03/2024 1:57 pm, Roger Pau Monne wrote: >> There's no reason to force HVM guests to have a valid vcpu_info area when >> initializing a vCPU, as the vCPU can also be brought online using the local >> APIC, and on that path there's no requirement for vcpu_info to be setup ahead >> of the bring up. Note an HVM vCPU can operate normally without making use of >> vcpu_info. >> >> Restrict the check against dummy_vcpu_info to only apply to PV guests. >> >> Fixes: 192df6f9122d ('x86: allow HVM guests to use hypercalls to bring up >> vCPUs') >> Signed-off-by: Roger Pau Monné <roger....@citrix.com> > > Thanks for looking into this. But, do we actually need to force this on > PV either? > > The only interesting user of dummy_vcpu_info now is vcpu_info_populate() > which can cope with any arbitrary vCPU.
Why would that be the only interesting user? If we were to ... > I have a suspicion that we can (now) delete these two checks, delete the > dummy_vcpu_info object, and use a regular NULL pointer in > vcpu_info_{populate,reset}(), and in doing so, remove one of the bigger > pieces of PV-absurdity from Xen. ... use NULL pointers instead, we'd need to audit all Xen's vcpu_info accesses for properly avoiding to de-reference that NULL. The dummy struct instance was really meant as a safety belt (besides also acting as a sentinel). > I can entirely believe that this is only safe to do with Jan's physical > registration changes in place. Which nobody uses just yet, afaik. Jan