Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/amd64/amd64 Deal with KMSAN fussiness. Pointed out...
details: https://anonhg.NetBSD.org/src/rev/03c06f636b76
branches: trunk
changeset: 933171:03c06f636b76
user: ad <ad%NetBSD.org@localhost>
date: Wed May 20 18:39:25 2020 +0000
description:
Deal with KMSAN fussiness. Pointed out by msaitoh@.
diffstat:
sys/arch/amd64/amd64/cpufunc.S | 27 ++++++++++++++++++++-------
1 files changed, 20 insertions(+), 7 deletions(-)
diffs (51 lines):
diff -r 863c0f97454b -r 03c06f636b76 sys/arch/amd64/amd64/cpufunc.S
--- a/sys/arch/amd64/amd64/cpufunc.S Wed May 20 18:37:50 2020 +0000
+++ b/sys/arch/amd64/amd64/cpufunc.S Wed May 20 18:39:25 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cpufunc.S,v 1.54 2020/05/19 21:54:10 ad Exp $ */
+/* $NetBSD: cpufunc.S,v 1.55 2020/05/20 18:39:25 ad Exp $ */
/*
* Copyright (c) 1998, 2007, 2008, 2020 The NetBSD Foundation, Inc.
@@ -206,7 +206,23 @@
END(x86_hotpatch)
#endif /* !XENPV */
-ENTRY(tsc_get_timecount)
+/* Could be exact same as cpu_counter but for KASAN fussiness. */
+ENTRY(cpu_counter32)
+ movq CPUVAR(CURLWP), %rcx
+1:
+ movq L_NCSW(%rcx), %rdi
+ rdtsc
+ addl CPUVAR(CC_SKEW), %eax
+ cmpq %rdi, L_NCSW(%rcx)
+ jne 2f
+ KMSAN_INIT_RET(4)
+ ret
+2:
+ jmp 1b
+END(cpu_counter32)
+STRONG_ALIAS(tsc_get_timecount, cpu_counter32)
+
+ENTRY(cpu_counter)
movq CPUVAR(CURLWP), %rcx
1:
movq L_NCSW(%rcx), %rdi
@@ -216,14 +232,11 @@
addq CPUVAR(CC_SKEW), %rax
cmpq %rdi, L_NCSW(%rcx)
jne 2f
- KMSAN_INIT_RET(4)
+ KMSAN_INIT_RET(8)
ret
2:
jmp 1b
-END(tsc_get_timecount)
-
-STRONG_ALIAS(cpu_counter, tsc_get_timecount)
-STRONG_ALIAS(cpu_counter32, tsc_get_timecount)
+END(cpu_counter)
ENTRY(rdmsr_safe)
movq CPUVAR(CURLWP), %r8
Home |
Main Index |
Thread Index |
Old Index