Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-18064

[virtio-win][viostor] performance of the viostor driver slightly decrease between 187 and 189

    • None
    • Moderate
    • rhel-sst-virtualization-windows
    • ssg_virtualization
    • None
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • None
    • None
    • x86_64
    • Windows
    • None

      Description of problem:
      performance of the viostor driver slightly decrease between 187 and 189

      refer to upstream issue:
      https://github.com/virtio-win/kvm-guest-drivers-windows/issues/992

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

      Guest: Win2016
      kernel-5.14.0-362.8.1.el9_3.x86_64
      qemu-kvm-8.0.0-16.el9_3.x86_64
      seabios-bin-1.16.1-1.el9.noarch
      virtio-win-prewhql-187
      virtio-win-prewhql-189

      How reproducible:
      100%

      Steps to Reproduce:
      1.boot a win2016(PC) guest

      /usr/libexec/qemu-kvm \
      -name 'avocado-vt-vm3' \
      -machine pc \
      -nodefaults \
      -vga std \
      -blockdev node-name=file_sys,driver=file,cache.direct=on,cache.no-flush=off,filename=win2016-64-virtio.qcow2,aio=threads \
      -blockdev node-name=drive_sys,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_sys \
      -device virtio-blk-pci,id=sys,drive=drive_sys,bus=pci.0 \
      -blockdev node-name=file_stg1,driver=file,cache.direct=on,cache.no-flush=off,filename=disk.qcow2,aio=threads \
      -blockdev node-name=drive_stg1,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_stg1 \
      -device virtio-blk-pci,id=stg1,drive=drive_stg1,bus=pci.0 \
      -device virtio-net-pci,mac=9a:36:83:b6:3d:05,id=idJVpmsF,netdev=id23ZUK6,bus=pci.0 \
      -netdev tap,id=id23ZUK6,vhost=on \
      -m 4G \
      -smp 4 \
      -cpu 'Skylake-Server',hv_stimer,hv_synic,hv_vpindex,hv_reset,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv-tlbflush,+kvm_pv_unhalt \
      -cdrom /home/kvm_autotest_root/iso/windows/virtio-win-prewhql-0.1-187.iso \
      -device piix3-usb-uhci,id=usb -device usb-tablet,id=input0 \
      -vnc :1 \
      -rtc base=localtime,clock=host,driftfix=slew \
      -boot order=cdn,once=c,menu=off,strict=off \
      -enable-kvm \
      -qmp tcp:0:1231,server,nowait \
      -monitor stdio \

      2. do iometer (4K random read / write (70% read)) on data disk with 187 version

      3. record the Total I/Os per Second

      4. repeat step 2-3

      Actual results:
      performance of the viostor driver slightly decrease between 187 and 189 (about 5%)

      Expected results:
      Performance should have some improvement base on:
      https://gitlab.cee.redhat.com/virtio-win/internal-kvm-guest-drivers-windows/-/commit/7fab9a360fd78087a20b11b4f5f47d7197909885 (There were several changes related to the performance optimization and the maximum transfer size
      between build 187 and 189.)

      Additional info:
      1. Not reproduce on 8k rand 7:3
      2. Also reproduce with 2M seq 7:3 between 187 and 189, but performance becomes better with 240

      iometer.icf

      'Run Time
      ' hours minutes seconds
      0 1 0
      'Ramp Up Time (s)
      0
      'Default Disk Workers to Spawn
      NUMBER_OF_CPUS
      'Default Network Workers to Spawn
      0
      'Record Results
      ALL
      'Worker Cycling
      ' start step step type
      1 1 LINEAR
      'Disk Cycling
      ' start step step type
      1 1 LINEAR
      'Queue Depth Cycling
      ' start end step step type
      1 32 2 EXPONENTIAL
      'Test Type
      NORMAL
      'END test setup

      *****

      'MANAGER LIST ==================================================================
      'Manager ID, manager name
      1,WIN-G20NI70DE9E
      'Manager network address

      'Worker
      Worker 1
      'Worker type
      DISK
      'Default target settings for worker
      'Number of outstanding IOs,test connection rate,transactions per connection,use fixed seed,fixed seed value
      64,DISABLED,1,DISABLED,0
      'Disk maximum size,starting sector,Data pattern
      20971520,0,0
      'End default target settings for worker
      'Assigned access specs
      4k rand 7:3
      'End assigned access specs
      'Target assignments

       

      BTW:

      for the upstream issue, the reporter use :  -device vhost-user-blk-pci ( IOps are obviously larger than virtio-blk-pci)

      but I can not start a VM with -device vhost-user-blk-pci with 187 version (hit BSOD), the env shoud have some differences upstream and downstream

       

              rhn-support-vrozenfe Vadim Rozenfeld
              rhn-support-menli Menghuan Li
              virt-maint virt-maint
              Menghuan Li Menghuan Li
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: