All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Ian Pratt <Ian.Pratt@cl.cam.ac.uk>
Cc: Keir Fraser <keir@xensource.com>,
	xen-devel@lists.xensource.com, "Han,
	Weidong" <weidong.han@intel.com>
Subject: Re: [Patch] Buffer disk I/O requests
Date: Thu, 24 May 2007 15:25:48 -0500	[thread overview]
Message-ID: <4655F4CC.60706@us.ibm.com> (raw)
In-Reply-To: <8A87A9A84C201449A0C56B728ACF491E0BA6A9@liverpoolst.ad.cl.cam.ac.uk>

Ian Pratt wrote:
>>> How does it compare to just using the SCSI HBA support that got
>>> checked in a few days ago (in the qemu-dm 0.9.0 upgrade)?
>> In our test,  the performance of SCSI HBA is better than our patch
>> performance in qemu 0.9.0, 
> 
> Thanks for running the tests.
> 
>> But we find the total I/O preformance
>> downgrade a lot after upgrade to qemu 0.9.0. We suspect there may be
>> some issues in qemu 0.9.0.
> 
> Please can you explain in more detail. 

IDE emulation is largely bound by how many requests you can get our per 
second.  In 0.8.2, DMA completion happened immediately after the IO 
request finished.  In 0.9.0, DMA completion is triggered by a AIO 
completion of the event.  This implies a trip through the main event loop.

By default, QEMU only allows glibc AIO to use a single thread which 
basically turns all AIO requests into synchronous requests.  You'll get 
some performance back by changing that to allow multiple threads.

I haven't looked at the QEMU 0.9.0 port just yet but I suspect that's 
the problem since I've seen this behavior in normal QEMU.

Regards,

Anthony Liguori

>>> If we're going to add support for enabling buffering of ioport
>>> accesses beyond what we currently special case for the VGA it should
>>> be via a generic interface used by qemu to register sets of ports
>>> with xen and configure how they will be handled.
>> Yes, if there are many these buffering cases, using a generic
> interface
>> is a final solution.
> 
> I'd like to see this generic mechanism introduced for more than just
> whether writes are buffered or not -- it would be very useful to
> register ranges of port or mmio space for handling in different
> fashions, e.g.:
>  * read: forward to handler domain X channel Y
>  * read: read as zeros
>  * write: forward to handler domain X channel Y (and flush any buffered)
>  * write: buffer and forward to domain X channel Y
>  * write: ignore writes
>  
> These hooks would also be very useful for adding debugging/tracing. I
> severely dislike our current  approach of forwarding anything that
> doesn't get picked up in Xen to a single qemu-dm rather than registering
> explicit ranges.
> 
> Best,
> Ian
> 
> 
> 
>  
> 
> 
> 
>  

      parent reply	other threads:[~2007-05-24 20:25 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-14  9:36 [Patch] Buffer disk I/O requests Han, Weidong
2007-05-14 11:03 ` Han, Weidong
2007-05-14 12:24 ` Keir Fraser
2007-05-14 12:52   ` Han, Weidong
2007-05-14 13:02     ` Ian Pratt
2007-05-18  3:14       ` Han, Weidong
2007-05-18  9:37         ` Ian Pratt
2007-05-20 13:57           ` Han, Weidong
2007-05-20 17:14             ` Keir Fraser
2007-05-24 20:25           ` Anthony Liguori [this message]

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=4655F4CC.60706@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=Ian.Pratt@cl.cam.ac.uk \
    --cc=keir@xensource.com \
    --cc=weidong.han@intel.com \
    --cc=xen-devel@lists.xensource.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.