qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Subject: [PULL v2 60/60] softmmu: fix for "after access" watchpoints
Date: Thu, 28 Oct 2021 21:33:29 -0700	[thread overview]
Message-ID: <20211029043329.1518029-61-richard.henderson@linaro.org> (raw)
In-Reply-To: <20211029043329.1518029-1-richard.henderson@linaro.org>

From: Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>

Watchpoints that should fire after the memory access
break an execution of the current block, try to
translate current instruction into the separate block,
which then causes debug interrupt.
But cpu_interrupt can't be called in such block when
icount is enabled, because interrupts muse be allowed
explicitly.
This patch sets CF_LAST_IO flag for retranslated block,
allowing interrupt request for the last instruction.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <163542169727.2127597.8141772572696627329.stgit@pasha-ThinkPad-X280>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 softmmu/physmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/softmmu/physmem.c b/softmmu/physmem.c
index 9765a509d2..b9a8c1d1f4 100644
--- a/softmmu/physmem.c
+++ b/softmmu/physmem.c
@@ -946,7 +946,7 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
                 cpu_loop_exit(cpu);
             } else {
                 /* Force execution of one insn next time.  */
-                cpu->cflags_next_tb = 1 | curr_cflags(cpu);
+                cpu->cflags_next_tb = 1 | CF_LAST_IO | curr_cflags(cpu);
                 mmap_unlock();
                 cpu_loop_exit_noexc(cpu);
             }
-- 
2.25.1



  parent reply	other threads:[~2021-10-29  5:55 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-29  4:32 [PULL v2 00/60] tcg patch queue Richard Henderson
2021-10-29  4:32 ` [PULL v2 01/60] qemu/int128: Add int128_{not,xor} Richard Henderson
2021-10-29  4:32 ` [PULL v2 02/60] host-utils: move checks out of divu128/divs128 Richard Henderson
2021-10-29  4:32 ` [PULL v2 03/60] host-utils: move udiv_qrnnd() to host-utils Richard Henderson
2021-10-29  4:32 ` [PULL v2 04/60] host-utils: add 128-bit quotient support to divu128/divs128 Richard Henderson
2021-10-29  4:32 ` [PULL v2 05/60] host-utils: add unit tests for divu128/divs128 Richard Henderson
2021-10-29  4:32 ` [PULL v2 06/60] tcg/optimize: Rename "mask" to "z_mask" Richard Henderson
2021-10-29  4:32 ` [PULL v2 07/60] tcg/optimize: Split out OptContext Richard Henderson
2021-10-29  4:32 ` [PULL v2 08/60] tcg/optimize: Remove do_default label Richard Henderson
2021-10-29  4:32 ` [PULL v2 09/60] tcg/optimize: Change tcg_opt_gen_{mov, movi} interface Richard Henderson
2021-10-29  4:32 ` [PULL v2 10/60] tcg/optimize: Move prev_mb into OptContext Richard Henderson
2021-10-29  4:32 ` [PULL v2 11/60] tcg/optimize: Split out init_arguments Richard Henderson
2021-10-29  4:32 ` [PULL v2 12/60] tcg/optimize: Split out copy_propagate Richard Henderson
2021-10-29  4:32 ` [PULL v2 13/60] tcg/optimize: Split out fold_call Richard Henderson
2021-10-29  4:32 ` [PULL v2 14/60] tcg/optimize: Drop nb_oargs, nb_iargs locals Richard Henderson
2021-10-29  4:32 ` [PULL v2 15/60] tcg/optimize: Change fail return for do_constant_folding_cond* Richard Henderson
2021-10-29  4:32 ` [PULL v2 16/60] tcg/optimize: Return true from tcg_opt_gen_{mov, movi} Richard Henderson
2021-10-29  4:32 ` [PULL v2 17/60] tcg/optimize: Split out finish_folding Richard Henderson
2021-10-29  4:32 ` [PULL v2 18/60] tcg/optimize: Use a boolean to avoid a mass of continues Richard Henderson
2021-10-29  4:32 ` [PULL v2 19/60] tcg/optimize: Split out fold_mb, fold_qemu_{ld,st} Richard Henderson
2021-10-29  4:32 ` [PULL v2 20/60] tcg/optimize: Split out fold_const{1,2} Richard Henderson
2021-10-29  4:32 ` [PULL v2 21/60] tcg/optimize: Split out fold_setcond2 Richard Henderson
2021-10-29  4:32 ` [PULL v2 22/60] tcg/optimize: Split out fold_brcond2 Richard Henderson
2021-10-29  4:32 ` [PULL v2 23/60] tcg/optimize: Split out fold_brcond Richard Henderson
2021-10-29  4:32 ` [PULL v2 24/60] tcg/optimize: Split out fold_setcond Richard Henderson
2021-10-29  4:32 ` [PULL v2 25/60] tcg/optimize: Split out fold_mulu2_i32 Richard Henderson
2021-10-29  4:32 ` [PULL v2 26/60] tcg/optimize: Split out fold_addsub2_i32 Richard Henderson
2021-10-29  4:32 ` [PULL v2 27/60] tcg/optimize: Split out fold_movcond Richard Henderson
2021-10-29  4:32 ` [PULL v2 28/60] tcg/optimize: Split out fold_extract2 Richard Henderson
2021-11-09 16:52   ` Peter Maydell
2021-11-09 17:22     ` Richard Henderson
2021-10-29  4:32 ` [PULL v2 29/60] tcg/optimize: Split out fold_extract, fold_sextract Richard Henderson
2021-10-29  4:32 ` [PULL v2 30/60] tcg/optimize: Split out fold_deposit Richard Henderson
2021-10-29  4:33 ` [PULL v2 31/60] tcg/optimize: Split out fold_count_zeros Richard Henderson
2021-10-29  4:33 ` [PULL v2 32/60] tcg/optimize: Split out fold_bswap Richard Henderson
2021-10-29  4:33 ` [PULL v2 33/60] tcg/optimize: Split out fold_dup, fold_dup2 Richard Henderson
2021-10-29  4:33 ` [PULL v2 34/60] tcg/optimize: Split out fold_mov Richard Henderson
2021-10-29  4:33 ` [PULL v2 35/60] tcg/optimize: Split out fold_xx_to_i Richard Henderson
2021-10-29  4:33 ` [PULL v2 36/60] tcg/optimize: Split out fold_xx_to_x Richard Henderson
2021-10-29  4:33 ` [PULL v2 37/60] tcg/optimize: Split out fold_xi_to_i Richard Henderson
2021-10-29  4:33 ` [PULL v2 38/60] tcg/optimize: Add type to OptContext Richard Henderson
2021-10-29  4:33 ` [PULL v2 39/60] tcg/optimize: Split out fold_to_not Richard Henderson
2021-10-29  4:33 ` [PULL v2 40/60] tcg/optimize: Split out fold_sub_to_neg Richard Henderson
2021-10-29  4:33 ` [PULL v2 41/60] tcg/optimize: Split out fold_xi_to_x Richard Henderson
2021-10-29  4:33 ` [PULL v2 42/60] tcg/optimize: Split out fold_ix_to_i Richard Henderson
2021-10-29  4:33 ` [PULL v2 43/60] tcg/optimize: Split out fold_masks Richard Henderson
2021-10-29  4:33 ` [PULL v2 44/60] tcg/optimize: Expand fold_mulu2_i32 to all 4-arg multiplies Richard Henderson
2021-10-29  4:33 ` [PULL v2 45/60] tcg/optimize: Expand fold_addsub2_i32 to 64-bit ops Richard Henderson
2021-10-29  4:33 ` [PULL v2 46/60] tcg/optimize: Sink commutative operand swapping into fold functions Richard Henderson
2021-10-29  4:33 ` [PULL v2 47/60] tcg: Extend call args using the correct opcodes Richard Henderson
2021-10-29  4:33 ` [PULL v2 48/60] tcg/optimize: Stop forcing z_mask to "garbage" for 32-bit values Richard Henderson
2021-10-29  4:33 ` [PULL v2 49/60] tcg/optimize: Use fold_xx_to_i for orc Richard Henderson
2021-10-29  4:33 ` [PULL v2 50/60] tcg/optimize: Use fold_xi_to_x for mul Richard Henderson
2021-10-29  4:33 ` [PULL v2 51/60] tcg/optimize: Use fold_xi_to_x for div Richard Henderson
2021-10-29  4:33 ` [PULL v2 52/60] tcg/optimize: Use fold_xx_to_i for rem Richard Henderson
2021-10-29  4:33 ` [PULL v2 53/60] tcg/optimize: Optimize sign extensions Richard Henderson
2021-10-29  4:33 ` [PULL v2 54/60] tcg/optimize: Propagate sign info for logical operations Richard Henderson
2021-10-29  4:33 ` [PULL v2 55/60] tcg/optimize: Propagate sign info for setcond Richard Henderson
2021-10-29  4:33 ` [PULL v2 56/60] tcg/optimize: Propagate sign info for bit counting Richard Henderson
2021-10-29  4:33 ` [PULL v2 57/60] tcg/optimize: Propagate sign info for shifting Richard Henderson
2021-10-29  4:33 ` [PULL v2 58/60] softmmu: fix watchpoint processing in icount mode Richard Henderson
2021-10-29  4:33 ` [PULL v2 59/60] softmmu: remove useless condition in watchpoint check Richard Henderson
2021-10-29  4:33 ` Richard Henderson [this message]
2021-10-29 17:58 ` [PULL v2 00/60] tcg patch queue Richard Henderson

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=20211029043329.1518029-61-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=Pavel.Dovgalyuk@ispras.ru \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).