Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Make kMSan compatible with KCOV. With kMSan we are forced to...



details:   https://anonhg.NetBSD.org/src/rev/77a40837afbb
branches:  trunk
changeset: 1004808:77a40837afbb
user:      maxv <maxv%NetBSD.org@localhost>
date:      Fri Nov 15 09:44:44 2019 +0000

description:
Make kMSan compatible with KCOV. With kMSan we are forced to stay with the
fsanitize flag on subr_kcov.c, which means that kMSan will instrument KCOV.
We add a bunch of __nomsan attributes to reduce this instrumentation, but
it does not remove it completely. That's fine.

diffstat:

 share/mk/bsd.sys.mk  |   4 ++--
 sys/kern/subr_kcov.c |  26 +++++++++++++-------------
 2 files changed, 15 insertions(+), 15 deletions(-)

diffs (135 lines):

diff -r f215289b97aa -r 77a40837afbb share/mk/bsd.sys.mk
--- a/share/mk/bsd.sys.mk       Fri Nov 15 09:03:26 2019 +0000
+++ b/share/mk/bsd.sys.mk       Fri Nov 15 09:44:44 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.sys.mk,v 1.295 2019/11/05 20:19:17 maxv Exp $
+#      $NetBSD: bsd.sys.mk,v 1.296 2019/11/15 09:44:44 maxv Exp $
 #
 # Build definitions used for NetBSD source tree builds.
 
@@ -247,7 +247,7 @@
 .if ${KCOV:U0} > 0
 KCOVFLAGS=     -fsanitize-coverage=trace-pc
 .for f in subr_kcov.c subr_lwp_specificdata.c subr_specificdata.c subr_asan.c \
-       subr_csan.c
+       subr_csan.c subr_msan.c
 KCOVFLAGS.${f}=                # empty
 .endfor
 CFLAGS+=       ${KCOVFLAGS.${.IMPSRC:T}:U${KCOVFLAGS}}
diff -r f215289b97aa -r 77a40837afbb sys/kern/subr_kcov.c
--- a/sys/kern/subr_kcov.c      Fri Nov 15 09:03:26 2019 +0000
+++ b/sys/kern/subr_kcov.c      Fri Nov 15 09:44:44 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: subr_kcov.c,v 1.8 2019/05/26 05:41:45 kamil Exp $      */
+/*     $NetBSD: subr_kcov.c,v 1.9 2019/11/15 09:44:44 maxv Exp $       */
 
 /*
  * Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -339,7 +339,7 @@
        return error;
 }
 
-static inline bool
+static inline bool __nomsan
 in_interrupt(void)
 {
        return curcpu()->ci_idepth >= 0;
@@ -347,7 +347,7 @@
 
 void __sanitizer_cov_trace_pc(void);
 
-void
+void __nomsan
 __sanitizer_cov_trace_pc(void)
 {
        extern int cold;
@@ -388,7 +388,7 @@
        }
 }
 
-static void
+static void __nomsan
 trace_cmp(uint64_t type, uint64_t arg1, uint64_t arg2, intptr_t pc)
 {
        extern int cold;
@@ -433,7 +433,7 @@
 
 void __sanitizer_cov_trace_cmp1(uint8_t arg1, uint8_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_cmp1(uint8_t arg1, uint8_t arg2)
 {
 
@@ -443,7 +443,7 @@
 
 void __sanitizer_cov_trace_cmp2(uint16_t arg1, uint16_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_cmp2(uint16_t arg1, uint16_t arg2)
 {
 
@@ -453,7 +453,7 @@
 
 void __sanitizer_cov_trace_cmp4(uint32_t arg1, uint32_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_cmp4(uint32_t arg1, uint32_t arg2)
 {
 
@@ -463,7 +463,7 @@
 
 void __sanitizer_cov_trace_cmp8(uint64_t arg1, uint64_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_cmp8(uint64_t arg1, uint64_t arg2)
 {
 
@@ -473,7 +473,7 @@
 
 void __sanitizer_cov_trace_const_cmp1(uint8_t arg1, uint8_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_const_cmp1(uint8_t arg1, uint8_t arg2)
 {
 
@@ -483,7 +483,7 @@
 
 void __sanitizer_cov_trace_const_cmp2(uint16_t arg1, uint16_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_const_cmp2(uint16_t arg1, uint16_t arg2)
 {
 
@@ -493,7 +493,7 @@
 
 void __sanitizer_cov_trace_const_cmp4(uint32_t arg1, uint32_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_const_cmp4(uint32_t arg1, uint32_t arg2)
 {
 
@@ -503,7 +503,7 @@
 
 void __sanitizer_cov_trace_const_cmp8(uint64_t arg1, uint64_t arg2);
 
-void
+void __nomsan
 __sanitizer_cov_trace_const_cmp8(uint64_t arg1, uint64_t arg2)
 {
 
@@ -513,7 +513,7 @@
 
 void __sanitizer_cov_trace_switch(uint64_t val, uint64_t *cases);
 
-void
+void __nomsan
 __sanitizer_cov_trace_switch(uint64_t val, uint64_t *cases)
 {
        uint64_t i, nbits, ncases, type;



Home | Main Index | Thread Index | Old Index