From: Anthony Liguori <aliguori@linux.vnet.ibm.com>
To: Avi Kivity <avi@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Christoph Hellwig <hch@lst.de>,
Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: [PATCH v2 6/7] qed: Read/write support
Date: Wed, 13 Oct 2010 10:42:22 -0500 [thread overview]
Message-ID: <4CB5D35E.9040103@linux.vnet.ibm.com> (raw)
In-Reply-To: <4CB5CB69.3000103@redhat.com>
On 10/13/2010 10:08 AM, Avi Kivity wrote:
> On 10/13/2010 04:53 PM, Anthony Liguori wrote:
>> On 10/13/2010 09:16 AM, Avi Kivity wrote:
>>> On 10/13/2010 04:11 PM, Anthony Liguori wrote:
>>>>> Why would you ever update the header, apart from relocating L1 for
>>>>> some reason?
>>>>
>>>>
>>>> To update the L1/L2 tables clean bit. That's what prevents a check
>>>> in the normal case where you have a clean shutdown.
>>>
>>> I see - so you wouldn't update it every allocation, only when the
>>> disk has been quiet for a while.
>>
>> Right, the current plan is to flush the header dirty bit on shutdown
>> or whenever there is an explicit flush of the device. Current that
>> is caused by either a guest-initiated flush or a L1 update.
>
> That does add an extra write (and a new write+flush later to mark the
> header dirty again when you start allocating). I'd drop it and only
> use the timer.
>
> in fact, it adds an extra flush too. The sequence
>
> 1 L1 update
> 2 mark clean
> 3 flush
>
> is unsafe since you can crash between 2 and 3, ad only 2 makes it. So
> I'd do something like
You've got the order wrong.
1. L1 update
2. flush()
3. mark clean
If (3) doesn't make it to disk, that's okay. It just causes an extra scan.
> 1 opportunistic flush (for whatever reason)
> 2 set timer
> 3 no intervening metadata changes
> 4 mark clean
> 5 no intervening metadata changes
> 6 mark dirty
> 7 flush
> 8 metadata changes
Not sure I see why we set the timer in step 2 as opposed to:
0 clear scheduled flush (if necessary)
1 opportunistic flush (for whatever reason)
2 mark clean
3 no intervening metadata changes
4 mark dirty
5 flush
6 schedule flush (in 5 minutes)
7 metadata changes
Which is now recorded at http://wiki.qemu.org/Features/QED/ScanAvoidance
so we can keep track of this.
Regards,
Anthony Liguori
>
>
next prev parent reply other threads:[~2010-10-13 15:48 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-08 15:48 [Qemu-devel] [PATCH v2 0/7] qed: Add QEMU Enhanced Disk format Stefan Hajnoczi
2010-10-08 15:48 ` [Qemu-devel] [PATCH v2 1/7] qcow2: Make get_bits_from_size() common Stefan Hajnoczi
2010-10-08 18:01 ` [Qemu-devel] " Anthony Liguori
2010-10-08 15:48 ` [Qemu-devel] [PATCH v2 2/7] cutils: Add bytes_to_str() to format byte values Stefan Hajnoczi
2010-10-11 11:09 ` [Qemu-devel] " Kevin Wolf
2010-10-13 9:15 ` [Qemu-devel] " Markus Armbruster
2010-10-13 9:28 ` Kevin Wolf
2010-10-13 10:58 ` Stefan Hajnoczi
2010-10-13 10:25 ` [Qemu-devel] " Avi Kivity
2010-10-08 15:48 ` [Qemu-devel] [PATCH v2 3/7] docs: Add QED image format specification Stefan Hajnoczi
2010-10-10 9:20 ` [Qemu-devel] " Avi Kivity
2010-10-11 10:09 ` Stefan Hajnoczi
2010-10-11 13:04 ` Avi Kivity
2010-10-11 13:42 ` Stefan Hajnoczi
2010-10-11 13:44 ` Avi Kivity
2010-10-11 14:06 ` Stefan Hajnoczi
2010-10-11 14:12 ` Avi Kivity
2010-10-11 15:02 ` Anthony Liguori
2010-10-11 15:24 ` Avi Kivity
2010-10-11 15:41 ` Anthony Liguori
2010-10-11 15:47 ` Avi Kivity
2010-10-11 14:54 ` Anthony Liguori
2010-10-11 14:58 ` Avi Kivity
2010-10-11 15:49 ` Anthony Liguori
2010-10-11 16:02 ` Avi Kivity
2010-10-11 16:10 ` Anthony Liguori
2010-10-12 10:25 ` Avi Kivity
2010-10-11 13:58 ` Kevin Wolf
2010-10-11 15:30 ` Stefan Hajnoczi
2010-10-11 15:39 ` Avi Kivity
2010-10-11 15:46 ` Stefan Hajnoczi
2010-10-11 16:18 ` Anthony Liguori
2010-10-11 17:14 ` Anthony Liguori
2010-10-12 8:07 ` Kevin Wolf
2010-10-12 13:16 ` Stefan Hajnoczi
2010-10-12 13:32 ` Anthony Liguori
2010-10-11 15:50 ` Kevin Wolf
2010-10-08 15:48 ` [Qemu-devel] [PATCH v2 4/7] qed: Add QEMU Enhanced Disk image format Stefan Hajnoczi
2010-10-11 15:16 ` [Qemu-devel] " Kevin Wolf
2010-10-08 15:48 ` [Qemu-devel] [PATCH v2 5/7] qed: Table, L2 cache, and cluster functions Stefan Hajnoczi
2010-10-12 14:44 ` [Qemu-devel] " Kevin Wolf
2010-10-13 13:41 ` Stefan Hajnoczi
2010-10-08 15:48 ` [Qemu-devel] [PATCH v2 6/7] qed: Read/write support Stefan Hajnoczi
2010-10-10 9:10 ` [Qemu-devel] " Avi Kivity
2010-10-11 10:37 ` Stefan Hajnoczi
2010-10-11 13:10 ` Avi Kivity
2010-10-11 13:55 ` Stefan Hajnoczi
2010-10-11 14:57 ` Anthony Liguori
2010-10-12 15:08 ` Kevin Wolf
2010-10-12 15:22 ` Anthony Liguori
2010-10-12 15:39 ` Kevin Wolf
2010-10-12 15:59 ` Stefan Hajnoczi
2010-10-12 16:16 ` Anthony Liguori
2010-10-12 16:21 ` Avi Kivity
2010-10-13 12:13 ` Stefan Hajnoczi
2010-10-13 13:07 ` Kevin Wolf
2010-10-13 13:24 ` Anthony Liguori
2010-10-13 13:50 ` Avi Kivity
2010-10-13 14:07 ` Stefan Hajnoczi
2010-10-13 14:08 ` Anthony Liguori
2010-10-13 14:10 ` Avi Kivity
2010-10-13 14:11 ` Anthony Liguori
2010-10-13 14:16 ` Avi Kivity
2010-10-13 14:53 ` Anthony Liguori
2010-10-13 15:08 ` Avi Kivity
2010-10-13 15:42 ` Anthony Liguori [this message]
2010-10-14 11:06 ` Stefan Hajnoczi
2010-10-13 14:10 ` Anthony Liguori
2010-10-08 15:48 ` [Qemu-devel] [PATCH v2 7/7] qed: Consistency check support Stefan Hajnoczi
2010-10-11 13:21 ` [Qemu-devel] Re: [PATCH v2 0/7] qed: Add QEMU Enhanced Disk format Kevin Wolf
2010-10-11 15:37 ` Stefan Hajnoczi
2010-10-16 7:51 ` [Qemu-devel] " Stefan Hajnoczi
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=4CB5D35E.9040103@linux.vnet.ibm.com \
--to=aliguori@linux.vnet.ibm.com \
--cc=avi@redhat.com \
--cc=hch@lst.de \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.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.