Author: kib
Date: Fri Mar 22 14:49:22 2019
New Revision: 345414
URL: https://svnweb.freebsd.org/changeset/base/345414

Log:
  MFC r345190:
  Provide deterministic (and somewhat useful) value for RDPID result,
  and for %ecx after RDTSCP.

Modified:
  stable/11/sys/amd64/amd64/initcpu.c
  stable/11/sys/i386/i386/initcpu.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/amd64/amd64/initcpu.c
==============================================================================
--- stable/11/sys/amd64/amd64/initcpu.c Fri Mar 22 14:35:15 2019        
(r345413)
+++ stable/11/sys/amd64/amd64/initcpu.c Fri Mar 22 14:49:22 2019        
(r345414)
@@ -255,6 +255,10 @@ initializecpu(void)
                init_via();
                break;
        }
+
+       if ((amd_feature & AMDID_RDTSCP) != 0 ||
+           (cpu_stdext_feature2 & CPUID_STDEXT2_RDPID) != 0)
+               wrmsr(MSR_TSC_AUX, PCPU_GET(cpuid));
 }
 
 void

Modified: stable/11/sys/i386/i386/initcpu.c
==============================================================================
--- stable/11/sys/i386/i386/initcpu.c   Fri Mar 22 14:35:15 2019        
(r345413)
+++ stable/11/sys/i386/i386/initcpu.c   Fri Mar 22 14:49:22 2019        
(r345414)
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
+#include <sys/pcpu.h>
 #include <sys/systm.h>
 #include <sys/sysctl.h>
 
@@ -768,6 +769,9 @@ initializecpu(void)
                elf32_nxstack = 1;
        }
 #endif
+       if ((amd_feature & AMDID_RDTSCP) != 0 ||
+           (cpu_stdext_feature2 & CPUID_STDEXT2_RDPID) != 0)
+               wrmsr(MSR_TSC_AUX, PCPU_GET(cpuid));
 }
 
 void
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to