From: "Zhang Haoyu" <zhanghy@sangfor.com>
To: "Fam Zheng" <famz@redhat.com>, "Amit Shah" <amit.shah@redhat.com>
Cc: "qemu-devel" <qemu-devel@nongnu.org>, "kvm" <kvm@vger.kernel.org>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [question] virtio-blk performancedegradationhappened with virito-serial
Date: Mon, 22 Sep 2014 21:23:24 +0800 [thread overview]
Message-ID: <201409222123220404614@sangfor.com> (raw)
In-Reply-To: 20140919055333.GA6889@fam-t430.nay.redhat.com
>> > >>> Hi, all
>> > >>>
>> > >>> I start a VM with virtio-serial (default ports number: 31), and found that virtio-blk performance degradation happened, about 25%, this problem can be reproduced 100%.
>> > >>> without virtio-serial:
>> > >>> 4k-read-random 1186 IOPS
>> > >>> with virtio-serial:
>> > >>> 4k-read-random 871 IOPS
>> > >>>
>> > >>> but if use max_ports=2 option to limit the max number of virio-serial ports, then the IO performance degradation is not so serious, about 5%.
>> > >>>
>> > >>> And, ide performance degradation does not happen with virtio-serial.
>> > >>
>> > >>Pretty sure it's related to MSI vectors in use. It's possible that
>> > >>the virtio-serial device takes up all the avl vectors in the guests,
>> > >>leaving old-style irqs for the virtio-blk device.
>> > >>
>> > >I don't think so,
>> > >I use iometer to test 64k-read(or write)-sequence case, if I disable the virtio-serial dynamically via device manager->virtio-serial => disable,
>> > >then the performance get promotion about 25% immediately, then I re-enable the virtio-serial via device manager->virtio-serial => enable,
>> > >the performance got back again, very obvious.
>> > add comments:
>> > Although the virtio-serial is enabled, I don't use it at all, the degradation still happened.
>>
>> Using the vectors= option as mentioned below, you can restrict the
>> number of MSI vectors the virtio-serial device gets. You can then
>> confirm whether it's MSI that's related to these issues.
>
>Amit,
>
>It's related to the big number of ioeventfds used in virtio-serial-pci. With
>virtio-serial-pci's ioeventfd=off, the performance is not affected no matter if
>guest initializes it or not.
>
>In my test, there are 12 fds to poll in qemu_poll_ns before loading guest
>virtio_console.ko, whereas 76 once modprobe virtio_console.
>
>Looks like the ppoll takes more time to poll more fds.
>
>Some trace data with systemtap:
>
>12 fds:
>
>time rel_time symbol
>15 (+1) qemu_poll_ns [enter]
>18 (+3) qemu_poll_ns [return]
>
>76 fd:
>
>12 (+2) qemu_poll_ns [enter]
>18 (+6) qemu_poll_ns [return]
>
>I haven't looked at virtio-serial code, I'm not sure if we should reduce the
>number of ioeventfds in virtio-serial-pci or focus on lower level efficiency.
>
Does ioeventfd=off hamper the performance of virtio-serial?
In my opinion, virtio-serial's use scenario is not so high throughput rate,
so ioventfd=off has slight impaction on the performance.
Thanks,
Zhang Haoyu
>Haven't compared with g_poll but I think the underlying syscall should be the
>same.
>
>Any ideas?
>
>Fam
>
>
>>
>> > >So, I think it has no business with legacy interrupt mode, right?
>> > >
>> > >I am going to observe the difference of perf top data on qemu and perf kvm stat data when disable/enable virtio-serial in guest,
>> > >and the difference of perf top data on guest when disable/enable virtio-serial in guest,
>> > >any ideas?
>> > >
>> > >Thanks,
>> > >Zhang Haoyu
>> > >>If you restrict the number of vectors the virtio-serial device gets
>> > >>(using the -device virtio-serial-pci,vectors= param), does that make
>> > >>things better for you?
>>
>>
>>
>> Amit
next prev parent reply other threads:[~2014-09-22 13:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-29 7:45 [question] virtio-blk performance degradation happened with virito-serial Zhang Haoyu
2014-08-29 14:38 ` [Qemu-devel] " 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
[not found] ` <201409041556259426013@sangfor.com>
2014-09-07 9:46 ` [Qemu-devel] [question] virtio-blk performance degradationhappenedwith virito-serial Zhang Haoyu
2014-09-11 6:11 ` Amit Shah
2014-09-12 3:21 ` [question] virtio-blk performance degradation happened with virito-serial Zhang Haoyu
2014-09-12 12:38 ` [Qemu-devel] " 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 ` [Qemu-devel] " 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 ` Zhang Haoyu [this message]
2014-09-23 1:29 ` [Qemu-devel] [question] virtio-blk performancedegradationhappened " 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=201409222123220404614@sangfor.com \
--to=zhanghy@sangfor.com \
--cc=amit.shah@redhat.com \
--cc=famz@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/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