[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 1/3] icount: preserve cflags when custom tb is about to ex
From: |
Alex Bennée |
Subject: |
Re: [PATCH v2 1/3] icount: preserve cflags when custom tb is about to execute |
Date: |
Wed, 17 Nov 2021 10:29:37 +0000 |
User-agent: |
mu4e 1.7.5; emacs 28.0.60 |
Richard Henderson <richard.henderson@linaro.org> writes:
> On 11/17/21 10:47 AM, Alex Bennée wrote:
>> - gen_set_label(tcg_ctx->exitreq_label);
>> + if (tcg_ctx->exitreq_label) {
>> + gen_set_label(tcg_ctx->exitreq_label);
>> + }
>> tcg_gen_exit_tb(tb, TB_EXIT_REQUESTED);
>
> The exit_tb is also not reachable, and should go in with the label.
ok
>
>> }
>> modified accel/tcg/cpu-exec.c
>> @@ -954,11 +954,16 @@ int cpu_exec(CPUState *cpu)
>> * after-access watchpoints. Since this request should never
>> * have CF_INVALID set, -1 is a convenient invalid value that
>> * does not require tcg headers for cpu_common_reset.
>> + *
>> + * As we don't want this special TB being interrupted by
>> + * some sort of asynchronous event we apply CF_NOIRQ to
>> + * disable the usual event checking.
>> */
>> cflags = cpu->cflags_next_tb;
>> if (cflags == -1) {
>> cflags = curr_cflags(cpu);
>> } else {
>> + cflags |= CF_NOIRQ;
>> cpu->cflags_next_tb = -1;
>> }
>
> Still missing something to avoid cpu_handle_interrupt firing?
Something as simple as:
--8<---------------cut here---------------start------------->8---
modified accel/tcg/cpu-exec.c
@@ -721,6 +721,15 @@ static inline bool need_replay_interrupt(int
interrupt_request)
static inline bool cpu_handle_interrupt(CPUState *cpu,
TranslationBlock **last_tb)
{
+ /*
+ * If we have special cflags lets not get distracted with IRQs. We
+ * shall exit the loop as soon as the next TB completes what it
+ * needs to do.
+ */
+ if (cpu->cflags_next_tb != -1) {
+ return false;
+ }
+
/* Clear the interrupt flag now since we're processing
* cpu->interrupt_request and cpu->exit_request.
--8<---------------cut here---------------end--------------->8---
?
>
>
> r~
--
Alex Bennée
[PATCH v2 2/3] softmmu: fix watchpoint-interrupt races, Pavel Dovgalyuk, 2021/11/11
[PATCH v2 3/3] softmmu: fix watchpoints on memory used by vCPU internals, Pavel Dovgalyuk, 2021/11/11
Re: [PATCH v2 0/3] Some watchpoint-related patches, David Hildenbrand, 2021/11/11