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