On Thu, 2012-08-16 at 16:15 +0200, Peter Zijlstra wrote:
On Fri, 2012-08-17 at 00:02 +1000, Michael Ellerman wrote:
quoted
You do want to guarantee that the task will always be subject to the
breakpoint, even if it moves cpus. So is there any way to guarantee that
other than reserving a breakpoint slot on every cpu ahead of time?
That's not how regular perf works.. regular perf can overload hw
resources at will and stuff is strictly per-cpu.
..
For regular (!pinned) events, we'll RR the created events on the
available hardware resources.
Yeah I know, but that isn't really the semantics you want for a
breakpoint. You don't want to sometimes have the breakpoint active and
sometimes not, it needs to be active at all times when the task is
running.
At the very least you want it to behave like a pinned event, ie. if it
can't be scheduled you get notified and can tell the user.
HWBP does things completely different and reserves a slot over all CPUs
for everything, thus stuff completely falls apart.
So it would seem :)
I guess my point was that reserving a slot on each cpu seems like a
reasonable way of guaranteeing that wherever the task goes we will be
able to install the breakpoint.
But obviously we need some way to make it play nice with perf.
cheers