Bug 1729077 - flag 'hv_vapic' doesn't improve Windows' performance evidently
Summary: flag 'hv_vapic' doesn't improve Windows' performance evidently
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux Advanced Virtualization
Classification: Red Hat
Component: qemu-kvm
Version: 8.1
Hardware: x86_64
OS: Linux
Target Milestone: rc
: ---
Assignee: Vitaly Kuznetsov
QA Contact: liunana
Depends On:
TreeView+ depends on / blocked
Reported: 2019-07-11 11:08 UTC by liunana
Modified: 2020-02-05 23:00 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1727238
Last Closed:
Type: Bug
Target Upstream Version:

Attachments (Terms of Use)

Description liunana 2019-07-11 11:08:19 UTC
Description of problem:
flag 'hv_vapic' doesn't improve Windows' performance evidently

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. boot guest with command [1] without flag 'hv_vapic'
2. Using the IOmeter tool observer the storage performance
   a.download the tool inside the guest
   b.Open the IOmeter and do configuration
     "Disk Target" ==> "D: ""
     "Access Specifications" ==> "4KiB 100% Read;"
     "Test Setup" ==> "30 Minutes"
   c. Start Test
3.Shutdown the guest. Then boot the same guest again with command "-cpu Skylake-Client-IBRS,+kvm_pv_unhalt,hv_vapic". Repeat the step 2

Actual results:

[test 1]--two work1 in iometer: 
   storage performance without any flag
   PROCESSOR,CPU  ==> 24.24%
   IOPS ==> 5388.54

   storage performance with the flag "hv_vapic"
   PROCESSOR,CPU  ==> 23.80%
   IOPS ==> 5400.17

[test 2]-- two work1 in iometer: 
   storage performance without any flag
   PROCESSOR,CPU  ==> 24.39%
   IOPS ==> 5459.93

   storage performance with the flag "hv_vapic"
   PROCESSOR,CPU  ==> 24.01%
   IOPS ==> 5438

[test 3]--one work1 in iometer: 
   storage performance without any flag
   PROCESSOR,CPU  ==> 24.60%
   IOPS ==> 5423.28

   storage performance with the flag "hv_vapic"
   PROCESSOR,CPU  ==> 24.00%
   IOPS ==> 5393.71

Expected results:
flag 'hv_vapic' can improve Windows' performance evidently

Additional info:
/usr/libexec/qemu-kvm -name win10-edk2 -M q35 -enable-kvm \
-cpu SandyBridge-IBRS,+kvm_pv_unhalt,hv_time \
-monitor stdio \
-nodefaults -rtc base=utc \
-m 4G \
-boot menu=on,splash-time=12000 \
-global driver=cfi.pflash01,property=secure,value=on \
-drive file=/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd,if=pflash,format=raw,readonly=on,unit=0 \
-drive file=/home/1-win10-edk2/OVMF/OVMF_VARS.fd,if=pflash,format=raw,unit=1,readonly=off \
-smp 2,sockets=1,cores=2,threads=2,maxcpus=4 \
-object secret,id=sec0,data=redhat \
-blockdev node-name=back_image,driver=file,cache.direct=on,cache.no-flush=off,filename=/home/1-win10-edk2/win10.luks,aio=threads \
-blockdev node-name=drive-virtio-disk0,driver=luks,cache.direct=on,cache.no-flush=off,file=back_image,key-secret=sec0 \
-device pcie-root-port,id=root0,slot=0 \
-device virtio-blk-pci,drive=drive-virtio-disk0,id=disk0,bus=root0 \
-device pcie-root-port,id=root1,slot=1 \
-device virtio-net-pci,mac=70:5a:0f:38:cd:a3,id=idhRa7sf,vectors=4,netdev=idNIlYmb,bus=root1 -netdev tap,id=idNIlYmb,vhost=on \
-drive id=drive_cd1,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/iso/windows/virtio-win-prewhql-0.1-172.iso \
-device ide-cd,id=cd1,drive=drive_cd1,bus=ide.0,unit=0 \
-device ich9-usb-uhci6 \
-device usb-tablet,id=mouse \
-device qxl-vga,id=video1 \
-spice port=5901,disable-ticketing \
-device virtio-serial-pci,id=virtio-serial1 \
-chardev spicevmc,id=charchannel0,name=vdagent \
-device virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 \

Comment 2 liunana 2019-11-19 03:29:22 UTC
Update status of RHEL8.2 fast train:

Test Environments:

Test results:
   storage performance without any flag
   PROCESSOR,CPU 1 ==> 24.84%
   IOPS ==> 7652.10

   storage performance with the flag "+kvm_pv_unhalt,hv_vapic"
   PROCESSOR,CPU  ==> 21.94%
   IOPS ==> 7658.34

Comment 4 Ademar Reis 2020-02-05 23:00:38 UTC
QEMU has been recently split into sub-components and as a one-time operation to avoid breakage of tools, we are setting the QEMU sub-component of this BZ to "General". Please review and change the sub-component if necessary the next time you review this BZ. Thanks

Note You need to log in before you can comment on or make changes to this bug.