[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] what is the behavier precisely if a tb was interrupted
From: |
tugouxp |
Subject: |
Re: [Qemu-devel] what is the behavier precisely if a tb was interrupted by a interrupt or signal? |
Date: |
Tue, 25 Dec 2018 12:06:41 +0800 (CST) |
thank you.
if so ,the interrupt granularity cant be instructions precisely, but tb
precisely, for qemu cant check the interrupt at each instructions execution
stage, right?
At 2018-12-24 21:49:07, "Peter Maydell" <address@hidden> wrote:
>On Mon, 24 Dec 2018 at 10:11, tugouxp <address@hidden> wrote:
>> think about the scenario like that, a tb block contain 9 native
>> instructions execute sequentially
>>
>> if a interrupt or a signal happens before instruction 6 executed, did the
>> tb be finished before response to the interrupt or
>>
>> the exited at once to response the interrupt?
>
>We don't check in the middle of a TB for conditions like
>interrupts. The only thing that can cause a TB to stop
>execution halfway through is if it does something that
>provokes a synchronous exception (for instance, if it
>does a guest memory access that triggers a guest CPU
>page fault, or if it emulates a guest instruction that
>is required to trap). Those we emulate by longjumping out
>from the generated code to the top level loop.
>Asynchronous events like emulated interrupts we only
>check at the beginning of the TB: we emit code which
>tests a flag and returns early.
>
>thanks
>-- PMM