Ciao Paolo,

On 7/7/20 7:01 PM, Paolo Bonzini wrote:
> On 07/07/20 15:58, Claudio Fontana wrote:
>> +static void kvm_kick_vcpu_thread(CPUState *cpu)
>> +{
>> +    cpus_kick_thread(cpu);
>> +}
>> +
> 
> I would just use cpus_kick_thread instead of wrapping it (and likewise

Here I left the common code in cpus_kick_thread, which is just used "as is" for 
kvm,
but for hax f.e. we have:

void hax_kick_vcpu_thread(CPUState *cpu)
{
    /*
     * FIXME: race condition with the exit_request check in
     * hax_vcpu_hax_exec
     */
    cpu->exit_request = 1;
    cpus_kick_thread(cpu);
}

Maybe we will need additional code that specializes the kick also for HVF?

I cannot run cpus_kick_thread for _all_ accels, because it is not good for 
Windows (whpx and hax-windows).


> would provide a global function for noop synchronization).

I will look into providing global noops, thanks!

> 
> start_vcpu_thread is also a candidate for abstraction, so that

Thanks, will look into this!
The accel that I expect will resist this will be tcg, but will try to fit it.


> kvm_start_vcpu_thread(CPUState *cpu) would be just
> 
>       qemu_start_vcpu_thread(cpu, "KVM", kvm_vcpu_thread_fn);
> 
> Paolo
> 
> 

Ciao,

Claudio

Reply via email to