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
