From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Cc: Samuel Thibault <samuel.thibault@eu.citrix.com>
Subject: Re: [Qemu-devel] [PATCH 2/2 v2] Direct IDE I/O
Date: Mon, 03 Dec 2007 12:08:19 -0600 [thread overview]
Message-ID: <47544613.3050309@codemonkey.ws> (raw)
In-Reply-To: <20071203174931.GA13614@shareable.org>
Jamie Lokier wrote:
> Paul Brook wrote:
>
>> On Monday 03 December 2007, Samuel Thibault wrote:
>>
>>> Anthony Liguori, le Mon 03 Dec 2007 09:54:47 -0600, a écrit :
>>>
>>>> Have you done any performance testing? Buffered IO should absolutely
>>>> beat direct IO simply because buffered IO allows writes to complete
>>>> before they actually hit disk.
>>>>
>>> Since qemu can use the aio interface, that shouldn't matter.
>>>
>> Only if the emulated hardware and guest OS support multiple concurrent
>> commands. IDE supports async operation, but not concurrent commmands. In
>> practice this means you only get full performance if you're using the SCSI
>> emulation.
>>
>
> With the IDE emulation, when the emulated "disk write cache" flag is
> on it may be reasonable to report a write as completed when the AIO is
> dispatched, without waiting for the AIO to complete.
>
> An IDE flush cache command would wait for all outstanding write AIOs
> to complete, and then issue a flush cache (fdatasync) to the real
> device before reporting it has completed.
>
> That's roughly equivalent to what an IDE disk with write caching does,
> and it would provide exactly the guarantees for safe storage to the
> real physical medium that a journalling filesystem or database in the
> guest requires.
>
> If a guest doesn't use journalling with IDE write cache safely
> (e.g. 2.4 Linux and earler), it can simply turn off the IDE "disk
> write cache" flag, which is what it has to do on a real physical disk
> too.
>
> Terminating the qemu process abruptly might cancel some AIOs, but even
> that is ok, as it's equivalent to pulling the power on a real disk
> with uncommitted cached writes.
>
Except that in an enterprise environment, you typically have battery
backed disk cache. It really doesn't matter though b/c in QEMU today,
submitting the request blocks until it's completed anyway (which is
nearly instant anyway since I/O is buffered).
Regards,
Anthony Liguori
> -- Jamie
>
>
>
>
next prev parent reply other threads:[~2007-12-03 18:08 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-03 10:09 [Qemu-devel] [PATCH 0/2 v2] Open disk images with O_DIRECT Laurent Vivier
2007-12-03 10:09 ` [Qemu-devel] [PATCH 1/2 v2] Add "cache" parameter to "-drive" Laurent Vivier
2007-12-03 10:09 ` [Qemu-devel] [PATCH 2/2 v2] Direct IDE I/O Laurent Vivier
2007-12-03 10:23 ` Fabrice Bellard
2007-12-03 10:30 ` Laurent Vivier
2007-12-03 11:40 ` Markus Hitter
2007-12-03 15:39 ` Paul Brook
2007-12-03 19:26 ` Samuel Thibault
2007-12-03 15:54 ` Anthony Liguori
2007-12-03 17:08 ` Samuel Thibault
2007-12-03 17:17 ` Paul Brook
2007-12-03 17:49 ` Jamie Lokier
2007-12-03 18:08 ` Anthony Liguori [this message]
2007-12-03 18:40 ` Jamie Lokier
2007-12-03 18:06 ` Anthony Liguori
2007-12-03 19:10 ` Laurent Vivier
2007-12-03 19:16 ` Paul Brook
2007-12-03 21:36 ` Anthony Liguori
2007-12-04 12:49 ` Gerd Hoffmann
2007-12-04 13:02 ` Laurent Vivier
2007-12-04 8:13 ` Laurent Vivier
2007-12-03 21:13 ` Gerd Hoffmann
2007-12-03 21:23 ` Samuel Thibault
2007-12-03 21:38 ` Anthony Liguori
2007-12-04 13:21 ` Gerd Hoffmann
2007-12-04 15:03 ` Anthony Liguori
2007-12-04 16:18 ` Gerd Hoffmann
2007-12-05 14:47 ` Anthony Liguori
2007-12-03 19:14 ` Paul Brook
2007-12-03 19:00 ` Laurent Vivier
2007-12-03 11:14 ` Johannes Schindelin
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=47544613.3050309@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
--cc=samuel.thibault@eu.citrix.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).