Il 29/09/2014 13:53, Alexander Graf ha scritto:
> 
>   cpu_handle_ioreq()
>   {
>     ...
> 
>     if (req->type == IOPORT_REGISTERS_SYNCHRONIZED) {
>         cpu->xen_vcpu_dirty = true;
>         synchronize_xen_to_env(xenptr, cpu);
>     }
> 
>     handle_ioreq();
> 
>     if (req->type == IOPORT_REGISTERS_SYNCHRONIZED) {
>         cpu->xen_vcpu_dirty = false;
>         synchronize_env_to_xen(xenptr, cpu);
>     }
> 
>     ...
>   }
> 
>   void xen_cpu_synchronize_state(CPUState *cpu)
>   {
>     assert(cpu->xen_vcpu_dirty);
>   }
> 
> Then no changes to the vmport code would be necessary and this problems
> where some code path wants to do direct access to registers
> automatically tells us that things are broken.

Yeah, that would be possible.  You do not even need synchronize_state,
it seems to me that it introduces more complication for little gain.

Paolo

Reply via email to