[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 3/4] qom/cpu: remove host_tid field
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v3 3/4] qom/cpu: remove host_tid field |
Date: |
Mon, 05 Jun 2017 16:10:07 +0100 |
User-agent: |
mu4e 0.9.19; emacs 25.2.50.2 |
Paolo Bonzini <address@hidden> writes:
> On 02/06/2017 15:05, Alex Bennée wrote:
>> This was only used by the gdbstub and even then was only being set for
>> subsequent threads. Rather the continue duplicating the number just
>> make the gdbstub get the information from TaskState structure.
>>
>> Now the tid is correctly reported for all threads the bug I was seeing
>> with "vCont;C04:0;c" packets is fixed as the correct tid is reported
>> to gdb.
>>
>> I moved cpu_gdb_index into the gdbstub to facilitate easy access to
>> the TaskState which is used elsewhere in gdbstub.
>
> I think bsd-user does not have ts_tid?
I'll test the build on BSD, I think I have a VM somewhere.
>
> Thanks,
>
> Paolo
>
>> Signed-off-by: Alex Bennée <address@hidden>
>> Reviewed-by: Greg Kurz <address@hidden>
>> Reviewed-by: Claudio Imbrenda <address@hidden>
>> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
>> Reviewed-by: Laurent Vivier <address@hidden>
>>
>> ---
>> v3
>> - fix merge, did move of function in previous commit
>> ---
>> gdbstub.c | 3 ++-
>> include/qom/cpu.h | 2 --
>> linux-user/syscall.c | 1 -
>> 3 files changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/gdbstub.c b/gdbstub.c
>> index 57befe16e2..45a3a0b16b 100644
>> --- a/gdbstub.c
>> +++ b/gdbstub.c
>> @@ -63,7 +63,8 @@ static inline int target_memory_rw_debug(CPUState *cpu,
>> target_ulong addr,
>> static inline int cpu_gdb_index(CPUState *cpu)
>> {
>> #if defined(CONFIG_USER_ONLY)
>> - return cpu->host_tid;
>> + TaskState *ts = (TaskState *) cpu->opaque;
>> + return ts->ts_tid;
>> #else
>> return cpu->cpu_index + 1;
>> #endif
>> diff --git a/include/qom/cpu.h b/include/qom/cpu.h
>> index 55214ce131..909e7ae994 100644
>> --- a/include/qom/cpu.h
>> +++ b/include/qom/cpu.h
>> @@ -266,7 +266,6 @@ struct qemu_work_item;
>> * @nr_cores: Number of cores within this CPU package.
>> * @nr_threads: Number of threads within this CPU.
>> * @numa_node: NUMA node this CPU is belonging to.
>> - * @host_tid: Host thread ID.
>> * @running: #true if CPU is currently running (lockless).
>> * @has_waiter: #true if a CPU is currently waiting for the cpu_exec_end;
>> * valid under cpu_list_lock.
>> @@ -321,7 +320,6 @@ struct CPUState {
>> HANDLE hThread;
>> #endif
>> int thread_id;
>> - uint32_t host_tid;
>> bool running, has_waiter;
>> struct QemuCond *halt_cond;
>> bool thread_kicked;
>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
>> index 925ae11ea6..003943b736 100644
>> --- a/linux-user/syscall.c
>> +++ b/linux-user/syscall.c
>> @@ -6219,7 +6219,6 @@ static void *clone_func(void *arg)
>> thread_cpu = cpu;
>> ts = (TaskState *)cpu->opaque;
>> info->tid = gettid();
>> - cpu->host_tid = info->tid;
>> task_settid(ts);
>> if (info->child_tidptr)
>> put_user_u32(info->tid, info->child_tidptr);
>>
--
Alex Bennée
- [Qemu-devel] [PATCH v3 0/4] some gdbstub fixes for debug and vcont, Alex Bennée, 2017/06/02
- [Qemu-devel] [PATCH v3 1/4] gdbstub: modernise DEBUG_GDB, Alex Bennée, 2017/06/02
- [Qemu-devel] [PATCH v3 3/4] qom/cpu: remove host_tid field, Alex Bennée, 2017/06/02
- [Qemu-devel] [PATCH v3 4/4] gdbstub: don't fail on vCont; C04:0; c packets, Alex Bennée, 2017/06/02
- [Qemu-devel] [PATCH v3 2/4] gdbstub: rename cpu_index -> cpu_gdb_index, Alex Bennée, 2017/06/02
- Re: [Qemu-devel] [PATCH v3 0/4] some gdbstub fixes for debug and vcont, Paolo Bonzini, 2017/06/05