Skip to content

qemu x86 TCG doesn't support AVX insns

This bug has been copied automatically from: https://bugs.launchpad.net/qemu/+bug/1818075
Reported by 'Ross Burton' on 2019-02-28 :

I'm trying to execute code that has been built with -march=skylake
-mtune=generic -mavx2 under qemu-user x86-64 with -cpu Skylake-Client.
However this code just hangs at 100% CPU.

Adding input tracing shows that it is likely hanging when dealing with an
AVX instruction:

warning: TCG doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
warning: TCG doesn't support requested feature: CPUID.01H:ECX.pcid [bit
17]
warning: TCG doesn't support requested feature: CPUID.01H:ECX.x2apic [bit
21]
warning: TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline
[bit 24]
warning: TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
warning: TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit
29]
warning: TCG doesn't support requested feature: CPUID.01H:ECX.rdrand [bit
30]
warning: TCG doesn't support requested feature: CPUID.07H:EBX.hle [bit 4]
warning: TCG doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
warning: TCG doesn't support requested feature: CPUID.07H:EBX.invpcid [bit
10]
warning: TCG doesn't support requested feature: CPUID.07H:EBX.rtm [bit 11]
warning: TCG doesn't support requested feature: CPUID.07H:EBX.rdseed [bit
18]
warning: TCG doesn't support requested feature:
CPUID.80000001H:ECX.3dnowprefetch [bit 8]
warning: TCG doesn't support requested feature: CPUID.0DH:EAX.xsavec [bit
1]

IN:
0x4000b4ef3b:  c5 fb 5c ca              vsubsd   %xmm2, %xmm0, %xmm1
0x4000b4ef3f:  c4 e1 fb 2c d1           vcvttsd2si %xmm1, %rdx
0x4000b4ef44:  4c 31 e2                 xorq     %r12, %rdx
0x4000b4ef47:  48 85 d2                 testq    %rdx, %rdx
0x4000b4ef4a:  79 9e                    jns      0x4000b4eeea

[ hangs ]

Attaching a gdb produces this stacktrace:

(gdb) bt
#0  canonicalize (status=0x55a20ff67a88, parm=0x55a20bb807e0
<float64_params>, part=...)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/fpu/softfloat.c:350
#1  float64_unpack_canonical (s=0x55a20ff67a88, f=0)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/fpu/softfloat.c:547
#2  float64_sub (a=0, b=4890909195324358656, status=0x55a20ff67a88)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/fpu/softfloat.c:776
#3  0x000055a20baa1949 in helper_subsd (env=<optimized out>,
d=0x55a20ff67ad8, s=<optimized out>)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/target/i386/ops_sse.h:623
#4  0x000055a20cfcfea8 in static_code_gen_buffer ()
#5  0x000055a20ba3f764 in cpu_tb_exec (itb=<optimized out>,
cpu=0x55a20cea2180 <static_code_gen_buffer+15684720>)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/accel/tcg/cpu-exec.c:171
#6  cpu_loop_exec_tb (tb_exit=<synthetic pointer>, last_tb=<synthetic
pointer>, tb=<optimized out>,
    cpu=0x55a20cea2180 <static_code_gen_buffer+15684720>)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/accel/tcg/cpu-exec.c:615
#7  cpu_exec (cpu=cpu@entry=0x55a20ff5f4d0)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/accel/tcg/cpu-exec.c:725
#8  0x000055a20ba6d728 in cpu_loop (env=0x55a20ff67780)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/linux-user/x86_64/../i386/cpu_loop.c:93
#9  0x000055a20ba049ff in main (argc=<optimized out>, argv=0x7ffc58572868,
envp=<optimized out>)
    at /data/poky-tmp/master/work/x86_64-linux/qemu-
native/3.1.0-r0/qemu-3.1.0/linux-user/main.c:819
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information