From: Alexander Graf <agraf@suse.de>
To: Riku Voipio <riku.voipio@iki.fi>
Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org,
joakim.tjernlund@transmode.se
Subject: Re: [Qemu-devel] linux-user: enabling binfmt P flag
Date: Mon, 25 Aug 2014 14:46:21 +0200 [thread overview]
Message-ID: <53FB301D.9010008@suse.de> (raw)
In-Reply-To: <20140825124257.GA16926@afflict.kos.to>
On 25.08.14 14:42, Riku Voipio wrote:
> On Mon, Aug 25, 2014 at 11:14:58AM +0200, Alexander Graf wrote:
>>
>>
>> On 25.08.14 11:09, Riku Voipio wrote:
>>> Hi,
>>>
>>> After weekend, I think the solution to using the P flag is to
>>> go back to Joakim's original patch:
>>>
>>> http://lists.gnu.org/archive/html/qemu-devel/2014-07/msg02269.html
>>>
>>> With this, we get:
>>>
>>> If you continue to use qemu-x-static in your binfmt_misc registration,
>>> nothing changes - both old and new qemu work using the old binfmt
>>> registration.
>>>
>>> If you rename the binary qemu-x-binfmt, you need to update the
>>> binfmt_misc register to have P flag and new binary - you get correct
>>> argv with new qemu. Any old qemu you still have around, will stop
>>> working. But with "file not found" error rather than obscurely eating
>>> one of the arguments and running regardless.
>>>
>>> This leaves us with one case - people who are used to running
>>> qemu-x-static ./binary to test single binaries. Distro's will need
>>> leave a symlink from qemu-x-binfmt qemu-x-static. The "-binfmt" string
>>> check doesn't trigger, and qemu works as before.
>>>
>>> The key point: this way nobody's working setup will break, unless they
>>> update binfmt registration. As long as the change is done by users
>>> them self (I need correct argv0 -> I will update binfmt), there is very
>>> little surprise for anyone.
>>>
>>> There will be some fallout once *distributions* change the binfmt - users
>>> will notice their existing qemu chroots stop working with a "file not
>>> found" error for any binary they try to run.
>>>
>>> If we find even this breakage too much, I'm not sure this can be fixed.
>
>> I would very much prefer if we could stick with only a single binary.
>> And yes, switching semantics when you use binfmt wrappers will hurt for
>> a short while, but after that everyone will have their setups changed
>> and we're safe for the future.
>
> I don't really the unpredictable nature of the breakage. Take
> $ rm a b c
>
> With P flag: /bin/rm rm a b c
> Without P flag: /bin/rm a b c
>
> If we use old qemu with P flag: qemu will run /bin/rm with argv: "/bin/rm rm a b c"
> -> tries to delete "rm"
> If we use new qemu without P flag, qemu will run /bin/rm with argv: "a b c"
> -> fails to delete "a"
>
> This is the black magic errors that drive users nuts when they try to debug what
> is happening... "File not found" when the qemu binary is not in the
> right place is confusing enough.
Yes, but is anyone actually using the "P" flag? We've never advertised
anywhere that QEMU supports it.
Maybe we should just make the next version be 3.0 and declare it a major
ABI breakage ;).
Alex
next prev parent reply other threads:[~2014-08-25 12:46 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-25 9:09 [Qemu-devel] linux-user: enabling binfmt P flag Riku Voipio
2014-08-25 9:14 ` Alexander Graf
2014-08-25 11:10 ` Joakim Tjernlund
2014-08-25 12:42 ` Riku Voipio
2014-08-25 12:46 ` Alexander Graf [this message]
2014-08-25 13:18 ` Riku Voipio
2014-08-25 13:20 ` Laurent Vivier
2014-08-25 13:39 ` Joakim Tjernlund
2014-08-25 13:55 ` Riku Voipio
2014-08-25 14:30 ` Joakim Tjernlund
2014-08-25 14:49 ` Riku Voipio
2014-08-25 15:02 ` Joakim Tjernlund
[not found] ` <OF93B0417A.866825C3-ONC1257D3F.005235F4-C1257D3F.0052A534@LocalDomain>
2014-08-28 16:06 ` Joakim Tjernlund
2014-08-29 18:01 ` Peter Maydell
2014-08-30 8:28 ` Joakim Tjernlund
2014-09-01 8:51 ` Paolo Bonzini
2014-09-01 9:12 ` Peter Maydell
2014-09-01 9:28 ` Paolo Bonzini
2014-09-01 9:32 ` Peter Maydell
2014-09-01 9:51 ` Riku Voipio
2014-09-17 15:34 ` Joakim Tjernlund
2014-09-17 16:12 ` Peter Maydell
2014-09-17 19:25 ` Paolo Bonzini
2014-09-17 19:31 ` Peter Maydell
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=53FB301D.9010008@suse.de \
--to=agraf@suse.de \
--cc=joakim.tjernlund@transmode.se \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@iki.fi \
/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).