Thread (49 messages) 49 messages, 6 authors, 2022-08-29

Re: [PATCH v3 01/14] perf/hw_breakpoint: Add KUnit test for constraints accounting

From: Will Deacon <will@kernel.org>
Date: 2022-07-22 11:03:24
Also in: linux-perf-users, linux-sh, lkml

On Fri, Jul 22, 2022 at 12:31:45PM +0200, Dmitry Vyukov wrote:
On Fri, 22 Jul 2022 at 12:11, Will Deacon [off-list ref] wrote:
quoted
quoted
quoted
quoted
On Mon, Jul 04, 2022 at 05:05:01PM +0200, Marco Elver wrote:
I'm not immediately sure what would be necessary to support per-task kernel
breakpoints, but given a lot of that state is currently per-cpu, I imagine it's
invasive.
I would actually like to remove HW_BREAKPOINT completely for arm64 as it
doesn't really work and causes problems for other interfaces such as ptrace
and kgdb.
Will it be a localized removal of code that will be easy to revert in
future? Or will it touch lots of code here and there?
Let's say we come up with a very important use case for HW_BREAKPOINT
and will need to make it work on arm64 as well in future.
My (rough) plan is to implement a lower-level abstraction for handling the
underlying hardware resources, so we can layer consumers on top of that
instead of funneling through hw_breakpoint. So if we figure out how to make
bits of hw_breakpoint work on arm64, then it should just go on top.

The main pain point for hw_breakpoint is kernel-side {break,watch}points
and I think there are open design questions about how they should work
on arm64, particularly when considering the interaction with user
watchpoints triggering on uaccess routines and the possibility of hitting
a kernel watchpoint in irq context.
I see. Our main interest would be break/watchpoints on user addresses
firing from both user-space and kernel (uaccess), so at least on irqs.
Interesting. Do other architectures report watchpoint hits on user
addresses from kernel uaccess? It feels like this might be surprising to
some users, and it opens up questions about accesses using different virtual
aliases (e.g. via GUP) or from other entities as well (e.g. firmware,
KVM guests, DMA).

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help