qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Josh Kunz via Qemu-devel <qemu-devel@nongnu.org>
To: Laurent Vivier <laurent@vivier.eu>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	qemu-trivial@nongnu.org, riku.voipio@iki.fi,
	qemu-devel@nongnu.org,
	Aleksandar Markovic <aleksandar.markovic@rt-rk.com>,
	marlies.ruck@gmail.com,
	Aleksandar Markovic <amarkovic@wavecomp.com>,
	milos.stojanovic@rt-rk.com, Shu-Chun Weng <scw@google.com>
Subject: Re: [Qemu-devel] patch to swap SIGRTMIN + 1 and SIGRTMAX - 1
Date: Mon, 26 Aug 2019 14:10:46 -0700	[thread overview]
Message-ID: <CADgy-2va2xVmO_a1gDwg+zkpNcLJTW5D1j=2kk1TnRMxyPaLMg@mail.gmail.com> (raw)
In-Reply-To: <abf5f3b6-7c05-a85b-051f-9905b8f50041@vivier.eu>

On Wed, Aug 21, 2019 at 2:28 AM Laurent Vivier <laurent@vivier.eu> wrote:

> Le 19/08/2019 à 23:46, Josh Kunz via Qemu-devel a écrit :
> > Hi all,
> >
> > I have also experienced issues with SIGRTMIN + 1, and am interested in
> > moving this patch forwards. Anything I can do here to help? Would the
> > maintainers prefer myself or Marli re-submit the patch?
> >
> > The Go issue here seems particularly sticky. Even if we update the Go
> > runtime, users may try and run older binaries built with older versions
> of
> > Go for quite some time (months? years?). Would it be better to hide this
> > behind some kind of build-time flag (`--enable-sigrtmin-plus-one-proxy`
> or
> > something), so that some users can opt-in, but older binaries still work
> as
> > expected?
> >
> > Also, here is a link to the original thread this message is in reply to
> > in-case my mail-client doesn't set up the reply properly:
> > https://lists.nongnu.org/archive/html/qemu-devel/2019-07/msg01303.html
>
> The problem here is we break something to fix something else.
>
> I'm wondering if the series from Aleksandar Markovic, "linux-user:
> Support signal passing for targets having more signals than host" [1]
> can fix the problem in a better way?
>

That patch[1] (which I'll refer to as the MUX patch to avoid confusion)
does not directly fix the issue addressed by this patch (re-wiring
SIGRTMIN+1), but since it basically implements generic signal multiplexing,
it could be re-worked to address this case as well. The way it handles
`si_code` spooks me a little bit. It could easily be broken by a kernel
version change, and such a breakage could be hard to detect or lead to
surprising results. Other than that, it looks like a reasonable
implementation.

That said, overall, fixing the SIGRTMIN+1 issue using a more-generic
signal-multiplexing mechanism doesn't seem *that* much better to me. It
adds a lot of complexity, and only saves a single signal (assuming glibc
doesn't add more reserved signals). The "big win" is additional emulation
features, like those introduced in MUX patch (being able to utilize signals
outside of the host range). If having those features in QEMU warrants the
additional complexity, then re-working this patch on-top of that
infrastructure seems like a good idea.

If the maintainers want to go down that route, then I would be happy to
re-work this patch utilizing the infrastructure from the MUX patch.
Unfortunately it will require non-trivial changes, so it may be best to
wait until that patch is merged. I could also provide a patch "on top of"
the MUX patch, if that's desired/more convenient.

Just one last note, if you do decide to merge the MUX patch, then it would
be best to use SIGRTMAX (instead of SIGRTMAX-1) as the multiplexing signal
if possible, to avoid breaking go binaries.

Thanks again for taking a look at this issue.

Cheers,
Josh Kunz

[1] http://patchwork.ozlabs.org/cover/1103565/

  reply	other threads:[~2019-08-26 21:12 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-19 21:46 [Qemu-devel] patch to swap SIGRTMIN + 1 and SIGRTMAX - 1 Josh Kunz via Qemu-devel
2019-08-21  9:28 ` Laurent Vivier
2019-08-26 21:10   ` Josh Kunz via Qemu-devel [this message]
2019-08-27  8:08     ` Peter Maydell
2019-08-28  8:51     ` Laurent Vivier
2019-08-28 17:31       ` [Qemu-devel] [EXTERNAL]Re: " Aleksandar Markovic
2019-08-31  1:26         ` Josh Kunz via Qemu-devel
2019-10-02 18:06           ` [EXTERNAL]Re: [Qemu-devel] " Josh Kunz
2019-12-07 13:05         ` Aleksandar Markovic
  -- strict thread matches above, loose matches on Subject: below --
2019-06-21 22:58 Marlies Ruck
2019-06-28 23:26 ` Marlies Ruck
2019-06-29 10:53   ` Philippe Mathieu-Daudé
2019-07-01  9:08     ` Peter Maydell
2019-07-01 22:04       ` Marlies Ruck
2019-07-03 21:11         ` Marlies Ruck

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='CADgy-2va2xVmO_a1gDwg+zkpNcLJTW5D1j=2kk1TnRMxyPaLMg@mail.gmail.com' \
    --to=qemu-devel@nongnu.org \
    --cc=aleksandar.markovic@rt-rk.com \
    --cc=amarkovic@wavecomp.com \
    --cc=jkz@google.com \
    --cc=laurent@vivier.eu \
    --cc=marlies.ruck@gmail.com \
    --cc=milos.stojanovic@rt-rk.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-trivial@nongnu.org \
    --cc=riku.voipio@iki.fi \
    --cc=scw@google.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).