mbox series

[RFC,0/4] xen/arm: Sanitize cpuinfo

Message ID cover.1624974370.git.bertrand.marquis@arm.com (mailing list archive)
Headers show
Series xen/arm: Sanitize cpuinfo | expand

Message

Bertrand Marquis June 29, 2021, 5:08 p.m. UTC
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.

As the features can be fairly complex, the way to deduce from 2
different features, what should be the acceptable minimal feature can be
complex (and sometime impossible).

This RFC is a first attempt for a solution to start a discussion and get
inputs from the community.

To reduce the implementation effort in Xen, this serie is importing the
structures and filtering system used by Linux in order to build a
cpuinfo containing the best values compatible with all cores on the
platform.

The serie start by importing the necessary code and structure from Linux
and then use it to sanitize the boot cpuinfo.
Finally it is simplifying some Xen code which was doing the same in p2m
and allows to use heterogeneous platforms on arm64.


Bertrand Marquis (4):
  xen/arm: Import ID registers definitions from Linux
  xen/arm: Import ID features sanitize from linux
  xen/arm: Sanitize cpuinfo ID registers fields
  xen/arm: Use sanitize values for p2m

 xen/arch/arm/arm64/Makefile         |   1 +
 xen/arch/arm/arm64/cpusanitize.c    | 628 ++++++++++++++++++++++++++++
 xen/arch/arm/p2m.c                  |  30 +-
 xen/arch/arm/smpboot.c              |   5 +-
 xen/include/asm-arm/arm64/sysregs.h | 312 ++++++++++++++
 xen/include/asm-arm/cpufeature.h    |   9 +
 xen/include/xen/lib.h               |   1 +
 7 files changed, 965 insertions(+), 21 deletions(-)
 create mode 100644 xen/arch/arm/arm64/cpusanitize.c