Bug 1437310

Summary: The guest os can not boot when set qxl.vram64 >=2G
Product: Red Hat Enterprise Linux 7 Reporter: yafu <yafu>
Component: qemu-kvm-rhevAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED ERRATA QA Contact: Guo, Zhiyi <zhguo>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: chayang, dyuan, fjin, jinzhao, juzhang, knoel, mrezanin, virt-maint, xfu, yiwei, zhguo, zpeng
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.9.0-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-02 04:35:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
The screenshots for guest os booting none

Description yafu 2017-03-30 03:24:39 UTC
Created attachment 1267409 [details]
The screenshots for guest os booting

Description of problem:
The guest os can not boot when set qxl.vram64 >=2G.

Version-Release number of selected component (if applicable):
libvirt-3.1.0-2.el7.x86_64
qemu-kvm-rhev-2.8.0-6.el7.x86_64
seabios-bin-1.10.2-1.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1.Edit a guest with qxl vram64=2G:
  ...
   <video>
      <model type='qxl' ram='65536' vram='65536' vram64='2097152' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </video>
  ...

2.Start the guest:
#virsh start rhel7.3-min
 
Actual Results:
The guest os can not boot, please see the screenshots in the attachment.

Expected Results:
The guest os can boot correctly.

Additional info:
1.Check the qemu cmd line:
#/usr/libexec/qemu-kvm -name guest=rhel7.3-min,debug-threads=on ... -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,****vram64_size_mb=2048****...

2.The stack trace of the guest process is as follows:
# gstack `pidof qemu-kvm`
Thread 18 (Thread 0x7f3bd0fe8700 (LWP 32248)):
#0  0x00007f3bdbd8abf9 in syscall () from /lib64/libc.so.6
#1  0x00007f3bf4eb1276 in qemu_event_wait ()
#2  0x00007f3bf4ebfd0e in call_rcu_thread ()
#3  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 17 (Thread 0x7f3bcede3700 (LWP 32269)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 16 (Thread 0x7f3bce5e2700 (LWP 32271)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 15 (Thread 0x7f3bcdde1700 (LWP 32273)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 14 (Thread 0x7f3bcd5e0700 (LWP 32275)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 13 (Thread 0x7f3bccddf700 (LWP 32276)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 12 (Thread 0x7f3bcc5de700 (LWP 32277)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 11 (Thread 0x7f3bcbddd700 (LWP 32278)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 10 (Thread 0x7f3bcb5dc700 (LWP 32279)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 9 (Thread 0x7f3bcaddb700 (LWP 32280)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 8 (Thread 0x7f3bca5da700 (LWP 32281)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 7 (Thread 0x7f3bc9dd9700 (LWP 32282)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 6 (Thread 0x7f3bc95d8700 (LWP 32283)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 5 (Thread 0x7f3bc8dd7700 (LWP 32284)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 4 (Thread 0x7f3bc85d6700 (LWP 32285)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 3 (Thread 0x7f3bc7dd5700 (LWP 32286)):
#0  0x00007f3bdbd87507 in ioctl () from /lib64/libc.so.6
#1  0x00007f3bf4c0c2a5 in kvm_vcpu_ioctl ()
#2  0x00007f3bf4c0c35d in kvm_cpu_exec ()
#3  0x00007f3bf4bfaad6 in qemu_kvm_cpu_thread_fn ()
#4  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f3a827ff700 (LWP 32299)):
#0  0x00007f3bdbd85dfd in poll () from /lib64/libc.so.6
#1  0x00007f3bddae422f in red_worker_main () from /lib64/libspice-server.so.1
#2  0x00007f3bdc068dc5 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f3bdbd9073d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f3bf493fd40 (LWP 32205)):
#0  0x00007f3bdbd85ebf in ppoll () from /lib64/libc.so.6
#1  0x00007f3bf4e0fc09 in qemu_poll_ns ()
#2  0x00007f3bf4e0f5a8 in main_loop_wait ()
#3  0x00007f3bf4bc3460 in main ()

3.It works well with seabios-bin-1.9.1-5.el7_3.2.noarch.rpm

Comment 2 Ademar Reis 2017-04-03 12:52:53 UTC
I wonder if we document the limit for qxl.vram64 somewhere... Anyway, is it reasonable to set 2GB+ of vram memory in qxl? If not, feel free to close this BZ.

On the other hand, it used to work, which is why I'm adding the Regression keyword.

Comment 4 Gerd Hoffmann 2017-04-03 13:42:17 UTC
Very likely the same regression which poped up in bug 1393322.
Fixed in qemu 2.9, so the rebase should pick it up.

Comment 5 Ademar Reis 2017-04-03 17:50:44 UTC
(In reply to Gerd Hoffmann from comment #4)
> Very likely the same regression which poped up in bug 1393322.
> Fixed in qemu 2.9, so the rebase should pick it up.

OK, changing component to qemu-kvm-rhev (not seabios)

Comment 7 Yiqian Wei 2017-05-16 07:24:30 UTC
Reproduce
 host version:
      qemu-kvm-rhev-2.8.0-6.el7.x86_64
      kernel-3.10.0-600.el7.x86_64
test steps:
1.Edit a guest with qxl vram64=2G:
  ...
   <video>
      <model type='qxl' ram='65536' vram='65536' vram64='2097152' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </video>
  ...

2.Start the guest:
#virsh start rhel7.3-min
 
Test Results:
The guest os can not boot.
-----------------------
Verify this bug on qemu-kvm-rhev-2.9.0-4.el7.x86_64 as same steps above.

Test results:
The guest os can boot succeed.

Comment 10 errata-xmlrpc 2017-08-02 04:35:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2017:2392