qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v11 0/3] gdbstub and TCG plugin improvements


From: Pierrick Bouvier
Subject: Re: [PATCH v11 0/3] gdbstub and TCG plugin improvements
Date: Mon, 5 Feb 2024 14:03:59 +0400
User-agent: Mozilla Thunderbird

On 2/5/24 13:31, Alex Bennée wrote:
Akihiko Odaki <akihiko.odaki@daynix.com> writes:

On 2024/02/03 22:58, Alex Bennée wrote:
Akihiko Odaki <akihiko.odaki@daynix.com> writes:

On 2024/02/03 20:08, Alex Bennée wrote:
Akihiko Odaki <akihiko.odaki@daynix.com> writes:

This series extracts fixes and refactorings that can be applied
independently from "[PATCH v9 00/23] plugins: Allow to read registers".

The patch "target/riscv: Move MISA limits to class" was replaced with
patch "target/riscv: Move misa_mxl_max to class" since I found instances
may have different misa_ext_mask.
As this is re-based on Alistair's riscv-to-apply.next tree I'll wait
for
this to go through the RiscV trees and then re-base the plugin patches
and dropping the merged riscv patches from my tree.
In the meantime feel free to review:
     Message-Id: <20240122145610.413836-1-alex.bennee@linaro.org>
     Date: Mon, 22 Jan 2024 14:55:49 +0000
     Subject: [PATCH v3 00/21] plugin updates (register access) for 9.0 
(pre-PR?)
     From: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>
For:
     contrib/plugins: extend execlog to track register changes
     gdbstub: expose api to find registers
So I can add this to my maintainer omnibus series for the next PR I
send.

I added one trivial comment to: "gdbstub: expose api to find registers"

"contrib/plugins: extend execlog to track register changes" depends on
"plugins: add an API to read registers". The comments for the patch in
the following email are not addressed yet:
https://lore.kernel.org/all/4b2156ed-688d-4617-b52d-200413f01156@daynix.com/
I don't think we need to serialise with the BQL as the structures
are
per-CPU (and created on vCPU creation).

qemu_plugin_get_registers() has vcpu parameter, which can refer to a
different vcpu the caller is on (or the caller may not be in a vcpu
context at all).

It should only be called from the current cpu context. We can either
assert that or make it implicit like qemu_plugin_insn_disas does.
However we will need to ensure current_cpu is set before the vcpu_init
callback.

Pierrick has had to move these initialisations around for the scoreboard
work so they are now run with safe work once the thread starts.


As a complement, in the series I'll post, the work is run asynchronously, but not "safe_async", which means it's not under an exclusive section.

If you need this guarantee for registers API, it's better to add this.


As far as the restructuring we can move it into gdbstub later if
there
is a need to. At the moment the structure is just housekeeping for
plugins.

Certainly we can move it later, but adding the code in the plugin
infrastructure now won't help in that case.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]