On Thu, 29 Aug 2024 00:27:31 +0100, Mark Brown <broonie@xxxxxxxxxx> wrote: > > GCS introduces a number of system registers for EL1 and EL0, on systems > with GCS we need to context switch them and expose them to VMMs to allow > guests to use GCS. > > In order to allow guests to use GCS we also need to configure > HCRX_EL2.GCSEn, if this is not set GCS instructions will be noops and > CHKFEAT will report GCS as disabled. Also enable fine grained traps for > access to the GCS registers by guests which do not have the feature > enabled. > > In order to allow userspace to control availability of the feature to > guests we enable writability for only ID_AA64PFR1_EL1.GCS, this is a > deliberately conservative choice to avoid errors due to oversights. > Further fields should be made writable in future. > > Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@xxxxxxxxxx> > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> > --- > arch/arm64/include/asm/kvm_host.h | 12 ++++++++ > arch/arm64/include/asm/vncr_mapping.h | 2 ++ > arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 49 ++++++++++++++++++++++++------ > arch/arm64/kvm/sys_regs.c | 27 +++++++++++++++- > 4 files changed, 79 insertions(+), 11 deletions(-) FWIW, this patch is going to conflict badly with -next, because of the "conservative" approach to dealing with ID_AA64PFR1_EL1 (thankfully, the *progressive* approach has been merged). If it gets stuck on a branch together with patch #11 (which seems to be the minimum for things to compile), I can take it independently and fix it myself. Just let me know. Thanks, M. -- Without deviation from the norm, progress is not possible.