Glauber Costa wrote:
> This patch writes 0 (actually, what really matters is that the
> LSB is cleared) to the system time msr before rebooting/shutting down
> the machine.
>
> Without it, we can have a random memory location being written
> when the guest comes back
>       if (!kvm_para_available())
> @@ -154,6 +181,11 @@ void __init kvmclock_init(void)
>               pv_time_ops.set_wallclock = kvm_set_wallclock;
>               pv_time_ops.sched_clock = kvm_clock_read;
>               pv_apic_ops.setup_secondary_clock = kvm_setup_secondary_clock;
> +             machine_ops.emergency_restart = kvm_emergency_restart;
> +             machine_ops.shutdown  = kvm_shutdown;
> +             machine_ops.restart  = kvm_restart;
> +             machine_ops.halt  = kvm_halt;
> +             machine_ops.power_off  = kvm_power_off;
>               clocksource_register(&kvm_clock);
>       }
>  }
>   

Oh, I think that these are all unnecessary.  You need to stop the clock 
only if the memory it uses will be reused.  Halt, shutdown and poweroff 
clearly don't.  Resets need to go through the host anyway, since they 
can be invoked without the guest knowing about it.

The only case I can think of where we need to stop the clock is kexec.

-- 
Any sufficiently difficult bug is indistinguishable from a feature.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to