All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
Cc: pbonzini@redhat.com, doug16k@gmail.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v1 2/2] gdbstub: don't fail on vCont; C04:0; c packets
Date: Wed, 31 May 2017 17:26:13 +0100	[thread overview]
Message-ID: <87y3tdro0q.fsf@linaro.org> (raw)
In-Reply-To: <20170531181737.230cbded@p-imbrenda.boeblingen.de.ibm.com>


Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> writes:

> On Wed, 31 May 2017 16:09:33 +0100
> Alex Bennée <alex.bennee@linaro.org> wrote:
>
>> The thread-id of 0 means any CPU but we then ignore the fact we find
>> the first_cpu in this case who can have an index of 0. Instead of
>> bailing out just test if we have managed to match up thread-id to a
>> CPU.
>>
>> Otherwise you get:
>>   gdb_handle_packet: command='vCont;C04:0;c'
>>   put_packet: reply='E22'
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>  gdbstub.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/gdbstub.c b/gdbstub.c
>> index a249846954..29c9ed3002 100644
>> --- a/gdbstub.c
>> +++ b/gdbstub.c
>> @@ -934,8 +934,8 @@ static int gdb_handle_vcont(GDBState *s, const
>> char *p)
>>               * CPU first, and only then we can use its index.
>>               */
>>              cpu = find_cpu(idx);
>> -            /* invalid CPU/thread specified */
>> -            if (!idx || !cpu) {
>> +            /* invalid thread specified, cpu not found. */
>> +            if (!cpu) {
>>                  res = -EINVAL;
>>                  goto out;
>>              }
>
> This is strange. cpu_index() is defined as:
>
> static inline int cpu_index(CPUState *cpu)
> {
> #if defined(CONFIG_USER_ONLY)
>     return cpu->host_tid;
> #else
>     return cpu->cpu_index + 1;
> #endif
> }
>
> therefore it shouldn't return 0 under any circumstance, and
> find_cpu(idx) should also fail if idx == 0, because internally it also
> uses cpu_index()
>
> on the other hand, you say that the patch does fix the problem for you,
> which really confuses me.

Hmm that was me assuming cpu_index(cpu) was the same as cpu->cpu_index.
However in the CONFIG_USER_ONLY case we return host_tid which is only
set by clone_func() so I think will not be set for the first cpu.

>
>
>
> (probably) completely unrelatedly, this:
>
> res = qemu_strtoul(p + 1, &p, 16, &tmp);
>
> should be like this instead:
>
> res = qemu_strtoul(p, &p, 16, &tmp);
>
> but this shouldn't impact you in any way.


--
Alex Bennée

  reply	other threads:[~2017-05-31 16:26 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-31 15:09 [Qemu-devel] [PATCH v1 0/2] some gdbstub fixes for debug and vcont Alex Bennée
2017-05-31 15:09 ` [Qemu-devel] [PATCH v1 1/2] gdbstub: modernise DEBUG_GDB Alex Bennée
2017-05-31 15:22   ` Philippe Mathieu-Daudé
2017-05-31 15:50   ` Greg Kurz
2017-05-31 15:09 ` [Qemu-devel] [PATCH v1 2/2] gdbstub: don't fail on vCont; C04:0; c packets Alex Bennée
2017-05-31 16:17   ` Greg Kurz
2017-05-31 16:27     ` Alex Bennée
2017-05-31 16:17   ` Claudio Imbrenda
2017-05-31 16:26     ` Alex Bennée [this message]
2017-05-31 16:33     ` Greg Kurz
2017-05-31 16:51       ` Claudio Imbrenda
2017-05-31 17:06         ` Greg Kurz
2017-05-31 17:40           ` Claudio Imbrenda
2017-05-31 18:16             ` Alex Bennée
2017-05-31 18:33             ` Greg Kurz
2017-05-31 17:23         ` Alex Bennée

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=87y3tdro0q.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=doug16k@gmail.com \
    --cc=imbrenda@linux.vnet.ibm.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.