From: John Snow <jsnow@redhat.com>
To: Peter Crosthwaite <crosthwaitepeter@gmail.com>,
Kevin Wolf <kwolf@redhat.com>
Cc: Sai Pavan Boddu <saipava@xilinx.com>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>,
stefanha@redhat.com,
Peter Crosthwaite <crosthwaite.peter@gmail.com>
Subject: Re: [Qemu-devel] [RFC] Block device size rounding
Date: Tue, 13 Oct 2015 11:51:01 -0400 [thread overview]
Message-ID: <561D2865.3000309@redhat.com> (raw)
In-Reply-To: <CAPokK=pM6POKsMTAGLvoySGqVsH0A1aw2VuwcNeiQZeOXzqobA@mail.gmail.com>
On 10/13/2015 11:30 AM, Peter Crosthwaite wrote:
> On Tue, Oct 13, 2015 at 2:14 AM, Kevin Wolf <kwolf@redhat.com> wrote:
>> Am 12.10.2015 um 20:26 hat John Snow geschrieben:
>>>
>>>
>>> On 10/12/2015 02:09 PM, Peter Crosthwaite wrote:
>>>> On Mon, Oct 12, 2015 at 9:26 AM, Eric Blake <eblake@redhat.com> wrote:
>>>>> On 10/12/2015 09:56 AM, John Snow wrote:
>>>>>
>>>>>>> What is the correct action here though? If the file is writeable should
>>>>>>> we just allow the device to extend its size? Is that possible already?
>>>>>>> Just zero-pad read-only?
>>>>>>>
>>>>>>
>>>>>> Read-only seems like an easy case of append zeroes.
>>>>>
>>>>> Yes, allowing read-only with append-zero behavior seems sane.
>>>>>
>>>>>>
>>>>>> Read-write ... well, we can't write-protect just half of a 512k block.
>>>>>
>>>>>> Probably just forcibly increasing the size on RW or refusing to use the
>>>>>> file altogether are probably the sane deterministic things we want.
>>>>>
>>>>> I'd lean towards outright rejection if the file size isn't up to snuff
>>>>> for use as read-write. Forcibly increasing the size (done
>>>>> unconditionally) still feels like magic, and may not be possible if the
>>>>> size is due to something backed by a block device rather than a file.
>>
>> Agreed, let's just reject the image for r/w. Image resize should always
>> been an explicit action invoked by the user, not a side effect of using
>> the image with a specific device.
>>
>>>> Inability to extend is easily detectable and can become a failure mode
>>>> in it's own right. If we cant extend the file perhaps we can just
>>>> LOG_UNIMP the data writes? Having to include in your user instructions
>>>> "dd your already-on-SATA file system to this container just so it can
>>>> work for SD" is a pain.
>>>>
>>>> Regards,
>>>> Peter
>>>>
>>>
>>> Fits within my "Always extend the size" answer. Failing to do so is a
>>> good cause to fail.
>>>
>>> I'm not sure if this is the sort of thing that might require an extra
>>> flag or option for compatibility reasons or not, though. If there is no
>>> precedent for QEMU resizing a block device to make it compatible with a
>>> particular device model, it's probably reasonable that no management
>>> tool is expecting this to happen automatically either.
>>>
>>> Then again, it's still annoying that the current default is definitely
>>> broken.
>>
>> That's not so clear to me. Strictly speaking, this is really a user
>> error because the user passed an image that isn't suitable for the
>> device. All we're discussing is handling this user error friendlier.
>>
>> Maybe we should take a step back: What's the specific use case here,
>> i.e. where does the misaligned image come from and what is it used for?
>
> An ext filesystem image built by the Yocto build system. It is passed
> straight to QEMU as a raw image. The user does not create disk images,
> they are done by the build system. Note that the build system is not
> QEMU specific, it is designed to target either QEMU or be used for
> some form of real-hardware deployment so padding there is
> inappropriate.
>
>> I assume this is not an image created with qemu-img, because then the
>
> I am not using qemu-img at all.
>
>> obvious options would already result in an aligned size.
>>
>
> Maybe. What is the alignment of qemu-img? Note this requires 512K
> alignment, which is kinda huge.
>
>>> I think this is going to boil down into an interface-and-expectations
>>> argument. I am otherwise in favor of just forcing the resize whenever
>>> possible and failing when it isn't.
>>
>> I'm strongly objecting to any automagic resizing of images.
>>
>
> Can we LOG_UNIMP writes to the missing sectors? The the user can RW to
> the in-band sectors which should contain the limit of a pre-existing
> filesystem.
>
This sounds potentially dangerous. Do we know for sure any data written
here is unimportant?
If it's all zeroes, we can probably guess it's unimportant. As soon as
any non-zero data lands up in this extension range... how do we assert
that this is garbage?
I don't think we can...
> Regards,
> Peter
>
>> Kevin
next prev parent reply other threads:[~2015-10-13 15:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-10 3:01 [Qemu-devel] [RFC] Block device size rounding Peter Crosthwaite
2015-10-12 15:56 ` John Snow
2015-10-12 16:26 ` Eric Blake
2015-10-12 18:09 ` Peter Crosthwaite
2015-10-12 18:26 ` John Snow
2015-10-13 7:16 ` Markus Armbruster
2015-10-13 9:14 ` Kevin Wolf
2015-10-13 15:30 ` Peter Crosthwaite
2015-10-13 15:51 ` John Snow [this message]
2015-10-14 8:36 ` Kevin Wolf
2015-10-16 17:04 ` John Snow
2015-10-16 18:10 ` Peter Crosthwaite
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=561D2865.3000309@redhat.com \
--to=jsnow@redhat.com \
--cc=crosthwaite.peter@gmail.com \
--cc=crosthwaitepeter@gmail.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=saipava@xilinx.com \
--cc=stefanha@redhat.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).