qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Re: [Qemu-devel] Following up questions related to QEMU and I/O Thread
@ 2019-03-04 17:33 Wei Li
  2019-03-05 17:29 ` Stefan Hajnoczi
  0 siblings, 1 reply; 47+ messages in thread
From: Wei Li @ 2019-03-04 17:33 UTC (permalink / raw)
  To: stefanha, qemu-devel

Hi Stefan and all,

 

I spent some time on getting familiar with QEMU and relevant concepts. My project is using QEMU 2.9 with virtio-scsi backend, and I am exploring proper way to improve the IOPS of my project.

 

Thanks @Stefan for the response and advices!

 

Could you please help review and clarify following questions:
While @Stefan mentioned about additional iothread object support of virtio-blk, Is the feature also supported by virtio-scsi? I am trying to exploring the perf multiple IO threads / per VM via followings:
QMP setup example to create 2 io threads in QEMU, one io thread per device:

(QEMU) object-add qom-type=iothread id=iothread0

(QEMU) object-add qom-type=iothread id=iothread1

 

(QEMU) device_add driver=virtio-scsi-pci id=test0 iothread=iothread0

(QEMU) device_add driver=virtio-scsi-pci id=test1 iothread=iothread1

 

(QEMU) device_add driver=scsi-block drive=none0 id=v0 bus=test0.0

(QEMU) device_add driver=scsi-block drive=none1 id=v1 bus=test1.0
You mentioned about the multi-queue devices feature, it seems like the multi-queue feature will help improve the IOPS of  single Device. Could you please provide more details?
What’s the current plan of support multi-queue device? Which release will include the support or it has already been included in any existing release newer than 2.9?
Is there any feature branch which I would get more details about the code and in progress status?
In addition, Someone posted related to multi-queue https://marc.info/?l=linux-virtualization&m=135583400026151&w=2, but it only measure the bandwidth, do we have any perf result about IOPS improvement of Multi-Queue approach?
 

Thanks again,

Wei

 

 

On 2/18/19, 2:24 AM, "Stefan Hajnoczi" <stefanha@redhat.com> wrote:

 

    On Thu, Feb 14, 2019 at 08:21:30AM -0800, Wei Li wrote:

    > I learnt that QEMU iothread architecture has one QEMU thread per vCPU and a dedicated event loop thread which is iothread, and I want to better understand whether there is any specific reason to have a single iothead instead of multiple iothreads?

    > Given that single iothread becomes a performance bottleneck in my project, if there any proper way to support multiple iothreads? E.g. have one iothread per volume attachment instead of single iothread per host?  But I am not quite sure whether it is feasible or not. Please let me know if you have any advices.

    

    Hi,

    Please send general questions to qemu-devel@nongnu.org and CC me in the

    future.  That way others can participate in the discussion and it will

    be archived so someone searching for the same question will find the

    answer in the future.

    

    QEMU supports additional IOThread objects:

    

      -object iothread,id=iothread0

      -device virtio-blk-pci,iothread=iothread0,drive=drive0

    

    This virtio-blk device will perform device emulation and I/O in

    iothread0 instead of the main loop thread.

    

    Currently only 1:1 device<->IOThread association is possible.  In the

    future 1:N should be possible and will allow multi-queue devices to

    achieve better performance.

    

    Stefan

 

^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2019-05-03 18:12 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-04 17:33 [Qemu-devel] Following up questions related to QEMU and I/O Thread Wei Li
2019-03-05 17:29 ` Stefan Hajnoczi
     [not found]   ` <2D7F11D0-4A02-4A0F-961D-854240376B17@oracle.com>
2019-04-01  9:07     ` Stefan Hajnoczi
2019-04-05 21:09       ` Wei Li
2019-04-05 21:09         ` Wei Li
2019-04-16 14:01         ` Paolo Bonzini
2019-04-16 14:01           ` Paolo Bonzini
2019-04-17  1:38           ` Wei Li
2019-04-17  1:38             ` Wei Li
2019-04-17 12:17             ` Paolo Bonzini
2019-04-17 12:17               ` Paolo Bonzini
2019-04-18  3:34               ` Wei Li
2019-04-18  3:34                 ` Wei Li
     [not found]       ` <CC372DF3-1AC6-46B5-98A5-21159497034A@oracle.com>
2019-04-15 17:34         ` Wei Li
2019-04-15 17:34           ` Wei Li
2019-04-15 23:23           ` Dongli Zhang
2019-04-15 23:23             ` Dongli Zhang
2019-04-16  9:20             ` Stefan Hajnoczi
2019-04-16  9:20               ` Stefan Hajnoczi
2019-04-17  1:42               ` Wei Li
2019-04-17  1:42                 ` Wei Li
     [not found]               ` <8E5AF770-69ED-4D44-8A25-B51344996D9E@oracle.com>
2019-04-23  4:21                 ` Wei Li
2019-04-23  4:21                   ` Wei Li
2019-04-23 12:04                   ` Stefan Hajnoczi
2019-04-23 12:04                     ` Stefan Hajnoczi
2019-04-26  8:14                     ` Paolo Bonzini
2019-04-26  8:14                       ` Paolo Bonzini
2019-04-26 23:02                       ` Wei Li
2019-04-26 23:02                         ` Wei Li
2019-04-27  4:24                         ` Paolo Bonzini
2019-04-27  4:24                           ` Paolo Bonzini
2019-04-29 17:49                           ` Wei Li
2019-04-29 17:49                             ` Wei Li
2019-04-29 13:40                       ` Stefan Hajnoczi
2019-04-29 13:40                         ` Stefan Hajnoczi
2019-04-29 17:56                         ` Wei Li
2019-04-29 17:56                           ` Wei Li
2019-05-01 16:36                           ` Stefan Hajnoczi
2019-05-01 16:36                             ` Stefan Hajnoczi
2019-05-03 16:21                             ` Wei Li
2019-05-03 16:21                               ` Wei Li
2019-05-03 18:05                               ` Paolo Bonzini
2019-05-03 18:05                                 ` Paolo Bonzini
2019-05-03 18:11                                 ` Wei Li
2019-05-03 18:11                                   ` Wei Li
2019-04-30 11:21                         ` Paolo Bonzini
2019-04-30 11:21                           ` Paolo Bonzini

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).