qemu-riscv
[Top][All Lists]
Advanced

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

Re: [PATCH v3 01/20] accel/tcg: restrict assert on icount_enabled to qem


From: Deepak Gupta
Subject: Re: [PATCH v3 01/20] accel/tcg: restrict assert on icount_enabled to qemu-system
Date: Wed, 7 Aug 2024 11:45:29 -0700

On Wed, Aug 07, 2024 at 10:48:56AM +1000, Richard Henderson wrote:
On 8/7/24 10:06, Deepak Gupta wrote:
commit 16ad9788 [1] restricted icount to qemu-system only. Although
assert in `cpu_loop_exec_tb` is on `icount_enabled()` which is 0 when
its qemu-user and debug build starts asserting.
Move assert for qemu-system.

[1] - https://lists.gnu.org/archive/html/qemu-riscv/2024-01/msg00608.html

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
---
 accel/tcg/cpu-exec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index 245fd6327d..8cc2a6104f 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -927,9 +927,9 @@ static inline void cpu_loop_exec_tb(CPUState *cpu, 
TranslationBlock *tb,
         return;
     }
+#ifndef CONFIG_USER_ONLY
     /* Instruction counter expired.  */
     assert(icount_enabled());
-#ifndef CONFIG_USER_ONLY
     /* Ensure global icount has gone forward */
     icount_update(cpu);
     /* Refill decrementer and continue execution.  */

No, this is a real bug.

Just above we handled

 (1) exit for tcg (non-)chaining (!= TB_EXIT_REQUESTED),
 (2) exit for exception/interrupt (cpu_loop_exit_requested).

The only thing that is left is exit for icount expired.
And for that we *must* have icount enabled.

How did you encounter this?

hmm I was experimenting with reducing TB flags (i.e. not using two different TB 
flags
for zicfilp). But I swear, I didn't see it go away (for qemu-user) when I had 
switched to
two TB flags.

Now that you've pointed it out specifically, I tried again.
Its not asserting at this place anymore for qemu-ser

I'll remove this patch in next version. And if I encounter this again, will dig 
a little bit
more deep into it and try to get repro steps.



r~



reply via email to

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