[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: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v3 3/4] qom/cpu: remove host_tid field |
Date: |
Mon, 5 Jun 2017 15:47:29 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 |
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?
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);
>
- [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
- Re: [Qemu-devel] [PATCH v3 3/4] qom/cpu: remove host_tid field,
Paolo Bonzini <=
- [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