[PATCH] kcov: update documentation on remote coverage collection

Jann Horn posted 1 patch 5 days, 9 hours ago
There is a newer version of this series
Documentation/dev-tools/kcov.rst | 5 +++++
1 file changed, 5 insertions(+)
[PATCH] kcov: update documentation on remote coverage collection
Posted by Jann Horn 5 days, 9 hours ago
Adjust the docs on remote coverage collection to reflect the changes made
in "kcov: refactor common handle ID into kcov_common_handle_id" and
"kcov: allow simultaneous KCOV_ENABLE/KCOV_REMOTE_ENABLE".

Suggested-by: Alexander Potapenko <glider@google.com>
Signed-off-by: Jann Horn <jannh@google.com>
---
 Documentation/dev-tools/kcov.rst | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/dev-tools/kcov.rst b/Documentation/dev-tools/kcov.rst
index 8127849d40f5..54a0baeb917a 100644
--- a/Documentation/dev-tools/kcov.rst
+++ b/Documentation/dev-tools/kcov.rst
@@ -246,6 +246,8 @@ KCOV supports collecting remote coverage from the following contexts:
 2. Local kernel background tasks. These are spawned when a userspace process
    interacts with some kernel interface and are usually killed when the process
    exits (e.g. vhost workers).
+   This can be combined with another KCOV instance that is configured for normal
+   coverage collection.
 
 3. Soft interrupts.
 
@@ -262,6 +264,9 @@ gets saved to the ``kcov_handle`` field in the current ``task_struct`` and
 needs to be passed to the newly spawned local tasks via custom kernel code
 modifications. Those tasks should in turn use the passed handle in their
 ``kcov_remote_start`` and ``kcov_remote_stop`` annotations.
+In the kernel, common handles are wrapped in a ``kcov_common_handle_id``, which
+consumes no space in builds without ``CONFIG_KCOV``; subsystems that integrate
+with this mechanism should not need to use any ``#ifdef CONFIG_KCOV`` or such.
 
 KCOV follows a predefined format for both global and common handles. Each
 handle is a ``u64`` integer. Currently, only the one top and the lower 4 bytes

---
base-commit: ab5fce87a778cb780a05984a2ca448f2b41aafbf
change-id: 20260519-kcov-docs-15feabfb10aa

--  
Jann Horn <jannh@google.com>
Re: [PATCH] kcov: update documentation on remote coverage collection
Posted by Andrey Konovalov 4 days, 7 hours ago
On Tue, May 19, 2026 at 6:06 PM Jann Horn <jannh@google.com> wrote:
>
> Adjust the docs on remote coverage collection to reflect the changes made
> in "kcov: refactor common handle ID into kcov_common_handle_id" and
> "kcov: allow simultaneous KCOV_ENABLE/KCOV_REMOTE_ENABLE".
>
> Suggested-by: Alexander Potapenko <glider@google.com>
> Signed-off-by: Jann Horn <jannh@google.com>

Hi Jann,

> ---
>  Documentation/dev-tools/kcov.rst | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/Documentation/dev-tools/kcov.rst b/Documentation/dev-tools/kcov.rst
> index 8127849d40f5..54a0baeb917a 100644
> --- a/Documentation/dev-tools/kcov.rst
> +++ b/Documentation/dev-tools/kcov.rst
> @@ -246,6 +246,8 @@ KCOV supports collecting remote coverage from the following contexts:
>  2. Local kernel background tasks. These are spawned when a userspace process
>     interacts with some kernel interface and are usually killed when the process
>     exits (e.g. vhost workers).
> +   This can be combined with another KCOV instance that is configured for normal
> +   coverage collection.

But does your change only work for collecting coverage from these
local tasks, or from global ones as well? If the latter is allowed as
well, this sentence need to be moved.

>
>  3. Soft interrupts.
>
> @@ -262,6 +264,9 @@ gets saved to the ``kcov_handle`` field in the current ``task_struct`` and
>  needs to be passed to the newly spawned local tasks via custom kernel code
>  modifications. Those tasks should in turn use the passed handle in their
>  ``kcov_remote_start`` and ``kcov_remote_stop`` annotations.
> +In the kernel, common handles are wrapped in a ``kcov_common_handle_id``, which
> +consumes no space in builds without ``CONFIG_KCOV``; subsystems that integrate
> +with this mechanism should not need to use any ``#ifdef CONFIG_KCOV`` or such.
>
>  KCOV follows a predefined format for both global and common handles. Each
>  handle is a ``u64`` integer. Currently, only the one top and the lower 4 bytes
>
> ---
> base-commit: ab5fce87a778cb780a05984a2ca448f2b41aafbf
> change-id: 20260519-kcov-docs-15feabfb10aa
>
> --
> Jann Horn <jannh@google.com>
>
Re: [PATCH] kcov: update documentation on remote coverage collection
Posted by Jann Horn 4 days, 6 hours ago
On Wed, May 20, 2026 at 7:51 PM Andrey Konovalov <andreyknvl@gmail.com> wrote:
> On Tue, May 19, 2026 at 6:06 PM Jann Horn <jannh@google.com> wrote:
> > diff --git a/Documentation/dev-tools/kcov.rst b/Documentation/dev-tools/kcov.rst
> > index 8127849d40f5..54a0baeb917a 100644
> > --- a/Documentation/dev-tools/kcov.rst
> > +++ b/Documentation/dev-tools/kcov.rst
> > @@ -246,6 +246,8 @@ KCOV supports collecting remote coverage from the following contexts:
> >  2. Local kernel background tasks. These are spawned when a userspace process
> >     interacts with some kernel interface and are usually killed when the process
> >     exits (e.g. vhost workers).
> > +   This can be combined with another KCOV instance that is configured for normal
> > +   coverage collection.
>
> But does your change only work for collecting coverage from these
> local tasks, or from global ones as well? If the latter is allowed as
> well, this sentence need to be moved.

It also works for collecting global coverage. When I was writing this,
I figured that anyone wanting to collect global coverage would
probably be doing it from a separate task anyway; but yeah, you're
right, it makes more sense to move this note. I'll send a v2.
Re: [PATCH] kcov: update documentation on remote coverage collection
Posted by Alexander Potapenko 4 days, 16 hours ago
On Tue, May 19, 2026 at 6:06 PM Jann Horn <jannh@google.com> wrote:
>
> Adjust the docs on remote coverage collection to reflect the changes made
> in "kcov: refactor common handle ID into kcov_common_handle_id" and
> "kcov: allow simultaneous KCOV_ENABLE/KCOV_REMOTE_ENABLE".
>
> Suggested-by: Alexander Potapenko <glider@google.com>
> Signed-off-by: Jann Horn <jannh@google.com>
Reviewed-by: Alexander Potapenko <glider@google.com>