All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Privoznik <mprivozn@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Cc: armbru@redhat.com, peter.maydell@linaro.org
Subject: Re: [Qemu-devel] [PATCH v3 0/2] Produce better termination message
Date: Mon, 26 Sep 2016 11:02:10 +0200	[thread overview]
Message-ID: <155c94e1-29f2-d294-01e3-a78b394518f2@redhat.com> (raw)
In-Reply-To: <8e0d68a2-d7df-9252-a099-a8a31b621670@redhat.com>

On 22.09.2016 18:43, Paolo Bonzini wrote:
> 
> 
> On 21/09/2016 18:27, Michal Privoznik wrote:
>> This is v2 of:
>> http://lists.nongnu.org/archive/html/qemu-devel/2016-09/msg05058.html
>>
>> Diff to v2:
>> - In 1/2 I've dropped stdio funcs in favour of g_file_get_contents() (thanks Dan!)
>>
>> Michal Privoznik (2):
>>   util: Introduce qemu_get_pid_name
>>   qemu_kill_report: Report PID name too
>>
>>  include/qemu/osdep.h | 10 ++++++++++
>>  util/oslib-posix.c   | 27 +++++++++++++++++++++++++++
>>  util/oslib-win32.c   |  7 +++++++
>>  vl.c                 |  8 ++++++--
>>  4 files changed, 50 insertions(+), 2 deletions(-)
>>
> 
> Patch 2/2 breaks "make check".  You cannot call malloc from a signal
> handler, and this shows as a deadlock in
> /x86_64/virtio/scsi/pci/hotplug.  You have to use the large buffer,
> _but_ I cannot just keep patch 2 because you also have to use
> open/read/close instead of stdio.

Huh, this has beacame more hairy than I initially thought. An
alternative suggestion might be to not call PID->name translate function
from the signal handler, but call it just from the qemu_kill_report().
Yes, this will increase the chances of reporting incorrect process name,
but there's no way to make this 100% correct. I mean even at the time
that our signal callback is ran, the sender might be dead already and
kernel might have spawn a different process under the same PID.
Therefore I guess there's no real harm in doing the translation later.
Moreover, if we want this to work on *BSD-s (where an libutil function
is called which does malloc), then we must call the translate function
from a safe place. On the other hand, malloc there could be reentrant.

Michal

  reply	other threads:[~2016-09-26  9:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-21 16:27 [Qemu-devel] [PATCH v3 0/2] Produce better termination message Michal Privoznik
2016-09-21 16:27 ` [Qemu-devel] [PATCH v3 1/2] util: Introduce qemu_get_pid_name Michal Privoznik
2016-09-21 16:32   ` Paolo Bonzini
2016-09-21 16:27 ` [Qemu-devel] [PATCH v3 2/2] qemu_kill_report: Report PID name too Michal Privoznik
2016-09-21 16:46 ` [Qemu-devel] [PATCH v3 0/2] Produce better termination message no-reply
2016-09-21 17:47 ` no-reply
2016-09-22 16:43 ` Paolo Bonzini
2016-09-26  9:02   ` Michal Privoznik [this message]
2016-09-26  9:07     ` Paolo Bonzini

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=155c94e1-29f2-d294-01e3-a78b394518f2@redhat.com \
    --to=mprivozn@redhat.com \
    --cc=armbru@redhat.com \
    --cc=pbonzini@redhat.com \
    --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.