qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v8 2/9] icount: exit cpu loop on expire


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v8 2/9] icount: exit cpu loop on expire
Date: Thu, 26 Jan 2017 15:28:44 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1


On 26/01/2017 14:37, Pavel Dovgalyuk wrote:
>> Simpler:
>>
>>      use_icount &&
>>      ((int32_t)cpu->icount_decr.u32 < 0 ||
>>       cpu->icount_decr.u16.low + cpu->icount_extra == 0)
> Right.
> 
>> But I'm not sure that you need to test u32.  After all you're not
> Checking u32 is needed, because sometimes it is less than zero.

If cpu->icount_decr.u32 is less than zero, the next translation block
would immediately exit with TB_EXIT_ICOUNT_EXPIRED, causing

            cpu->exception_index = EXCP_INTERRUPT;
            *last_tb = NULL;
            cpu_loop_exit(cpu);

from cpu_loop_exec_tb's "case TB_EXIT_ICOUNT_EXPIRED".

And the same is true for cpu->icount_decr.u16.low + cpu->icount_extra ==
0, so I don't understand why this part of the patch is necessary.

Paolo



reply via email to

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