qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] How to break cpu_tb_exec()?


From: Lluís Vilanova
Subject: Re: [Qemu-devel] How to break cpu_tb_exec()?
Date: Mon, 06 Jul 2015 13:26:34 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

Jun Koi writes:

> On Sat, Jul 4, 2015 at 1:12 AM, Peter Maydell <address@hidden> wrote:
>     On 3 July 2015 at 18:10, Jun Koi <address@hidden> wrote:
>> On Sat, Jul 4, 2015 at 1:06 AM, Peter Maydell <address@hidden>
>> wrote:
>>> On 3 July 2015 at 18:02, Jun Koi <address@hidden> wrote:
>>> > If this is true, then what if this TB is running infinitely, and do not
>>> > return, or it is in a very long loop? In this case, TCG thread cannot
>     be
>>> > interrupted?
>>> 
>>> Every TB starts with a little bit of generated code that checks
>>> the 'tcg_exit_req' flag in the CPUState for the CPU (see the
>>> gen_tb_start() function). If some other part of QEMU wants the
>>> CPU to stop running guest code and return to the top level loop,
>>> it calls cpu_exit() which sets this flag.
>> 
>> 
>> But this does not answer my question yet: if we the flag is only
>> enable when TB already enters the "long loop", then nothing can break
>> this TB execution?
    
>     We check the flag for every TB we execute. Therefore in any
>     loop we must check the flag each time round the loop. So
>     if another thread sets the flag, we will exit.
    
>     (A TB is always ended by any kind of branch instruction,
>     so you can't have a loop within a single TB. A tight loop
>     turns into a TB that ends with "branch back to the start
>     of this TB", but that will re-execute the flag-check code.)
    

> Oh right, this tight loop is my main concern. It makes sense now.

I'm not sure if "rep"-style x86 instructions loop inside the same TB, though.


Cheers,
  Lluis

-- 
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Tollbooth



reply via email to

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