summaryrefslogtreecommitdiff
path: root/usr/src/lib
diff options
context:
space:
mode:
authorDan McDonald <danmcd@joyent.com>2021-01-27 10:08:32 -0500
committerDan McDonald <danmcd@joyent.com>2021-01-27 10:08:34 -0500
commitc203af42e9e7d0f82694cadf8cf2473863df5b2b (patch)
tree742053671ed177b7a404fce5dc85199c1fd24133 /usr/src/lib
parenta930493fb800d3a82f5482ec0915801c26205ef3 (diff)
parentbeed421eff10640141fe8f9da29a5c8033a97f52 (diff)
downloadillumos-joyent-release-20210128.tar.gz
[illumos-gate merge]release-20210128
commit beed421eff10640141fe8f9da29a5c8033a97f52 13383 generalize check for serializing LFENCE 13384 tsc_read() should use lfence when prudent 13387 bhyve should expose lfence serialize in DE_CFG MSR commit 78801af7286cd73dbc996d470f789e75993cf15d 13365 Add option to testrunner to re-run just failed tests commit 2d84dc94714fa18a51c85173f806acbc2d1b4257 13360 loader: use BGRA RBG data in gfx functions commit a98e9e2e16f7c0305e8538246f8f8464517b3884 13432 idm: symbol 'idm' is multiply-defined commit a35d0bb9919a1ab99b0305e759552bef6a8bd053 13431 rdsib: multiply-defined symbols commit 245cbc655bd26e8de57809bc109b82105a30693d 13430 scsi_vhci: multiply-defined symbols commit 9868091de5a69073a55e3b8cc1a378cac9220edf 13429 nge: multiply-defined symbols commit 6626685934fc28e358a8038d599be9e53aa0715e 13428 rdsv3: symbol 'rdsv3_one_sec_in_hz' is multiply-defined commit 734e1f66c3254ea498ea4ce3fe6dc7e6f9f293ff 13473 svccfg: dirs for manifests are manifest not manifests commit 4f1c2d80debdaa7ad92b0677c6c86fb6b782e811 13425 i86xpv: multiply-defined symbols Conflicts: usr/src/test/zfs-tests/cmd/scripts/zfstest.ksh
Diffstat (limited to 'usr/src/lib')
-rw-r--r--usr/src/lib/commpage/amd64/cp_subr.s11
-rw-r--r--usr/src/lib/commpage/common/cp_main.c1
-rw-r--r--usr/src/lib/commpage/i386/cp_subr.s11
3 files changed, 12 insertions, 11 deletions
diff --git a/usr/src/lib/commpage/amd64/cp_subr.s b/usr/src/lib/commpage/amd64/cp_subr.s
index 09b8deaf8d..ebae0ed307 100644
--- a/usr/src/lib/commpage/amd64/cp_subr.s
+++ b/usr/src/lib/commpage/amd64/cp_subr.s
@@ -11,6 +11,7 @@
/*
* Copyright 2019 Joyent, Inc.
+ * Copyright 2020 Oxide Computer Company
*/
#include <sys/asm_linkage.h>
@@ -110,11 +111,11 @@
movl %edx, %r10d
3:
- cmpl $TSC_RDTSC_MFENCE, %esi
- jne 4f
- mfence
- rdtsc
- jmp 7f
+ /*
+ * TSC_RDTSC_MFENCE was used in the past for AMD chips, but has been
+ * supplanted by TSC_RDTSC_LFENCE, which works on Intel and AMD (when
+ * lfence can be confirmed as serializing).
+ */
4:
cmpl $TSC_RDTSC_LFENCE, %esi
diff --git a/usr/src/lib/commpage/common/cp_main.c b/usr/src/lib/commpage/common/cp_main.c
index 13a9aea3d7..42cc37d6b8 100644
--- a/usr/src/lib/commpage/common/cp_main.c
+++ b/usr/src/lib/commpage/common/cp_main.c
@@ -25,7 +25,6 @@ __cp_can_gettime(comm_page_t *cp)
{
switch (cp->cp_tsc_type) {
case TSC_TSCP:
- case TSC_RDTSC_MFENCE:
case TSC_RDTSC_LFENCE:
case TSC_RDTSC_CPUID:
return (1);
diff --git a/usr/src/lib/commpage/i386/cp_subr.s b/usr/src/lib/commpage/i386/cp_subr.s
index d1e07008c4..83b7dcff56 100644
--- a/usr/src/lib/commpage/i386/cp_subr.s
+++ b/usr/src/lib/commpage/i386/cp_subr.s
@@ -11,6 +11,7 @@
/*
* Copyright 2019 Joyent, Inc.
+ * Copyright 2020 Oxide Computer Company
*/
#include <sys/asm_linkage.h>
@@ -88,11 +89,11 @@
movl CP_TSC_TYPE(%edi), %eax
4:
- cmpl $TSC_RDTSC_MFENCE, %eax
- jne 5f
- mfence
- rdtsc
- jmp 8f
+ /*
+ * TSC_RDTSC_MFENCE was used in the past for AMD chips, but has been
+ * supplanted by TSC_RDTSC_LFENCE, which works on Intel and AMD (when
+ * lfence can be confirmed as serializing).
+ */
5:
cmpl $TSC_RDTSC_LFENCE, %eax