** Description changed:

+ [Impact]
+ 
+  * QEMU does not work in some AMD hardware when using host-passthrough
+ as cpu-mode (usually to allow nested KVM to work).
+ 
+ [Test Case]
+ 
+  * to use Xenial qemu (1:2.5+dfsg-5ubuntu10.36 ou 1:2.5+dfsg-5ubuntu10.37)
+  * to use the following XML file: https://paste.ubuntu.com/p/BSyFY7ksR5/
+  * to have AMD FX(tm)-8350 Eight-Core Processor CPU or similar
+ 
+ [Regression Potential]
+ 
+  * initial qemu code could be affected, disallowing other guests, in other 
architectures, to be started
+  * suggested patch is simple, being a positional change only
+ 
+ [Other Info]
+  
+  * INITIAL CASE DESCRIPTION:
+ 
  When using latest QEMU (-proposed) in Xenial you might encounter the
  following problem when trying to initialize your guests:
  
  ----
  
  (c)inaddy@qemubug:~$ apt-cache policy qemu-system-x86
  qemu-system-x86:
-   Installed: 1:2.5+dfsg-5ubuntu10.37
-   Candidate: 1:2.5+dfsg-5ubuntu10.37
-   Version table:
-  *** 1:2.5+dfsg-5ubuntu10.37 500
-         500 http://ubuntu.c3sl.ufpr.br//ubuntu xenial-proposed/main amd64 
Packages
-         100 /var/lib/dpkg/status
-      1:2.5+dfsg-5ubuntu10.36 500
-         500 http://ubuntu.c3sl.ufpr.br//ubuntu xenial-updates/main amd64 
Packages
-      1:2.5+dfsg-5ubuntu10 500
-         500 http://ubuntu.c3sl.ufpr.br/ubuntu xenial/main amd64 Packages
+   Installed: 1:2.5+dfsg-5ubuntu10.37
+   Candidate: 1:2.5+dfsg-5ubuntu10.37
+   Version table:
+  *** 1:2.5+dfsg-5ubuntu10.37 500
+         500 http://ubuntu.c3sl.ufpr.br//ubuntu xenial-proposed/main amd64 
Packages
+         100 /var/lib/dpkg/status
+      1:2.5+dfsg-5ubuntu10.36 500
+         500 http://ubuntu.c3sl.ufpr.br//ubuntu xenial-updates/main amd64 
Packages
+      1:2.5+dfsg-5ubuntu10 500
+         500 http://ubuntu.c3sl.ufpr.br/ubuntu xenial/main amd64 Packages
  
  ----
  
  (c)inaddy@qemubug:~$ virsh list --all
-  Id    Name                           State
+  Id    Name                           State
  ----------------------------------------------------
-  -     kdebian                        shut off
-  -     kguest                         shut off
+  -     kdebian                        shut off
+  -     kguest                         shut off
  
  (c)inaddy@qemubug:~$ virsh start --console kguest
  error: Failed to start domain kguest
  error: internal error: process exited while connecting to monitor: warning: 
host doesn't support requested feature: CPUID.80000001H:EDX [bit 0]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 1]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 2]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 3]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 4]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 5]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 6]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 7]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 8]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 9]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 12]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 13]
  warning: host doesn't support requested feature: CPU
  
  ----
  
  This happens because x86_cpu_get_migratable_flags() does not support
  CPUID_EXT2_AMD_ALIASES. After cherry-picking upstream patch
  9997cf7bdac056aeed246613639675c5a9f8fdc2, that moves
  CPUID_EXT2_AMD_ALIASES code to after x86_cpu_filter_features(), the
  problem is fixed. Other QEMU versions are properly fixed and don't face
  this issue.
  
  Cherry-picking commit and re-building the package makes it to work:
  ----
  
  (c)inaddy@qemubug:~$ virsh start --console kguest
  Domain kguest started
  Connected to domain kguest
  Escape character is ^]
  [    0.000000] Linux version 4.19.0-4-amd64 (debian-ker...@lists.debian.org) 
(gcc version 8.3.0 (Debian 8.3.0-2)) #1
  SMP Debian 4.19.28-2 (2019-03-15)
  [    0.000000] Command line: root=/dev/vda noresume console=tty0 
console=ttyS0,38400n8 apparmor=0 net.ifnames=0 crashkernel=256M
  [    0.000000] random: get_random_u32 called from bsp_init_amd+0x20b/0x2b0 
with crng_init=0
  [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point 
registers'
  [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
  [    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
  [    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
  [    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 
bytes, using 'standard' format.
  ...

** Description changed:

  [Impact]
  
-  * QEMU does not work in some AMD hardware when using host-passthrough
+  * QEMU does not work in some AMD hardware when using host-passthrough
  as cpu-mode (usually to allow nested KVM to work).
  
  [Test Case]
  
-  * to use Xenial qemu (1:2.5+dfsg-5ubuntu10.36 ou 1:2.5+dfsg-5ubuntu10.37)
-  * to use the following XML file: https://paste.ubuntu.com/p/BSyFY7ksR5/
-  * to have AMD FX(tm)-8350 Eight-Core Processor CPU or similar
+  * to use Xenial qemu (1:2.5+dfsg-5ubuntu10.36 ou 1:2.5+dfsg-5ubuntu10.37)
+  * to use the following XML file: https://paste.ubuntu.com/p/BSyFY7ksR5/
+  * to have AMD FX(tm)-8350 Eight-Core Processor CPU or similar
  
  [Regression Potential]
  
-  * initial qemu code could be affected, disallowing other guests, in other 
architectures, to be started
-  * suggested patch is simple, being a positional change only
+  * initial qemu code could be affected, disallowing other guests, in other 
architectures, to be started
+  * suggested patch is simple, being a positional change only
+  * patch is upstream based and identifies the issue and is reported to be a 
fix for the described issue
  
  [Other Info]
-  
-  * INITIAL CASE DESCRIPTION:
+ 
+  * INITIAL CASE DESCRIPTION:
  
  When using latest QEMU (-proposed) in Xenial you might encounter the
  following problem when trying to initialize your guests:
  
  ----
  
  (c)inaddy@qemubug:~$ apt-cache policy qemu-system-x86
  qemu-system-x86:
    Installed: 1:2.5+dfsg-5ubuntu10.37
    Candidate: 1:2.5+dfsg-5ubuntu10.37
    Version table:
   *** 1:2.5+dfsg-5ubuntu10.37 500
          500 http://ubuntu.c3sl.ufpr.br//ubuntu xenial-proposed/main amd64 
Packages
          100 /var/lib/dpkg/status
       1:2.5+dfsg-5ubuntu10.36 500
          500 http://ubuntu.c3sl.ufpr.br//ubuntu xenial-updates/main amd64 
Packages
       1:2.5+dfsg-5ubuntu10 500
          500 http://ubuntu.c3sl.ufpr.br/ubuntu xenial/main amd64 Packages
  
  ----
  
  (c)inaddy@qemubug:~$ virsh list --all
   Id    Name                           State
  ----------------------------------------------------
   -     kdebian                        shut off
   -     kguest                         shut off
  
  (c)inaddy@qemubug:~$ virsh start --console kguest
  error: Failed to start domain kguest
  error: internal error: process exited while connecting to monitor: warning: 
host doesn't support requested feature: CPUID.80000001H:EDX [bit 0]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 1]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 2]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 3]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 4]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 5]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 6]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 7]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 8]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 9]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 12]
  warning: host doesn't support requested feature: CPUID.80000001H:EDX [bit 13]
  warning: host doesn't support requested feature: CPU
  
  ----
  
  This happens because x86_cpu_get_migratable_flags() does not support
  CPUID_EXT2_AMD_ALIASES. After cherry-picking upstream patch
  9997cf7bdac056aeed246613639675c5a9f8fdc2, that moves
  CPUID_EXT2_AMD_ALIASES code to after x86_cpu_filter_features(), the
  problem is fixed. Other QEMU versions are properly fixed and don't face
  this issue.
  
  Cherry-picking commit and re-building the package makes it to work:
  ----
  
  (c)inaddy@qemubug:~$ virsh start --console kguest
  Domain kguest started
  Connected to domain kguest
  Escape character is ^]
  [    0.000000] Linux version 4.19.0-4-amd64 (debian-ker...@lists.debian.org) 
(gcc version 8.3.0 (Debian 8.3.0-2)) #1
  SMP Debian 4.19.28-2 (2019-03-15)
  [    0.000000] Command line: root=/dev/vda noresume console=tty0 
console=ttyS0,38400n8 apparmor=0 net.ifnames=0 crashkernel=256M
  [    0.000000] random: get_random_u32 called from bsp_init_amd+0x20b/0x2b0 
with crng_init=0
  [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point 
registers'
  [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
  [    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
  [    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
  [    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 
bytes, using 'standard' format.
  ...

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1828288

Title:
  QEMU might fail to start on AMD CPUs when 'host-passthrough' is used

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1828288/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to