On 3/16/22 16:57, Peter Krempa wrote: > On Tue, Mar 08, 2022 at 12:34:38 +0100, Paolo Bonzini wrote: >> From: Yang Zhong <yang.zh...@intel.com> >> >> Kernel allocates 4K xstate buffer by default. For XSAVE features >> which require large state component (e.g. AMX), Linux kernel >> dynamically expands the xstate buffer only after the process has >> acquired the necessary permissions. Those are called dynamically- >> enabled XSAVE features (or dynamic xfeatures). >> >> There are separate permissions for native tasks and guests. >> >> Qemu should request the guest permissions for dynamic xfeatures >> which will be exposed to the guest. This only needs to be done >> once before the first vcpu is created. >> >> KVM implemented one new ARCH_GET_XCOMP_SUPP system attribute API to >> get host side supported_xcr0 and Qemu can decide if it can request >> dynamically enabled XSAVE features permission. >> https://lore.kernel.org/all/20220126152210.3044876-1-pbonz...@redhat.com/ >> >> Suggested-by: Paolo Bonzini <pbonz...@redhat.com> >> Signed-off-by: Yang Zhong <yang.zh...@intel.com> >> Signed-off-by: Jing Liu <jing2....@intel.com> >> Message-Id: <20220217060434.52460-4-yang.zh...@intel.com> >> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> >> --- >> target/i386/cpu.c | 7 +++++ >> target/i386/cpu.h | 4 +++ >> target/i386/kvm/kvm-cpu.c | 12 ++++---- >> target/i386/kvm/kvm.c | 57 ++++++++++++++++++++++++++++++++++++++ >> target/i386/kvm/kvm_i386.h | 1 + >> 5 files changed, 75 insertions(+), 6 deletions(-) > > With this commit qemu crashes for me when invoking the following > QMP command: > > $ ~pipo/git/qemu.git/build/qemu-system-x86_64 -S -no-user-config -nodefaults > -nographic -machine none,accel=kvm -qmp stdio > {"QMP": {"version": {"qemu": {"micro": 90, "minor": 2, "major": 6}, > "package": "v7.0.0-rc0-8-g1d60bb4b14"}, "capabilities": ["oob"]}} > {'execute':'qmp_capabilities'} > {"return": {}} > {"execute":"qom-list-properties","arguments":{"typename":"max-x86_64-cpu"},"id":"libvirt-41"} > qemu-system-x86_64: ../target/i386/kvm/kvm-cpu.c:105: kvm_cpu_xsave_init: > Assertion `esa->size == eax' failed. > Aborted (core dumped) > > Note that the above is on a box with an 'AMD Ryzen 9 3900X'. > > Curiously on a laptop with an Intel chip (Intel(R) Core(TM) i7-10610U) > it seems to work. > >
Not trying to beat a dead horse here, but I've just found another problem with this patch. On my laptop (Linux maggie 5.15.26-gentoo-x86_64 #1 SMP Thu Mar 10 08:55:28 CET 2022 x86_64 Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz GenuineIntel GNU/Linux), when I start a guest it no longer sees AVX instructions: qemu.git $ ./build/qemu-system-x86_64 -accel kvm -cpu host ... Michal