[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YVQkzCryS9dkvRGB@hirez.programming.kicks-ass.net>
Date: Wed, 29 Sep 2021 10:33:16 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Alexander Lochmann <info@...xander-lochmann.de>
Cc: Dmitry Vyukov <dvyukov@...gle.com>,
Andrey Konovalov <andreyknvl@...il.com>,
Jonathan Corbet <corbet@....net>,
Andrew Klychkov <andrew.a.klychkov@...il.com>,
Miguel Ojeda <ojeda@...nel.org>,
Randy Dunlap <rdunlap@...radead.org>,
Johannes Berg <johannes@...solutions.net>,
Ingo Molnar <mingo@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
Jakub Kicinski <kuba@...nel.org>,
Aleksandr Nogikh <nogikh@...gle.com>,
kasan-dev@...glegroups.com, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCHv2] Introduced new tracing mode KCOV_MODE_UNIQUE.
On Mon, Sep 27, 2021 at 07:33:40PM +0200, Alexander Lochmann wrote:
> The existing trace mode stores PCs in execution order. This could lead
> to a buffer overflow if sufficient amonut of kernel code is executed.
> Thus, a user might not see all executed PCs. KCOV_MODE_UNIQUE favors
> completeness over execution order. While ignoring the execution order,
> it marks a PC as exectued by setting a bit representing that PC. Each
> bit in the shared buffer represents every fourth byte of the text
> segment. Since a call instruction on every supported architecture is
> at least four bytes, it is safe to just store every fourth byte of the
> text segment.
I'm still trying to wake up, but why are call instruction more important
than other instructions? Specifically, I'd think any branch instruction
matters for coverage.
More specifically, x86 can do a tail call with just 2 bytes.
Powered by blists - more mailing lists