From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: alex.bennee@linaro.org, lersek@redhat.com, philmd@redhat.com,
kwolf@redhat.com, mreitz@redhat.com, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [RFC PATCH v6 2/4] hw/block: Pad undersized read-only images with 0xFF
Date: Thu, 07 Mar 2019 11:05:41 +0100 [thread overview]
Message-ID: <87h8cft2x6.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20190307093723.655-3-armbru@redhat.com> (Markus Armbruster's message of "Thu, 7 Mar 2019 10:37:21 +0100")
Markus Armbruster <armbru@redhat.com> writes:
> From: Alex Bennée <alex.bennee@linaro.org>
>
> We reject undersized images. As of the previous commit, even with a
> decent error message. Still, this is a potentially confusing
> stumbling block when you move from using -bios to using -drive
> if=pflash,file=blob,format=raw,readonly for loading your firmware
> code. To mitigate that we automatically pad in the read-only case and
> warn the user when we have performed magic to enable things to Just
> Work (tm).
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
I think this convenience feature is a bad idea, and this patch should
not be applied. Here are my reasons.
1. As I explained in my disccussion of v5[*], there is no single true
way to pad. This patch pads with 0xFF. When working with physical
devices, you'd sometimes pad that way, but at other times, you'd pad
differently.
2. Except this patch doesn't *actually* pad with 0xFF. The block layer
silently pads with zeros up to the next multiple of 512. Evidence:
$ yes | dd of=4090b.img bs=1 count=4090
4090+0 records in
4090+0 records out
4090 bytes (4.1 kB, 4.0 KiB) copied, 0.0186459 s, 219 kB/s
$ qemu-io -f raw -c 'read -v 4000 96' 4090b.img
00000fa0: 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a y.y.y.y.y.y.y.y.
00000fb0: 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a y.y.y.y.y.y.y.y.
00000fc0: 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a y.y.y.y.y.y.y.y.
00000fd0: 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a y.y.y.y.y.y.y.y.
00000fe0: 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a y.y.y.y.y.y.y.y.
00000ff0: 79 0a 79 0a 79 0a 79 0a 79 0a 00 00 00 00 00 00 y.y.y.y.y.......
read 96/96 bytes at offset 4000
96 bytes, 1 ops; 0.0001 sec (694.444 KiB/sec and 7407.4074 ops/sec)
This patch then pads some more with 0xFF to the flash memory size.
Because of that the way the magic padding works makes no sense, to be
frank. Going back to v3's zero padding would at least be explainable
without blushing.
I consider the block layer's padding a misfeature here, but right now
we got to play the hand we've been dealt.
3. Convenience magic has bitten us in the posterior so many times. Just
say no unless there's a really compelling use case. Where's the use
case for this one? We've rejected undersized images for ages, and
nobody complained. Why add convenience magic now?
[*] Message-ID: <87r2bl5oah.fsf@dusky.pond.sub.org>
https://lists.nongnu.org/archive/html/qemu-devel/2019-03/msg01115.html
next prev parent reply other threads:[~2019-03-07 10:05 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-07 9:37 [Qemu-devel] [RFC PATCH v6 0/4] hw/block: better reporting on pflash backing file mismatch Markus Armbruster
2019-03-07 9:37 ` [Qemu-devel] [RFC PATCH v6 1/4] " Markus Armbruster
2019-03-07 15:05 ` Alex Bennée
2019-03-07 17:14 ` Markus Armbruster
2019-03-07 9:37 ` [Qemu-devel] [RFC PATCH v6 2/4] hw/block: Pad undersized read-only images with 0xFF Markus Armbruster
2019-03-07 10:05 ` Markus Armbruster [this message]
2019-03-07 14:55 ` Kevin Wolf
2019-03-07 17:55 ` Eric Blake
2019-03-07 17:57 ` Markus Armbruster
2019-03-07 18:01 ` Laszlo Ersek
2019-03-07 9:37 ` [Qemu-devel] [RFC PATCH v6 3/4] fixup! hw/block: better reporting on pflash backing file mismatch Markus Armbruster
2019-03-07 9:37 ` [Qemu-devel] [RFC PATCH v6 4/4] fixup! hw/block: Pad undersized read-only images with 0xFF Markus Armbruster
2019-03-07 9:44 ` [Qemu-devel] [RFC PATCH v6 0/4] hw/block: better reporting on pflash backing file mismatch no-reply
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=87h8cft2x6.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=kwolf@redhat.com \
--cc=lersek@redhat.com \
--cc=mreitz@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/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.