diff mbox

[PULL,06/41] replay: exception replay fix

Message ID 1485524749-118532-7-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini Jan. 27, 2017, 1:45 p.m. UTC
From: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>

This patch fixes replaying the exception when TB cache is full.
It breaks cpu loop execution through setting exception_index
to process such queued work as TB flush.

v8: moved setting of exeption_index to tb_gen_code

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Message-Id: <20170126123418.5412.33815.stgit@PASHA-ISP>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 translate-all.c | 2 ++
 1 file changed, 2 insertions(+)
diff mbox

Patch

diff --git a/translate-all.c b/translate-all.c
index 2026293..6d2fcab 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -1290,6 +1290,8 @@  TranslationBlock *tb_gen_code(CPUState *cpu,
         /* flush must be done */
         tb_flush(cpu);
         mmap_unlock();
+        /* Make the execution loop process the flush as soon as possible.  */
+        cpu->exception_index = EXCP_INTERRUPT;
         cpu_loop_exit(cpu);
     }