Re: [PATCH 1/3] kcov: support comparison operands collection
From: Dmitry Vyukov <dvyukov@google.com>
Date: 2017-09-12 17:42:23
Also in:
lkml
On Wed, Aug 30, 2017 at 9:08 PM, Dmitry Vyukov [off-list ref] wrote:
On Wed, Aug 30, 2017 at 8:23 PM, Mark Rutland [off-list ref] wrote:quoted
Hi, On Wed, Aug 30, 2017 at 06:23:29PM +0200, Dmitry Vyukov wrote:quoted
From: Victor Chibotaru <redacted> Enables kcov to collect comparison operands from instrumented code. This is done by using Clang's -fsanitize=trace-cmp instrumentation (currently not available for GCC).What's needed to build the kernel with Clang these days? I was under the impression that it still wasn't possible to build arm64 with clang due to a number of missing features (e.g. the %a assembler output template).quoted
The comparison operands help a lot in fuzz testing. E.g. they are used in Syzkaller to cover the interiors of conditional statements with way less attempts and thus make previously unreachable code reachable. To allow separate collection of coverage and comparison operands two different work modes are implemented. Mode selection is now done via a KCOV_ENABLE ioctl call with corresponding argument value. Signed-off-by: Victor Chibotaru <redacted> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Alexander Popov <redacted> Cc: Andrey Ryabinin <redacted> Cc: Kees Cook <redacted> Cc: Vegard Nossum <redacted> Cc: Quentin Casasnovas <redacted> Cc: syzkaller@googlegroups.com Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org --- Clang instrumentation: https://clang.llvm.org/docs/SanitizerCoverage.html#tracing-data-flowHow stable is this? The comment at the end says "This interface is a subject to change."The intention is that this is not subject to change anymore (since we are using it in kernel). I've mailed change to docs: https://reviews.llvm.org/D37303 FWIW, there is patch in flight that adds this instrumentation to gcc: https://groups.google.com/forum/#!topic/syzkaller/CSLynn6nI-A It seems to be stalled on review phase, though.
Good news is that this is submitted to gcc in 251801. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>