Re: [PATCHv2] Introduced new tracing mode KCOV_MODE_UNIQUE.
From: Alexander Lochmann <hidden>
Date: 2021-10-22 22:13:49
Also in:
lkml
Attachments
- OpenPGP_signature [application/pgp-signature] 840 bytes
From: Alexander Lochmann <hidden>
Date: 2021-10-22 22:13:49
Also in:
lkml
Maybe Dmitry can shed some light on this. He actually suggested that optimization. - Alex On 29.09.21 10:33, Peter Zijlstra wrote:
On Mon, Sep 27, 2021 at 07:33:40PM +0200, Alexander Lochmann wrote:quoted
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.
-- Alexander Lochmann PGP key: 0xBC3EF6FD Heiliger Weg 72 phone: +49.231.28053964 D-44141 Dortmund mobile: +49.151.15738323