Hi Bertrand,
On 23/08/2021 11:32, Bertrand Marquis wrote:
On arm architecture we might have heterogeneous platforms with different
types of cores. As a guest can potentialy run on any of those cores we
have to present them cpu features which are compatible with all cores
and discard the features which are only available on some cores.
Sanitizing the CPU info is important for Xen so it can correctly size
the P2M, flush the cache... However, I don't think this is going to be
sufficient to be able to move a vCPU between different type of pCPU.
The main hurdle I can see so far is errata handling. Not all the errata
can be fully handled in Xen so some of them are left to the guest to
mitigate.
The errata are usually detected based on the MIDR while the OS is
booting. IOW, a guest will not be able to know that it needs to handle
an errata for pCPU B if it only runs on pCPU A.
I don't know yet how this can be solved, but errata are not that
uncommon on Arm. So until this addressed, we will still need to make
sure that vCPUs are not migrated between pCPUs with at least a different
MIDR.
This prevention can be either done manually by pinning the vCPUs or
implementing the proposal that Dario sent a few years ago (see [1]).
Cheers,
[1]
https://lists.xenproject.org/archives/html/xen-devel/2016-12/msg00826.html
--
Julien Grall