From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v4 1/3] x86: Use native RDTSC(P) execution when guest and host frequencies are the same Date: Wed, 16 Apr 2014 09:02:10 -0400 Message-ID: <534E7F52.4040406@oracle.com> References: <1397611668-15338-1-git-send-email-boris.ostrovsky@oracle.com> <1397611668-15338-2-git-send-email-boris.ostrovsky@oracle.com> <534E6F7A0200007800009670@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <534E6F7A0200007800009670@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: kevin.tian@intel.com, eddie.dong@intel.com, jun.nakajima@intel.com, suravee.suthikulpanit@amd.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 04/16/2014 05:54 AM, Jan Beulich wrote: >>>> On 16.04.14 at 03:27, wrote: >> @@ -1889,10 +1890,14 @@ void tsc_set_info(struct domain *d, >> d->arch.vtsc_offset = get_s_time() - elapsed_nsec; >> d->arch.tsc_khz = gtsc_khz ? gtsc_khz : cpu_khz; >> set_time_scale(&d->arch.vtsc_to_ns, d->arch.tsc_khz * 1000 ); >> - /* use native TSC if initial host has safe TSC, has not migrated >> - * yet and tsc_khz == cpu_khz */ >> - if ( host_tsc_is_safe() && incarnation == 0 && >> - d->arch.tsc_khz == cpu_khz ) >> + /* >> + * Use native TSC if initial host has safe TSC and either has not >> + * migrated yet or tsc_khz == cpu_khz (either "naturally" or via >> + * TSC scaling) >> + */ >> + if ( host_tsc_is_safe() && >> + (incarnation == 0 || d->arch.tsc_khz == cpu_khz || >> + cpu_has_tsc_ratio) ) > Can't you drop checking incarnation to be zero then? In that case, > afaict d->arch.tsc_khz == cpu_khz due to gtsc_khz being passed > in as zero from arch_domain_create(). Yes, it's pointless. I was thinking that maybe toolstack may pass gtsc_khz != cpu_khz during initial boot (it doesn't do it now, but theoretically it could) but then we shouldn't be using vtsc=0 in that case anyway. -boris