Message ID | 20191017141305.146193-3-elver@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Kernel Concurrency Sanitizer (KCSAN) | expand |
On Thu, Oct 17, 2019 at 4:13 PM Marco Elver <elver@google.com> wrote: > > This patch adds KCSAN runtime functions to the objtool whitelist. > > Signed-off-by: Marco Elver <elver@google.com> > --- > tools/objtool/check.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/tools/objtool/check.c b/tools/objtool/check.c > index 044c9a3cb247..d1acc867b43c 100644 > --- a/tools/objtool/check.c > +++ b/tools/objtool/check.c > @@ -466,6 +466,23 @@ static const char *uaccess_safe_builtin[] = { > "__asan_report_store4_noabort", > "__asan_report_store8_noabort", > "__asan_report_store16_noabort", > + /* KCSAN */ > + "__kcsan_check_watchpoint", > + "__kcsan_setup_watchpoint", > + /* KCSAN/TSAN out-of-line */ There is no TSAN in-line instrumentation. > + "__tsan_func_entry", > + "__tsan_func_exit", > + "__tsan_read_range", There is also __tsan_write_range(), right? Isn't it safer to add it right away? > + "__tsan_read1", > + "__tsan_read2", > + "__tsan_read4", > + "__tsan_read8", > + "__tsan_read16", > + "__tsan_write1", > + "__tsan_write2", > + "__tsan_write4", > + "__tsan_write8", > + "__tsan_write16", > /* KCOV */ > "write_comp_data", > "__sanitizer_cov_trace_pc", > -- > 2.23.0.866.gb869b98d4c-goog >
On Mon, 21 Oct 2019 at 17:15, Dmitry Vyukov <dvyukov@google.com> wrote: > > On Thu, Oct 17, 2019 at 4:13 PM Marco Elver <elver@google.com> wrote: > > > > This patch adds KCSAN runtime functions to the objtool whitelist. > > > > Signed-off-by: Marco Elver <elver@google.com> > > --- > > tools/objtool/check.c | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > > diff --git a/tools/objtool/check.c b/tools/objtool/check.c > > index 044c9a3cb247..d1acc867b43c 100644 > > --- a/tools/objtool/check.c > > +++ b/tools/objtool/check.c > > @@ -466,6 +466,23 @@ static const char *uaccess_safe_builtin[] = { > > "__asan_report_store4_noabort", > > "__asan_report_store8_noabort", > > "__asan_report_store16_noabort", > > + /* KCSAN */ > > + "__kcsan_check_watchpoint", > > + "__kcsan_setup_watchpoint", > > + /* KCSAN/TSAN out-of-line */ > > There is no TSAN in-line instrumentation. Done @ v3. > > + "__tsan_func_entry", > > + "__tsan_func_exit", > > + "__tsan_read_range", > > There is also __tsan_write_range(), right? Isn't it safer to add it right away? Added all missing functions for v3. Many thanks for the comments! > > + "__tsan_read1", > > + "__tsan_read2", > > + "__tsan_read4", > > + "__tsan_read8", > > + "__tsan_read16", > > + "__tsan_write1", > > + "__tsan_write2", > > + "__tsan_write4", > > + "__tsan_write8", > > + "__tsan_write16", > > /* KCOV */ > > "write_comp_data", > > "__sanitizer_cov_trace_pc", > > -- > > 2.23.0.866.gb869b98d4c-goog > >
diff --git a/tools/objtool/check.c b/tools/objtool/check.c index 044c9a3cb247..d1acc867b43c 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -466,6 +466,23 @@ static const char *uaccess_safe_builtin[] = { "__asan_report_store4_noabort", "__asan_report_store8_noabort", "__asan_report_store16_noabort", + /* KCSAN */ + "__kcsan_check_watchpoint", + "__kcsan_setup_watchpoint", + /* KCSAN/TSAN out-of-line */ + "__tsan_func_entry", + "__tsan_func_exit", + "__tsan_read_range", + "__tsan_read1", + "__tsan_read2", + "__tsan_read4", + "__tsan_read8", + "__tsan_read16", + "__tsan_write1", + "__tsan_write2", + "__tsan_write4", + "__tsan_write8", + "__tsan_write16", /* KCOV */ "write_comp_data", "__sanitizer_cov_trace_pc",
This patch adds KCSAN runtime functions to the objtool whitelist. Signed-off-by: Marco Elver <elver@google.com> --- tools/objtool/check.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)