|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 2/3] x86/svn: Enable TSC scaling
>>> On 16.04.14 at 03:27, <boris.ostrovsky@xxxxxxxxxx> wrote:
> TSC ratio enabling logic is inverted: we want to use it when we
> are running in native tsc mode, i.e. when d->arch.vtsc is zero.
>
> Also, since now svm_set_tsc_offset()'s calculations depend
> on vtsc's value, we need to call hvm_funcs.set_tsc_offset() after
> vtsc changes in tsc_set_info().
>
> In addition, with TSC ratio enabled, svm_set_tsc_offset() will
> need to do rdtsc. With that we may end up having TSCs on guest's
> processors out of sync. d->arch.hvm_domain.sync_tsc which is set
> by the boot processor can now be used by APs as reference TSC
> value instead of host's current TSC.
>
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
with two cosmetic remarks:
> @@ -688,11 +688,14 @@ static void svm_set_tsc_offset(struct vcpu *v, u64
> offset)
> struct domain *d = v->domain;
> uint64_t host_tsc, guest_tsc;
>
> - guest_tsc = hvm_get_guest_tsc(v);
> + guest_tsc = hvm_get_guest_tsc_fixed(v, at_tsc);
>
> /* Re-adjust the offset value when TSC_RATIO is available */
> - if ( cpu_has_tsc_ratio && d->arch.vtsc ) {
> - rdtscll(host_tsc);
> + if ( cpu_has_tsc_ratio && !d->arch.vtsc ) {
Please fix the coding style violation here if you already touch the line.
> --- a/xen/include/asm-x86/hvm/domain.h
> +++ b/xen/include/asm-x86/hvm/domain.h
> @@ -90,6 +90,12 @@ struct hvm_domain {
> bool_t qemu_mapcache_invalidate;
> bool_t is_s3_suspended;
>
> + /*
> + * TSC value that VCPUs use to calculate their tsc_offset value.
> + * Used during initialization and save/restore
Stop missing at end of sentence.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |