From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4311C64EC7 for ; Tue, 28 Feb 2023 20:01:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5B3E56B0071; Tue, 28 Feb 2023 15:01:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5631B6B0073; Tue, 28 Feb 2023 15:01:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 45B066B0074; Tue, 28 Feb 2023 15:01:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3282D6B0071 for ; Tue, 28 Feb 2023 15:01:16 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E53B380CF3 for ; Tue, 28 Feb 2023 20:01:15 +0000 (UTC) X-FDA: 80517769710.26.CFF7FE1 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf01.hostedemail.com (Postfix) with ESMTP id B467D4002E for ; Tue, 28 Feb 2023 20:01:13 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=B9lAkxeF; spf=pass (imf01.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677614473; a=rsa-sha256; cv=none; b=H+i+2H/iswuOaeGIXdatd43AGPdge+gwncLdPwbOYsYAFUzXd1/azmth9K0WbUYid0BvvF 7Zo03EwtIrJrjgOSdcRAMpbUh9YwCU+p5nNr1i84rktus2FYiVrh775SyPZixR4SwlF1u+ U7wzhvfXVNPFbCDFiuDRUHBgqIV5rAQ= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=B9lAkxeF; spf=pass (imf01.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677614473; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=+UfcMv5b3nEqDwC1e7v3pq9dQo0t54UUGukhaiaf8Ow=; b=dHWZ/f1rY+TqgTYf9O+CGfvvKeuID+aHGuYR89ByMf/7X04HJZKq/q5Ehol7gvJBktMK0R fu48MiDhe5amhzg+MI83KQA1TDATskMChCUrKWaFZj3ansM8I8g5o+Ojms8EKPWvDjBGQx N8QB6e8gUIB2UPUN1vCUtSdBJ84eoXw= Received: by mail-pf1-f176.google.com with SMTP id u20so6541731pfm.7 for ; Tue, 28 Feb 2023 12:01:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677614472; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+UfcMv5b3nEqDwC1e7v3pq9dQo0t54UUGukhaiaf8Ow=; b=B9lAkxeFd4CxKKgbYrJR+T1C9ooo155l5GksgZi3LV9GZm26Ku/MQz44ODBx+okIWY N+HXaHnXUX0uZ/wfZYHax/u1VDz5QywDsnB+u2v2JtVjATLqDAOkhTQ3Q5bEr7Ics1QG TJYX7TDAqByynpj/s5PZT95jAWZ7cCJ+S4sGJlSdi8Iep8No3LZGdsykMRSANdan2OG6 d958/VRNQWXJkdYHO7HHop3hO7aq7yyS3Lr8lLzF8xW8jsqf5c82mykgcZIki8TSeD1x v8l9RTiW3bVNZ4HPCrEXUKweHefipWqwqHF3iPgeK7VbRgbxjGDdPEXAdBAgUbwdW2mx sTDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677614472; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+UfcMv5b3nEqDwC1e7v3pq9dQo0t54UUGukhaiaf8Ow=; b=u5RD/nBGPQTLNhD4YTCtAN/MYcQhyr/yB+95i7WBJfWHYDFxwE5w8peqr56ZxaslKt SDt71I1hDRlI21gTB6nOOs9wisKGEPtEumBdxpnxZgunua+dKs0JOeH/+BfNKhiRWR7a /ZWBCrkMhxgXjyub7DRi8cV9+79OcI2JUqJTqtvcVxfcbkkKmY2lmEnFOgRl/6smC1ce cpcslx6xoS1uM96X9ZJ5QFL7b9tKuRaMh32W1i+dUpuBNkKvJiB/Swjibde8Iu4+kFcU Kw1KshlH2CRT4LkI4hipa3VhKsezoGse6oPEvE2ldf8uV1OFCQSJIsLdKUG/TX3rRtZl GpYg== X-Gm-Message-State: AO0yUKVeDq+c/qQASscOPm6ixVrCZSGpVKOWHBYfrEzNscvhvhrTmJgj yj9NMn8euEpVabGgLCdqX8cKPxcyr6ZzyurHvGE= X-Google-Smtp-Source: AK7set8PU++T+7UrwTYBPXu19mPdTFORsfANJhNq2+6hEF8s8fvoUU46LhZlt65lrr+yVRyrmxzFVOKKiaQRm1go4n8= X-Received: by 2002:a62:824c:0:b0:606:a48f:c211 with SMTP id w73-20020a62824c000000b00606a48fc211mr348879pfd.1.1677614472313; Tue, 28 Feb 2023 12:01:12 -0800 (PST) MIME-Version: 1.0 References: <0b5efd70e31bba7912cf9a6c951f0e76a8df27df.1677517724.git.andreyknvl@google.com> In-Reply-To: From: Andrey Konovalov Date: Tue, 28 Feb 2023 21:01:01 +0100 Message-ID: Subject: Re: [PATCH] kcov: improve documentation To: Dmitry Vyukov Cc: andrey.konovalov@linux.dev, Marco Elver , Alexander Potapenko , kasan-dev@googlegroups.com, Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: B467D4002E X-Rspamd-Server: rspam01 X-Stat-Signature: adnemjjurx9nhz59m6euj5hnnjgohoab X-HE-Tag: 1677614473-788074 X-HE-Meta: U2FsdGVkX18AF2I6fepZqiOyZ6TlxylDds1mdxbdLuUDeMM+XLjeVZQJtLAjyYCGnPk3iONSsL3/rjf1sU7XEXl2gQnaXqz1syhLDLptoVMSXzDmOKoJQcZggloCVVZtZUk33DCHJ8g1QBocIwQIf+iFTvVywUr99s7QIDy+/dbEExmLAxfjcWtUKQ+N/GNsxLqW4WsyzOCwXH1l5Dt8TroNO9BglmeuhRZyKCdkcdHfw5IYxwnkWh05DitTuSaq6d8ybNl/pe71QkGJhBBA0pmpByu9j/LDu9A6hMJvhemcIzkau27OvYIXF9QXDKBpKlc76os7LuLHoTDjmh8DZnLhV9ZK99UdmNzuqjp/PEO8CZ6x3gLZci5E9ZtTWBzj85byaB3UDSG9Naw7Fo+PFDK6ZvpS+DgEiN3Dw8psRX50r5S8OFJPBfc9ROOlVWeJP0BM+OHxliwzjFCaWu8SZFzoIUYBsxf97XYXPQDc2t0ijbp5yqlaeQlhi75t5glZsiWCMAVtjuvHJgO6+uGa6tqHvglnLc89ssuEQcvE7GiNnGBaM7xS52j2tx4xYFMdPcLhk8jsBNOShrgRP/AAkihmRuU2fxHmU0od6GFL88fFCFHLbuvSPUVW9Ahm6s4yAnwrWLfLk55EZNFSabW9HkfHGY3DVkLYx9XR4n8ublBM1PjuQ4ziJ92bypkzLo0pr+fCCxbshdHAN/TvB9brA+iILw32f5MrL9BUtrdLdhbDUPN0Ll+P2fhelECMGGlCYzk3JeA4CTuua4CT7re0JP0l6hL0ThXWdfyE6DUHcd2GyPtD460rr/dfEAGThGUnvT/VrRsrcw/OUEeh2k9WPPWTedzTgwypoJ/zF8PqVNPtvOuag7a7+cMfMcagoLdunuGQYoAsnFQdiRHPdBxtNupelgn+GNTTvTrzxO/yjnA4EVceXcAzoA2CkKh+D4UMd8JVVRWa1V53EoJkgdE 90oTpQU8 VmVEh7AKWfAYIZglmuMOjWDYVEoGenaW3YfgCjCXb8RLmAkEXJTCZA4ZlZrrepp68IchA8ZwOC+K28M5xv/CTp2l2D2+uaq5L6OP+pkPMBopsdFc5PlN5YHbwtFqyBe29Zm92Utcps7k0zywxRRXTWjrA4EBerAMH8QjtkFCwTZo/oHta9OJhKhnjE6OCxP741oljDuAU7wvwkL0aparBZ/PEEKw/J/j9/j2F0tk6b3m1Jbuu+s322a0l8/LTDyHJW/amqH1wepsBGCwlo9dcU8E0p8djTc1xIMeYR0IS7yHRdge+VPWk1k0FlfyEuZ+9RMohHJdjqsWkzdH1OZNsLm4WaAMOPNb1R8lvGHBec6UaxVXk4tgqQTKLY0CYAvful2lhq8Iq6xHc1xY= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Feb 28, 2023 at 10:37=E2=80=AFAM Dmitry Vyukov = wrote: > > On Mon, 27 Feb 2023 at 18:17, wrote: > > > > From: Andrey Konovalov > > > > Improve KCOV documentation: > > > > - Use KCOV instead of kcov, as the former is more widely-used. > > > > - Mention Clang in compiler requirements. > > > > - Use ``annotations`` for inline code. > > > > - Rework remote coverage collection documentation for better clarity. > > > > - Various smaller changes. > > > > Signed-off-by: Andrey Konovalov > > --- > > Documentation/dev-tools/kcov.rst | 169 +++++++++++++++++++------------ > > 1 file changed, 102 insertions(+), 67 deletions(-) > > > > diff --git a/Documentation/dev-tools/kcov.rst b/Documentation/dev-tools= /kcov.rst > > index d83c9ab49427..a113a03a475f 100644 > > --- a/Documentation/dev-tools/kcov.rst > > +++ b/Documentation/dev-tools/kcov.rst > > @@ -1,42 +1,50 @@ > > -kcov: code coverage for fuzzing > > +KCOV: code coverage for fuzzing > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > > > > -kcov exposes kernel code coverage information in a form suitable for c= overage- > > -guided fuzzing (randomized testing). Coverage data of a running kernel= is > > -exported via the "kcov" debugfs file. Coverage collection is enabled o= n a task > > -basis, and thus it can capture precise coverage of a single system cal= l. > > +KCOV collects and exposes kernel code coverage information in a form s= uitable > > +for coverage-guided fuzzing. Coverage data of a running kernel is expo= rted via > > +the ``kcov`` debugfs file. Coverage collection is enabled on a task ba= sis, and > > +thus KCOV can capture precise coverage of a single system call. > > > > -Note that kcov does not aim to collect as much coverage as possible. I= t aims > > -to collect more or less stable coverage that is function of syscall in= puts. > > -To achieve this goal it does not collect coverage in soft/hard interru= pts > > -and instrumentation of some inherently non-deterministic parts of kern= el is > > -disabled (e.g. scheduler, locking). > > +Note that KCOV does not aim to collect as much coverage as possible. I= t aims > > +to collect more or less stable coverage that is a function of syscall = inputs. > > +To achieve this goal, it does not collect coverage in soft/hard interr= upts > > +(unless remove coverage collection is enabled, see below) and from som= e > > +inherently non-deterministic parts of the kernel (e.g. scheduler, lock= ing). > > > > -kcov is also able to collect comparison operands from the instrumented= code > > -(this feature currently requires that the kernel is compiled with clan= g). > > +Besides collecting code coverage, KCOV can also collect comparison ope= rands. > > +See the "Comparison operands collection" section for details. > > + > > +Besides collecting coverage data from syscall handlers, KCOV can also = collect > > +coverage for annotated parts of the kernel executing in background ker= nel > > +tasks or soft interrupts. See the "Remote coverage collection" section= for > > +details. > > > > Prerequisites > > ------------- > > > > -Configure the kernel with:: > > +KCOV relies on compiler instrumentation and requires GCC 6.1.0 or late= r > > +or any Clang version supported by the kernel. > > > > - CONFIG_KCOV=3Dy > > +Collecting comparison operands is only supported with Clang. > > Are you sure? > I see -fsanitize-coverage=3Dtrace-cmp in gcc sources and man page. Right, supported too starting with version 8. Will fix in v2. > Otherwise looks good to me. I'll add your Reviewed-by to v2 then. Thank you!