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>