>  -
>  -       delta = kvm_clock_read();
>  -
>         native_write_msr(MSR_KVM_WALL_CLOCK, low, high);
>  -       do {
>  -               version = wall_clock.wc_version;
>  -               rmb();
>  -               wc_sec = wall_clock.wc_sec;
>  -               wc_nsec = wall_clock.wc_nsec;
>  -               rmb();
>  -       } while ((wall_clock.wc_version != version) || (version & 1));
>  -
>  -       delta = kvm_clock_read() - delta;
>  -       delta += wc_nsec;
>  -       nsec = do_div(delta, NSEC_PER_SEC);
>  -       set_normalized_timespec(&ts, wc_sec + delta, nsec);
>  -       /*
>  -        * Of all mechanisms of time adjustment I've tested, this one
>  -        * was the champion!
>  -        */
>  -       return ts.tv_sec + 1;
>  +
>  +       vcpu_time = &get_cpu_var(hv_clock);
>  +       pvclock_read_wallclock(&wall_clock, vcpu_time, &ts);
>  +       put_cpu_var(hv_clock);
>  +
>  +       return ts.tv_sec;
>   }

Here it is. Despite some needed cleanups, patches look beautiful to me.

-- 
Glauber Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to