[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v4 01/23] This patch adds a condition before
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC PATCH v4 01/23] This patch adds a condition before overwriting exception_index fields. |
Date: |
Fri, 19 Jan 2018 09:47:45 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 |
On 19/01/2018 09:42, Pavel Dovgalyuk wrote:
> It is needed when exception_index is already set to some meaningful value.
>
Pavel, very frankly, this commit message is awful, and for two reasons.
First, it should include the high level overview of the bug ("XYZ does
not work") and the description of why XYZ does not work (what is the
meaningful value? who set it?)
Second, it also resets cpu->exception_index to -1 in after calling
cc->cpu_exec_interrupt. Why is this correct? Who was clearing it
before? Is that clearing still needed? What does
cc->cpu_exec_interrupt even have to do with cpu->exception_index, since
exceptions are handled by cc->do_interrupt?
And so on.
Paolo
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> accel/tcg/cpu-exec.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
> index 280200f..9cc6972 100644
> --- a/accel/tcg/cpu-exec.c
> +++ b/accel/tcg/cpu-exec.c
> @@ -585,6 +585,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
> else {
> if (cc->cpu_exec_interrupt(cpu, interrupt_request)) {
> replay_interrupt();
> + cpu->exception_index = -1;
> *last_tb = NULL;
> }
> /* The target hook may have updated the 'cpu->interrupt_request';
> @@ -606,7 +607,9 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
> if (unlikely(atomic_read(&cpu->exit_request)
> || (use_icount && cpu->icount_decr.u16.low + cpu->icount_extra ==
> 0))) {
> atomic_set(&cpu->exit_request, 0);
> - cpu->exception_index = EXCP_INTERRUPT;
> + if (cpu->exception_index == -1) {
> + cpu->exception_index = EXCP_INTERRUPT;
> + }
> return true;
> }
>
>
- [Qemu-devel] [RFC PATCH v4 00/23] replay additions, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 01/23] This patch adds a condition before overwriting exception_index fields., Pavel Dovgalyuk, 2018/01/19
- Re: [Qemu-devel] [RFC PATCH v4 01/23] This patch adds a condition before overwriting exception_index fields.,
Paolo Bonzini <=
- [Qemu-devel] [RFC PATCH v4 02/23] block: implement bdrv_snapshot_goto for blkreplay, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 03/23] blkreplay: create temporary overlay for underlaying devices, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 04/23] replay: disable default snapshot for record/replay, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 05/23] replay: fix processing async events, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 06/23] replay: fixed replay_enable_events, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 07/23] replay: fix save/load vm for non-empty queue, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 08/23] replay: added replay log format description, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 09/23] replay: make safe vmstop at record/replay, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 10/23] replay: save prior value of the host clock, Pavel Dovgalyuk, 2018/01/19
- [Qemu-devel] [RFC PATCH v4 11/23] target/arm/arm-powertctl: drop BQL assertions, Pavel Dovgalyuk, 2018/01/19