Kmemleak could scan task stacks while plain writes happens to those
stack variables which could results in data races. For example, in
sys_rt_sigaction and do_sigaction(), it could have plain writes in
a 32-byte size. Since the kmemleak does not care about the actual values
of a non-pointer and all do_sigaction() call sites only copy to stack
variables, just disable KCSAN for kmemleak to avoid annotating anything
outside Kmemleak just because Kmemleak scans everything.
Suggested-by: Marco Elver <[email protected]>
Signed-off-by: Qian Cai <[email protected]>
---
mm/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/mm/Makefile b/mm/Makefile
index 946754cc66b6..6e263045f0c2 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -14,6 +14,7 @@ KCSAN_SANITIZE_slab_common.o := n
KCSAN_SANITIZE_slab.o := n
KCSAN_SANITIZE_slub.o := n
KCSAN_SANITIZE_page_alloc.o := n
+KCSAN_SANITIZE_kmemleak.o := n
# These files are disabled because they produce non-interesting and/or
# flaky coverage that is not a function of syscall inputs. E.g. slab is out of
--
1.8.3.1
On Tue, 3 Mar 2020 at 20:28, Qian Cai <[email protected]> wrote:
>
> Kmemleak could scan task stacks while plain writes happens to those
> stack variables which could results in data races. For example, in
> sys_rt_sigaction and do_sigaction(), it could have plain writes in
> a 32-byte size. Since the kmemleak does not care about the actual values
> of a non-pointer and all do_sigaction() call sites only copy to stack
> variables, just disable KCSAN for kmemleak to avoid annotating anything
> outside Kmemleak just because Kmemleak scans everything.
>
> Suggested-by: Marco Elver <[email protected]>
> Signed-off-by: Qian Cai <[email protected]>
Acked-by: Marco Elver <[email protected]>
Thank you!
> ---
> mm/Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/Makefile b/mm/Makefile
> index 946754cc66b6..6e263045f0c2 100644
> --- a/mm/Makefile
> +++ b/mm/Makefile
> @@ -14,6 +14,7 @@ KCSAN_SANITIZE_slab_common.o := n
> KCSAN_SANITIZE_slab.o := n
> KCSAN_SANITIZE_slub.o := n
> KCSAN_SANITIZE_page_alloc.o := n
> +KCSAN_SANITIZE_kmemleak.o := n
>
> # These files are disabled because they produce non-interesting and/or
> # flaky coverage that is not a function of syscall inputs. E.g. slab is out of
> --
> 1.8.3.1
>
On Tue, Mar 03, 2020 at 02:28:35PM -0500, Qian Cai wrote:
> Kmemleak could scan task stacks while plain writes happens to those
> stack variables which could results in data races. For example, in
> sys_rt_sigaction and do_sigaction(), it could have plain writes in
> a 32-byte size. Since the kmemleak does not care about the actual values
> of a non-pointer and all do_sigaction() call sites only copy to stack
> variables, just disable KCSAN for kmemleak to avoid annotating anything
> outside Kmemleak just because Kmemleak scans everything.
>
> Suggested-by: Marco Elver <[email protected]>
> Signed-off-by: Qian Cai <[email protected]>
Acked-by: Catalin Marinas <[email protected]>