On Thu, May 12 2022, Cornelia Huck <cohuck@xxxxxxxxxx> wrote: > This series enables MTE for kvm guests, if the kernel supports it. > Lightly tested while running under the simulator (the arm64/mte/ > kselftests pass... if you wait patiently :) > > A new cpu property "mte" (defaulting to on if possible) is introduced; > for tcg, you still need to enable mte at the machine as well. > > I've hacked up some very basic qtests; not entirely sure if I'm going > about it the right way. > > Some things to look out for: > - Migration is not (yet) supported. I added a migration blocker if we > enable mte in the kvm case. AFAIK, there isn't any hardware available > yet that allows mte + kvm to be used (I think the latest Gravitons > implement mte, but no bare metal instances seem to be available), so > that should not have any impact on real world usage. ...so it seems there was a series some time ago related to MTE + migration, which my initial search somehow managed to avoid. https://lore.kernel.org/all/CAJc+Z1FZxSYB_zJit4+0uTR-88VqQL+-01XNMSEfua-dXDy6Wg@xxxxxxxxxxxxxx/ talks about some kernel changes needed in order to support postcopy; has there been any update, as my search fu might be failing me again? > - I'm not at all sure about the interaction between the virt machine 'mte' > prop and the cpu 'mte' prop. To keep things working with tcg as before, > a not-specified mte for the cpu should simply give us a guest without > mte if it wasn't specified for the machine. However, mte on the cpu > without mte on the machine should probably generate an error, but I'm not > sure how to detect that without breaking the silent downgrade to preserve > existing behaviour. > - As I'm still new to arm, please don't assume that I know what I'm doing :) > > > Cornelia Huck (2): > arm/kvm: enable MTE if available > qtests/arm: add some mte tests > > target/arm/cpu.c | 18 +++----- > target/arm/cpu.h | 4 ++ > target/arm/cpu64.c | 78 ++++++++++++++++++++++++++++++++++ > target/arm/kvm64.c | 5 +++ > target/arm/kvm_arm.h | 12 ++++++ > target/arm/monitor.c | 1 + > tests/qtest/arm-cpu-features.c | 31 ++++++++++++++ > 7 files changed, 137 insertions(+), 12 deletions(-)