[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] viridian: unify time sources
> /* > @@ -136,7 +100,7 @@ static int64_t time_ref_count(const struct domain *d) > * 128 bit number which is then shifted 64 times to the right to obtain > * the high 64 bits." > */ Is there a good reason for using signed offset here? If so then maybe you should change the return type or check for bounds. > -static uint64_t scale_tsc(uint64_t tsc, uint64_t scale, uint64_t offset) > +static uint64_t scale_tsc(uint64_t tsc, uint64_t scale, int64_t offset) > { > uint64_t result; > > @@ -153,22 +117,46 @@ static uint64_t scale_tsc(uint64_t tsc, uint64_t scale, > uint64_t offset) > return result + offset; > } > > -static uint64_t time_now(struct domain *d) > +static uint64_t trc_val(const struct domain *d, int64_t offset) > { > uint64_t tsc, scale; > > - /* > - * If the reference TSC page is not enabled, or has been invalidated > - * fall back to the partition reference counter. > - */ > - if ( !d->arch.hvm.viridian->reference_tsc_valid ) > - return time_ref_count(d); > - > - /* Otherwise compute reference time in the same way the guest would */ > tsc = hvm_get_guest_tsc(pt_global_vcpu_target(d)); > scale = ((10000ul << 32) / d->arch.tsc_khz) << 32; > > - return scale_tsc(tsc, scale, 0); > + return scale_tsc(tsc, scale, offset); > +} Alex _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |