[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.13] x86/tsc: update vcpu time info on guest TSC adjustments
On Wed, Oct 23, 2019 at 11:55:13AM +0100, Wei Liu wrote: > On Wed, Oct 23, 2019 at 10:57:39AM +0200, Roger Pau Monne wrote: > > If a HVM/PVH guest writes to MSR_IA32_TSC{_ADJUST} and thus changes > > the value of the time stamp counter the vcpu time info must also be > > updated, or the time calculated by the guest using the Xen PV clock > > interface will be skewed. > > > > Update the vcpu time info when the guest writes to either MSR_IA32_TSC > > or MSR_IA32_TSC_ADJUST. This fixes lockups seen when running the > > pv-shim on AMD hardware, since the shim will aggressively try to keep > > TSCs in sync by periodically writing to MSR_IA32_TSC if the TSC is not > > reliable. > > > > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > > --- > > Cc: Jürgen Groß <jgross@xxxxxxxx> > > --- > > xen/arch/x86/hvm/hvm.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c > > index 9acd359c99..e4c0425330 100644 > > --- a/xen/arch/x86/hvm/hvm.c > > +++ b/xen/arch/x86/hvm/hvm.c > > @@ -442,6 +442,8 @@ static void hvm_set_guest_tsc_msr(struct vcpu *v, u64 > > guest_tsc) > > > > hvm_set_guest_tsc(v, guest_tsc); > > v->arch.hvm.msr_tsc_adjust += v->arch.hvm.cache_tsc_offset - > > tsc_offset; > > + if ( v == current ) > > + update_vcpu_system_time(v); > > Why not get rid of the test and always call update_vcpu_system_time(v)? If the vcpu is not running the update will be done by the scheduling code in schedule_tail. Calling update_vcpu_system_time unconditionally would work, I was just trying to avoid the overhead if it's not really needed. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |