• Vitaly Kuznetsov's avatar
    KVM: selftests: x86: Avoid using SSE/AVX instructions · 9a400068
    Vitaly Kuznetsov authored
    Some distros switched gcc to '-march=x86-64-v3' by default and while it's
    hard to find a CPU which doesn't support it today, many KVM selftests fail
    with
    
      ==== Test Assertion Failure ====
        lib/x86_64/processor.c:570: Unhandled exception in guest
        pid=72747 tid=72747 errno=4 - Interrupted system call
        Unhandled exception '0x6' at guest RIP '0x4104f7'
    
    The failure is easy to reproduce elsewhere with
    
       $ make clean && CFLAGS='-march=x86-64-v3' make -j && ./x86_64/kvm_pv_test
    
    The root cause of the problem seems to be that with '-march=x86-64-v3' GCC
    uses AVX* instructions (VMOVQ in the example above) and without prior
    XSETBV() in the guest this results in #UD. It is certainly possible to add
    it there, e.g. the following saves the day as well:
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-ID: <20240920154422.2890096-1-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    9a400068
Makefile 13 KB