andrey.k...@linux.dev
unread,Jul 22, 2024, 6:37:32 PM (5 days ago) Jul 22Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Dmitry Vyukov, Andrew Morton, Andrey Konovalov, Aleksandr Nogikh, Marco Elver, Alexander Potapenko, kasa...@googlegroups.com, linu...@kvack.org, Yury Norov, Rasmus Villemoes, linux-...@vger.kernel.org
From: Andrey Konovalov <
andre...@gmail.com>
This file produces large amounts of flaky coverage not useful for the
KCOV's intended use case (guiding the fuzzing process).
Signed-off-by: Andrey Konovalov <
andre...@gmail.com>
---
I noticed this while running one of the syzkaller's programs.
In one run of the program, the number of KCOV entries amounts to ~300k,
with the top ones:
117285 /home/user/src/lib/find_bit.c:137 (discriminator 10)
116752 /home/user/src/lib/find_bit.c:137 (discriminator 3)
2455 /home/user/src/lib/vsprintf.c:2559
2033 /home/user/src/fs/kernfs/dir.c:317
1662 /home/user/src/fs/kernfs/kernfs-internal.h:72
...
In another run (that triggers exactly the same behavior in the kernel),
the amount of entries drops to ~110k:
7141 /home/user/src/lib/find_bit.c:137 (discriminator 10)
7110 /home/user/src/lib/find_bit.c:137 (discriminator 3)
2455 /home/user/src/lib/vsprintf.c:2559
2033 /home/user/src/fs/kernfs/dir.c:317
1662 /home/user/src/fs/kernfs/kernfs-internal.h:72
...
With this patch applied, the amount of KCOV entries for the same program
remains somewhat stable at ~100k.
---
lib/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/Makefile b/lib/Makefile
index 322bb127b4dc..0fde1c360f32 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -14,6 +14,7 @@ KCOV_INSTRUMENT_list_debug.o := n
KCOV_INSTRUMENT_debugobjects.o := n
KCOV_INSTRUMENT_dynamic_debug.o := n
KCOV_INSTRUMENT_fault-inject.o := n
+KCOV_INSTRUMENT_find_bit.o := n
# string.o implements standard library functions like memset/memcpy etc.
# Use -ffreestanding to ensure that the compiler does not try to "optimize"
--
2.25.1