summary refs log tree commit diff stats
path: root/results/classifier/108/none/1307
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--results/classifier/108/none/130787
-rw-r--r--results/classifier/108/none/130765672
2 files changed, 159 insertions, 0 deletions
diff --git a/results/classifier/108/none/1307 b/results/classifier/108/none/1307
new file mode 100644
index 00000000..2be0afe3
--- /dev/null
+++ b/results/classifier/108/none/1307
@@ -0,0 +1,87 @@
+KVM: 0.226
+vnc: 0.193
+other: 0.169
+graphic: 0.168
+debug: 0.164
+PID: 0.163
+device: 0.161
+semantic: 0.160
+performance: 0.159
+permissions: 0.153
+files: 0.151
+network: 0.150
+socket: 0.148
+boot: 0.147
+
+query-named-block-nodes, without flat=true, is massively slow as number of block nodes increases
+Description of problem:
+The query-named-block-nodes command is insanely slow with deep backing chains when the flat=true arg is NOT given.
+
+```
+qemu-img create demo0.qcow2 1g
+j=0
+for i in `seq 1 199`
+do 
+    qemu-img create -f qcow2 -o backing_file=demo$j.qcow2 -o backing_fmt=qcow2 demo$i.qcow2
+    j=$i
+done
+```
+
+Now configure libvirt with
+
+```
+    <disk type='file' device='disk'>
+      <driver name='qemu' type='qcow2' discard='unmap'/>
+      <source file='/var/lib/libvirt/images/demo199.qcow2'/>
+      <target dev='vdb' bus='virtio'/>
+      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
+    </disk>
+```
+
+This results in `-blockdev` args
+
+```
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/demo0.qcow2","node-name":"libvirt-201-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-201-format","read-only":true,"discard":"unmap","driver":"qcow2","file":"libvirt-201-storage","backing":null}' \
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/demo1.qcow2","node-name":"libvirt-200-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-200-format","read-only":true,"discard":"unmap","driver":"qcow2","file":"libvirt-200-storage","backing":"libvirt-201-format"}' \
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/demo2.qcow2","node-name":"libvirt-199-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-199-format","read-only":true,"discard":"unmap","driver":"qcow2","file":"libvirt-199-storage","backing":"libvirt-200-format"}' \
+...snip...
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/demo197.qcow2","node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":true,"discard":"unmap","driver":"qcow2","file":"libvirt-4-storage","backing":"libvirt-5-format"}' \
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/demo198.qcow2","node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":true,"discard":"unmap","driver":"qcow2","file":"libvirt-3-storage","backing":"libvirt-4-format"}' \
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/demo199.qcow2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"discard":"unmap","driver":"qcow2","file":"libvirt-1-storage","backing":"libvirt-3-format"}' \
+-device '{"driver":"virtio-blk-pci","bus":"pci.7","addr":"0x0","drive":"libvirt-1-format","id":"virtio-disk1"}' \
+```
+
+Now stop libvirt
+
+```
+systemctl stop libvirtd
+```
+
+And speak directly to QMP
+
+```
+$ time socat UNIX:/var/lib/libvirt/qemu/domain-158-fedora38/monitor.sock - > /dev/null 
+{ "execute": "qmp_capabilities", "arguments": { "enable": ["oob"] } }
+{ "execute": "query-named-block-nodes"}
+{ "execute": "quit" }
+
+real	2m19.276s
+user	0m0.006s
+sys	0m0.014s
+```
+
+If we save the 'query-named-block-nodes' output instead of sending it to /dev/null, we get a 86 MB file for the QMP response. This will break all known client apps since they limit QMP reply size.
+
+It appears to have a combinatorial expansion of block nodes in the output.
+
+Blocking the main event loop for 2 minutes is obviously not good either.
+
+If we use '"flat": true' parameter to query-named-block-nodes, the command completes in just 15 seconds, and produces a large, but more manageable 2.7 MB
+
+Since the non-flat  query-named-block-nodes output is so incredibly non-scalable, I think we should deprecate non-flat mode, and eventually make  flat the mandatory option.
diff --git a/results/classifier/108/none/1307656 b/results/classifier/108/none/1307656
new file mode 100644
index 00000000..c5a40284
--- /dev/null
+++ b/results/classifier/108/none/1307656
@@ -0,0 +1,72 @@
+KVM: 0.580
+other: 0.567
+vnc: 0.549
+permissions: 0.506
+debug: 0.483
+performance: 0.462
+PID: 0.453
+device: 0.435
+graphic: 0.432
+files: 0.426
+boot: 0.421
+network: 0.410
+socket: 0.405
+semantic: 0.398
+
+qemu segfault when starting virt-manager
+
+libvirtd 1.2.3
+virt-manager 1.0.1
+qemu 1.7.92 (2.0.0-rc2)
+
+1. Initially virt-manager is NOT running
+
+2. I start a VM manually using "virsh start ...", causing a qemu instance to be run as
+
+/usr/bin/qemu-system-x86_64 -machine accel=kvm -name Zeus_Virtualized -S -machine pc-i440fx-2.0,accel=kvm,usb=off -cpu Penryn -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 6384b4d2-1c58-4595-bce2-b248230e2c9c -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Zeus_Virtualized.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/home/pief/libvirt VMs/Zeus_Virtualized_USBStick.qcow2,if=none,id=drive-usb-disk0,format=qcow2 -device usb-storage,drive=drive-usb-disk0,id=usb-disk0,removable=off -drive file=/home/pief/isos/openSUSE-13.1-DVD-x86_64.iso,if=none,id=drive-ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive file=/home/pief/libvirt VMs/Zeus_Virtualized_HDD1.qcow2,if=none,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=/home/pief/libvirt VMs/Zeus_Virtualized_HDD2.qcow2,if=none,id=drive-virtio-disk1,format=qcow2 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk1,id=virtio-disk1 -drive file=/home/pief/libvirt VMs/Zeus_Virtualized_SSD.qcow2,if=none,id=drive-virtio-disk2,format=qcow2 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=drive-virtio-disk2,id=virtio-disk2,bootindex=2 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -vnc 127.0.0.1:0 -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x3 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x9
+
+3. I start virt-manager (just starting it, nothing special).
+
+4. The qemu instance segfaults with the attached backtrace.
+
+
+
+
+
+No crash BTW if virt-manager is started first and THEN "virsh start..." is executed.
+
+Judging by the backtrace this is the bug fixed by commit 92b3eeadd9bc, which is in current git master and will be in the imminent 2.0.0-rc3.
+
+
+Fix is already queued for qemu 2.0 GA
+
+commit 92b3eeadd9bc72f1f4e5ba1f62a289dc0190e88f
+Author: Cole Robinson <email address hidden>
+Date:   Thu Apr 10 14:47:38 2014 -0400
+
+    qom: Fix crash with qom-list and link properties
+
+
+On 04/14/14 20:47, Pieter Hollants wrote:
+> Public bug reported:
+> 
+> libvirtd 1.2.3
+> virt-manager 1.0.1
+> qemu 1.7.92 (2.0.0-rc2)
+
+I think this should be fixed by Cole's patch, in rc3:
+
+commit 92b3eeadd9bc72f1f4e5ba1f62a289dc0190e88f
+Author: Cole Robinson <email address hidden>
+Date:   Thu Apr 10 14:47:38 2014 -0400
+
+    qom: Fix crash with qom-list and link properties
+
+http://thread.gmane.org/gmane.comp.emulators.qemu/266588
+
+Laszlo
+
+
+
+Yep, confirm it's fixed in rc3.
+