qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Zhang Haoyu <ahzhanghaoyu@gmail.com>
To: Zhang Haoyu <zhanghy@sangfor.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Amit Shah <amit.shah@redhat.com>
Cc: qemu-devel <qemu-devel@nongnu.org>, kvm <kvm@vger.kernel.org>
Subject: Re: [Qemu-devel] [question] virtio-blk performance degradationhappenedwith virito-serial
Date: Sun, 07 Sep 2014 17:46:26 +0800	[thread overview]
Message-ID: <540C2972.5070707@gmail.com> (raw)
In-Reply-To: <201409041556259426013@sangfor.com>

Hi, Paolo, Amit,
any ideas?

Thanks,
Zhang Haoyu


On 2014-9-4 15:56, Zhang Haoyu wrote:
>>>>> If virtio-blk and virtio-serial share an IRQ, the guest operating system has to check each virtqueue for activity. Maybe there is some inefficiency doing that.
>>>>> AFAIK virtio-serial registers 64 virtqueues (on 31 ports + console) even if everything is unused.
>>>> That could be the case if MSI is disabled.
>>> Do the windows virtio drivers enable MSIs, in their inf file?
>> It depends on the version of the drivers, but it is a reasonable guess
>> at what differs between Linux and Windows.  Haoyu, can you give us the
>> output of lspci from a Linux guest?
>>
> I made a test with fio on rhel-6.5 guest, the same degradation happened too,  this degradation can be reproduced on rhel6.5 guest 100%.
> virtio_console module installed:
> 64K-write-sequence: 285 MBPS, 4380 IOPS
> virtio_console module uninstalled:
> 64K-write-sequence: 370 MBPS, 5670 IOPS
>
> And, virio-blk's interrupt mode always is MSI, no matter if virtio_console module is installed or uninstalled.
> 25:    2245933   PCI-MSI-edge      virtio1-requests
>
> fio command:
> fio -filename /dev/vda -direct=1 -iodepth=1 -thread -rw=write -ioengine=psync -bs=64k -size=30G -numjobs=1 -name=mytest
>
> QEMU comamnd:
> /usr/bin/kvm -id 5497356709352 -chardev socket,id=qmp,path=/var/run/qemu-server/5497356709352.qmp,server,nowait -mon chardev=qmp,mode=control -vnc :0,websocket,to=200 -enable-kvm -pidfile /var/run/qemu-server/5497356709352.pid -daemonize -name io-test-rhel-6.5 -smp sockets=1,cores=1 -cpu core2duo -nodefaults -vga cirrus -no-hpet -k en-us -boot menu=on,splash-time=8000 -m 4096 -usb -drive file=/sf/data/local/zhanghaoyu/rhel-server-6.5-x86_64-dvd.iso,if=none,id=drive-ide0,media=cdrom,aio=native,forecast=disable -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0,id=ide0,bootindex=200 -drive file=/sf/data/local/images/host-1051721dff13/io-test-rhel-6.5.vm/vm-disk-1.qcow2,if=none,id=drive-virtio1,cache=none,aio=native -device virtio-blk-pci,drive=drive-virtio1,id=virtio1,bus=pci.0,addr=0xb -drive file=/sf/data/local/images/host-1051721dff13/io-test-rhel-6.5.vm/vm-disk-2.qcow2,if=none,id=drive-virtio2,cache=none,aio=native -device virtio-blk-pci,drive=drive-virtio2,id=virtio2,bus=pci
>  .0,addr=0xc,bootindex=101 -netdev type=tap,id=net0,ifname=164922379979200,script=/sf/etc/kvm/vtp-bridge,vhost=on,vhostforce=on -device virtio-net-pci,mac=FE:FC:FE:C6:47:F6,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300 -rtc driftfix=slew,clock=rt -global kvm-pit.lost_tick_policy=discard -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -chardev socket,path=/run/virtser/1649223799792.sock,server,nowait,id=channelser -device virtio-serial,vectors=4 -device virtserialport,chardev=channelser,name=channelser.virtserial0.0
>
> [environment]
> Host:linux-3.10(RHEL7-rc1)
> QEMU: qemu-2.0.1
> Guest: RHEL6.5
>
> # lspci -tv
> -[0000:00]-+-00.0  Intel Corporation 440FX - 82441FX PMC [Natoma]
>            +-01.0  Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
>            +-01.1  Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
>            +-01.2  Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II]
>            +-01.3  Intel Corporation 82371AB/EB/MB PIIX4 ACPI
>            +-02.0  Cirrus Logic GD 5446
>            +-03.0  Red Hat, Inc Virtio console
>            +-0b.0  Red Hat, Inc Virtio block device
>            +-0c.0  Red Hat, Inc Virtio block device
>            \-12.0  Red Hat, Inc Virtio network device
>
> # lspci -vvv
> 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
>         Subsystem: Red Hat, Inc Qemu virtual machine
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>         Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>
> 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
>         Subsystem: Red Hat, Inc Qemu virtual machine
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>         Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>
> 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] (prog-if 80 [Master])
>         Subsystem: Red Hat, Inc Qemu virtual machine
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Latency: 0
>         Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
>         Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable)
>         Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
>         Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable)
>         Region 4: I/O ports at c0e0 [size=16]
>         Kernel driver in use: ata_piix
>         Kernel modules: ata_generic, pata_acpi, ata_piix
>
> 00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01) (prog-if 00 [UHCI])
>         Subsystem: Red Hat, Inc Qemu virtual machine
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>         Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Latency: 0
>         Interrupt: pin D routed to IRQ 11
>         Region 4: I/O ports at c080 [size=32]
>         Kernel driver in use: uhci_hcd
>
> 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
>         Subsystem: Red Hat, Inc Qemu virtual machine
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Interrupt: pin A routed to IRQ 9
>         Kernel driver in use: piix4_smbus
>         Kernel modules: i2c-piix4
>
> 00:02.0 VGA compatible controller: Cirrus Logic GD 5446 (prog-if 00 [VGA controller])
>         Subsystem: Red Hat, Inc Device 1100
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>         Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Region 0: Memory at fc000000 (32-bit, prefetchable) [size=32M]
>         Region 1: Memory at febd0000 (32-bit, non-prefetchable) [size=4K]
>         Expansion ROM at febc0000 [disabled] [size=64K]
>         Kernel modules: cirrusfb
>
> 00:03.0 Communication controller: Red Hat, Inc Virtio console
>         Subsystem: Red Hat, Inc Device 0003
>         Physical Slot: 3
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Interrupt: pin A routed to IRQ 10
>         Region 0: I/O ports at c0a0 [size=32]
>         Region 1: Memory at febd1000 (32-bit, non-prefetchable) [size=4K]
>         Capabilities: [40] MSI-X: Enable- Count=4 Masked-
>                 Vector table: BAR=1 offset=00000000
>                 PBA: BAR=1 offset=00000800
>         Kernel driver in use: virtio-pci
>         Kernel modules: virtio_pci
>
> 00:0b.0 SCSI storage controller: Red Hat, Inc Virtio block device
>         Subsystem: Red Hat, Inc Device 0002
>         Physical Slot: 11
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Interrupt: pin A routed to IRQ 10
>         Region 0: I/O ports at c000 [size=64]
>         Region 1: Memory at febd2000 (32-bit, non-prefetchable) [size=4K]
>         Capabilities: [40] MSI-X: Enable+ Count=2 Masked-
>                 Vector table: BAR=1 offset=00000000
>                 PBA: BAR=1 offset=00000800
>         Kernel driver in use: virtio-pci
>         Kernel modules: virtio_pci
>
> 00:0c.0 SCSI storage controller: Red Hat, Inc Virtio block device
>         Subsystem: Red Hat, Inc Device 0002
>         Physical Slot: 12
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Interrupt: pin A routed to IRQ 11
>         Region 0: I/O ports at c040 [size=64]
>         Region 1: Memory at febd3000 (32-bit, non-prefetchable) [size=4K]
>         Capabilities: [40] MSI-X: Enable+ Count=2 Masked-
>                 Vector table: BAR=1 offset=00000000
>                 PBA: BAR=1 offset=00000800
>         Kernel driver in use: virtio-pci
>         Kernel modules: virtio_pci
>
> 00:12.0 Ethernet controller: Red Hat, Inc Virtio network device
>         Subsystem: Red Hat, Inc Device 0001
>         Physical Slot: 18
>         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Interrupt: pin A routed to IRQ 10
>         Region 0: I/O ports at c0c0 [size=32]
>         Region 1: Memory at febd4000 (32-bit, non-prefetchable) [size=4K]
>         Expansion ROM at feb80000 [disabled] [size=256K]
>         Capabilities: [40] MSI-X: Enable+ Count=3 Masked-
>                 Vector table: BAR=1 offset=00000000
>                 PBA: BAR=1 offset=00000800
>         Kernel driver in use: virtio-pci
>         Kernel modules: virtio_pci
>
> Thanks,
> Zhang Haoyu
>
>> Paolo
>
>

  reply	other threads:[~2014-09-07  9:47 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-29  7:45 [Qemu-devel] [question] virtio-blk performance degradation happened with virito-serial Zhang Haoyu
2014-08-29 14:38 ` Amit Shah
2014-09-01 12:38   ` [Qemu-devel] [question] virtio-blk performance degradationhappened " Zhang Haoyu
2014-09-01 12:46     ` Amit Shah
2014-09-01 12:57       ` [Qemu-devel] [question] virtio-blk performancedegradationhappened " Zhang Haoyu
2014-09-01 12:52     ` [Qemu-devel] [question] virtio-blk performance degradationhappened " Zhang Haoyu
2014-09-01 13:09       ` Christian Borntraeger
2014-09-01 13:12         ` Paolo Bonzini
2014-09-01 13:22           ` Christian Borntraeger
2014-09-01 13:29             ` Paolo Bonzini
2014-09-01 14:03               ` Christian Borntraeger
2014-09-01 14:15                 ` Christian Borntraeger
2014-09-04  7:56             ` [Qemu-devel] [question] virtio-blk performance degradationhappenedwith virito-serial Zhang Haoyu
2014-09-07  9:46               ` Zhang Haoyu [this message]
2014-09-11  6:11                 ` Amit Shah
2014-09-12  3:21                   ` [Qemu-devel] [question] virtio-blk performance degradation happened with virito-serial Zhang Haoyu
2014-09-12 12:38                     ` Stefan Hajnoczi
2014-09-13 17:22                       ` Max Reitz
2014-09-16 14:59                     ` Zhang Haoyu
2014-09-02  6:36       ` [Qemu-devel] [question] virtio-blk performance degradationhappened " Amit Shah
2014-09-02 18:05         ` Andrey Korolyov
2014-09-02 18:11           ` Amit Shah
2014-09-02 18:27             ` Andrey Korolyov
2014-09-04  2:20         ` [Qemu-devel] [question] virtio-blk performancedegradationhappened " Zhang Haoyu
2014-09-19  5:53         ` [Qemu-devel] [question] virtio-blk performance degradationhappened " Fam Zheng
2014-09-19 13:35           ` Paolo Bonzini
2014-09-22 13:23           ` [Qemu-devel] [question] virtio-blk performancedegradationhappened " Zhang Haoyu
2014-09-23  1:29             ` Fam Zheng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=540C2972.5070707@gmail.com \
    --to=ahzhanghaoyu@gmail.com \
    --cc=amit.shah@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=zhanghy@sangfor.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).