On 08/27/2013 05:02 PM, Paolo Bonzini wrote:
> Il 27/08/2013 08:37, Alexey Kardashevskiy ha scritto:
>>>> So this is here to make sure we don't accidentally get out of halted state 
>>>> by an interrupt on that vcpu. Could you please somehow make that part 
>>>> obvious? Either by adding a comment or by only explicitly masking DEC and 
>>>> EE and a comment :).
>>>>
>>>>> +    cs->exit_request = 1;
>>>>
>>>> This should probably be qemu_cpu_kick_self().
>>>
>>> Uh, no, I don't think so.  This is there purely to make sure we exit
>>> the inner loop, and actually test cpu_can_run() which will test
>>> halted.  AFAICT qemu_cpu_kick_self() won't do anything similar.
>>
>> rtas_stop_self() eventually returns to kvm_cpu_exec() which calls
>> qemu_cpu_kick_self() and resets cs->exit_request before return so I do not
>> really see the difference in behaviour. And actually both ways CPU stops in
>> exactly the same way. What do I miss?
> 
> What about TCG?

Oh. Right. TCG :(

qemu_cpu_kick_self() crashes the guest and cs->exit_request works fine.

Why? Both should work? What is the expected behavior here? Thanks.


-- 
Alexey

Reply via email to