Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Mar 2019 09:25:20 -0700
From:      John Baldwin <jhb@FreeBSD.org>
To:        Mark Johnston <markj@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r345359 - in head/sys/cddl/dev/dtrace: amd64 i386
Message-ID:  <d26cb869-2f8b-2793-979d-d69c6935b227@FreeBSD.org>
In-Reply-To: <201903210252.x2L2qMSP022374@repo.freebsd.org>
References:  <201903210252.x2L2qMSP022374@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3/20/19 7:52 PM, Mark Johnston wrote:
> Author: markj
> Date: Thu Mar 21 02:52:22 2019
> New Revision: 345359
> URL: https://svnweb.freebsd.org/changeset/base/345359
> 
> Log:
>   Don't attempt to measure TSC skew when running as a VM guest.
>   
>   It simply doesn't work in general since VCPUs may migrate between
>   physical cores.  The approach used to measure skew also doesn't
>   make much sense in a VM.
>   
>   PR:		218452
>   MFC after:	2 weeks
>   Sponsored by:	The FreeBSD Foundation
> 
> Modified:
>   head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
>   head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> 
> Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> ==============================================================================
> --- head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c	Thu Mar 21 01:16:37 2019	(r345358)
> +++ head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c	Thu Mar 21 02:52:22 2019	(r345359)
> @@ -319,6 +319,9 @@ dtrace_gethrtime_init(void *arg)
>  	int i;
>  #endif
>  
> +	if (vm_guest)
> +		return;
> +
>  	/* The current CPU is the reference one. */
>  	sched_pin();
>  	tsc_skew[curcpu] = 0;
> 
> Modified: head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> ==============================================================================
> --- head/sys/cddl/dev/dtrace/i386/dtrace_subr.c	Thu Mar 21 01:16:37 2019	(r345358)
> +++ head/sys/cddl/dev/dtrace/i386/dtrace_subr.c	Thu Mar 21 02:52:22 2019	(r345359)
> @@ -321,6 +321,9 @@ dtrace_gethrtime_init(void *arg)
>  	int i;
>  #endif
>  
> +	if (vm_guest)
> +		return;
> +
>  	/* The current CPU is the reference one. */
>  	sched_pin();
>  	tsc_skew[curcpu] = 0;

I do think I would prefer 'if (vm_guest != VM_GUEST_NO)' or some such vs
'if (vm_guest)'.  The latter does read well, but it seems like comparisons
against enums should always be against an enum value?  That seems more
consistent with our rule to require pointers to be compared with NULL
for example.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d26cb869-2f8b-2793-979d-d69c6935b227>