All of lore.kernel.org
 help / color / mirror / Atom feed
From: Riku Voipio <riku.voipio@iki.fi>
To: Alexander Graf <agraf@suse.de>
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 15:42:57 +0300	[thread overview]
Message-ID: <20140825124257.GA16926@afflict.kos.to> (raw)
In-Reply-To: <53FAFE92.9040001@suse.de>

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.

Riku

  parent reply	other threads:[~2014-08-25 12:43 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 [this message]
2014-08-25 12:46     ` Alexander Graf
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=20140825124257.GA16926@afflict.kos.to \
    --to=riku.voipio@iki.fi \
    --cc=agraf@suse.de \
    --cc=joakim.tjernlund@transmode.se \
    --cc=peter.maydell@linaro.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.