All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: pbonzini@redhat.com, qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 2/3] Add 'debug-threads' suboption to --name
Date: Mon, 10 Feb 2014 17:14:03 +0100	[thread overview]
Message-ID: <52F8FACB.1050406@redhat.com> (raw)
In-Reply-To: <20140210101627.GF3545@work-vm>

On 02/10/14 11:16, Dr. David Alan Gilbert wrote:
> * Laszlo Ersek (lersek@redhat.com) wrote:
>> a few irrelevant comments below:
>>
>> On 01/30/14 11:20, Dr. David Alan Gilbert (git) wrote:
>>> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>>>
>>> Add flag storage to qemu-thread-* to store the namethreads flag
>>>
>>> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>>> ---
>>>  include/qemu/thread.h    | 1 +
>>>  qemu-options.hx          | 7 +++++--
>>>  util/qemu-thread-posix.c | 7 +++++++
>>>  util/qemu-thread-win32.c | 8 ++++++++
>>>  vl.c                     | 9 +++++++++
>>>  5 files changed, 30 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/include/qemu/thread.h b/include/qemu/thread.h
>>> index 3e32c65..bf1e110 100644
>>> --- a/include/qemu/thread.h
>>> +++ b/include/qemu/thread.h
>>> @@ -59,5 +59,6 @@ void *qemu_thread_join(QemuThread *thread);
>>>  void qemu_thread_get_self(QemuThread *thread);
>>>  bool qemu_thread_is_self(QemuThread *thread);
>>>  void qemu_thread_exit(void *retval);
>>> +void qemu_thread_naming(bool enable);
>>>  
>>>  #endif
>>> diff --git a/qemu-options.hx b/qemu-options.hx
>>> index 56e5fdf..068da2d 100644
>>> --- a/qemu-options.hx
>>> +++ b/qemu-options.hx
>>> @@ -328,9 +328,11 @@ possible drivers and properties, use @code{-device help} and
>>>  ETEXI
>>>  
>>>  DEF("name", HAS_ARG, QEMU_OPTION_name,
>>> -    "-name string1[,process=string2]\n"
>>> +    "-name string1[,process=string2][,debug-threads=on|off]\n"
>>>      "                set the name of the guest\n"
>>> -    "                string1 sets the window title and string2 the process name (on Linux)\n",
>>> +    "                string1 sets the window title and string2 the process name (on Linux)\n"
>>> +    "                When debug-threads is enabled, individual threads are given a separate name (on Linux)\n"
>>> +    "                NOTE: The thread names are for debugging and not a stable API.\n",
>>>      QEMU_ARCH_ALL)
>>>  STEXI
>>>  @item -name @var{name}
>>> @@ -339,6 +341,7 @@ Sets the @var{name} of the guest.
>>>  This name will be displayed in the SDL window caption.
>>>  The @var{name} will also be used for the VNC server.
>>>  Also optionally set the top visible process name in Linux.
>>> +Naming of individual threads can also be enabled on Linux to aid debugging.
>>>  ETEXI
>>>  
>>>  DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
>>> diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c
>>> index 37dd298..0fa6c81 100644
>>> --- a/util/qemu-thread-posix.c
>>> +++ b/util/qemu-thread-posix.c
>>> @@ -27,6 +27,13 @@
>>>  #include "qemu/thread.h"
>>>  #include "qemu/atomic.h"
>>>  
>>> +static bool name_threads;
>>> +
>>> +void qemu_thread_naming(bool enable)
>>> +{
>>> +    name_threads = enable;
>>> +}
>>> +
>>>  static void error_exit(int err, const char *msg)
>>>  {
>>>      fprintf(stderr, "qemu: %s: %s\n", msg, strerror(err));
>>> diff --git a/util/qemu-thread-win32.c b/util/qemu-thread-win32.c
>>> index 27a5217..e42cb77 100644
>>> --- a/util/qemu-thread-win32.c
>>> +++ b/util/qemu-thread-win32.c
>>> @@ -16,6 +16,14 @@
>>>  #include <assert.h>
>>>  #include <limits.h>
>>>  
>>> +static bool name_threads;
>>> +
>>> +void qemu_thread_naming(bool enable)
>>> +{
>>> +    /* But note we don't actually name them on Windows yet */
>>> +    name_threads = enable;
>>> +}
>>> +
>>>  static void error_exit(int err, const char *msg)
>>>  {
>>>      char *pstr;
>>> diff --git a/vl.c b/vl.c
>>> index 5f993e4..77d6d9e 100644
>>> --- a/vl.c
>>> +++ b/vl.c
>>> @@ -547,6 +547,12 @@ static QemuOptsList qemu_name_opts = {
>>>              .name = "process",
>>>              .type = QEMU_OPT_STRING,
>>>              .help = "Sets the name of the QEMU process, as shown in top etc",
>>> +        }, {
>>> +            .name = "debug-threads",
>>> +            .type = QEMU_OPT_BOOL,
>>> +            .help = "When enabled, name the individual threads; defaults off.\n"
>>
>> (1) same question about newlines applies
> 
> I'd assumed this landed in -help output and that looked OK.
> 
>> (2) the default setting is usually advertised in qemu-options.hx, not here
> 
> OK
> 
>> (3) the meaning of "default" is relative to the case when the option is
>> specified and the option argument is not, *not* relative to when the
>> option is missing. Cf.
>>
>> (a)  -name debug-threads
>> (b)  -name debug-threads=on
>> (c)  [nothing]
>>
>> The default as explained by the help text (in qemu-options.hx),
>> independently of option argument type, is usually the difference between
>> (a) and (b), not (a) and (c), nor between (b) and (c).
>>
>> Here, due to the way boolean options are parsed in parse_option_bool(),
>> (a) is identical to (b), so the default is "on". (See -msg timestamp in
>> qemu-options.hx, it's similar.)
>>
>> I *think*. But I could never really form a decisive understanding of the
>> tradition here, so feel free to ignore it.
> 
> If 'default' is (a) then what is the word for (c) ? What I was really
> trying to express was that if you don't pass the option at all it's
> not going to name the threads.

I see. I couldn't name an example where (c) is explicitly referred to.

Thanks
Laszlo

  reply	other threads:[~2014-02-10 16:14 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-30 10:20 [Qemu-devel] [PATCH v2 0/3] Name threads Dr. David Alan Gilbert (git)
2014-01-30 10:20 ` [Qemu-devel] [PATCH v2 1/3] Rework --name to use QemuOpts Dr. David Alan Gilbert (git)
2014-02-09  8:43   ` Laszlo Ersek
2014-02-10 10:03     ` Dr. David Alan Gilbert
2014-02-10 16:12       ` Laszlo Ersek
2014-02-11  9:07         ` Paolo Bonzini
2014-02-11 13:30           ` Eric Blake
2014-01-30 10:20 ` [Qemu-devel] [PATCH v2 2/3] Add 'debug-threads' suboption to --name Dr. David Alan Gilbert (git)
2014-02-09  9:08   ` Laszlo Ersek
2014-02-10 10:16     ` Dr. David Alan Gilbert
2014-02-10 16:14       ` Laszlo Ersek [this message]
2014-01-30 10:20 ` [Qemu-devel] [PATCH v2 3/3] Add a 'name' parameter to qemu_thread_create Dr. David Alan Gilbert (git)
2014-02-09  9:37   ` Laszlo Ersek
2014-02-10  9:49     ` Dr. David Alan Gilbert
2014-01-30 12:59 ` [Qemu-devel] [PATCH v2 0/3] Name threads Eric Blake
2014-01-30 13:03   ` Dr. David Alan Gilbert

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=52F8FACB.1050406@redhat.com \
    --to=lersek@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --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.