diff options
author | Mark Rutland <[email protected]> | 2021-06-07 10:46:24 +0100 |
---|---|---|
committer | Will Deacon <[email protected]> | 2021-06-07 11:35:56 +0100 |
commit | b5df5b8307b1db6d168ffac29eff3974779bb34b (patch) | |
tree | 253bdd58b56ea3a2066dabccbb05536620336996 /arch/arm64/include/asm/processor.h | |
parent | bf6fa2c0dda751863c3446aa64d733013bec4a19 (diff) |
arm64: idle: don't instrument idle code with KCOV
The low-level idle code in arch_cpu_idle() and its callees runs at a
time where where portions of the kernel environment aren't available.
For example, RCU may not be watching, and lockdep state may be
out-of-sync with the hardware. Due to this, it is not sound to
instrument this code.
We generally avoid instrumentation by marking the entry functions as
`noinstr`, but currently this doesn't inhibit KCOV instrumentation.
Prevent this by factoring these functions into a new idle.c so that we
can disable KCOV for the entire compilation unit, as is done for the
core idle code in kernel/sched/idle.c.
We'd like to keep instrumentation of the rest of process.c, and for the
existing code in cpuidle.c, so a new compilation unit is preferable. The
arch_cpu_idle_dead() function in process.c is a cpu hotplug function
that is safe to instrument, so it is left as-is in process.c.
Signed-off-by: Mark Rutland <[email protected]>
Acked-by: Catalin Marinas <[email protected]>
Acked-by: Marc Zyngier <[email protected]>
Cc: James Morse <[email protected]>
Cc: Will Deacon <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Will Deacon <[email protected]>
Diffstat (limited to 'arch/arm64/include/asm/processor.h')
0 files changed, 0 insertions, 0 deletions