Re: [GIT PULL] breakpoint: Rework arch validation v4

From: Ingo Molnar
Date: Tue Jun 26 2018 - 03:09:14 EST



* Frederic Weisbecker <frederic@xxxxxxxxxx> wrote:

> Ingo,
>
> Please pull the perf/breakpoint-v4 branch that can be found at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> perf/breakpoint-v4
>
> HEAD: ba25ee9c7b3ef1543c2a24a7ca6a621433803ee4
>
> Only change since v3 is a rebase against latest tip:perf/core
>
> ---
> When we modify a hardware breakpoint, the architecture code fills up
> the architecture data as the validation of generic attributes progresses.
> If something goes wrong in the middle, the architecture data changes
> aren't rolled back and we are left with a halfway fiddled breakpoint.
>
> This set fixes the various misdesigns that back this bad behaviour.
>
> Thanks,
> Frederic
> ---
>
> Frederic Weisbecker (12):
> perf/breakpoint: Split attribute parse and commit
> perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace()
> x86: Implement hw_breakpoint_arch_parse()
> powerpc: Implement hw_breakpoint_arch_parse()
> arm: Implement hw_breakpoint_arch_parse()
> arm64: Implement hw_breakpoint_arch_parse()
> sh: Remove "struct arch_hw_breakpoint::name" unused field
> sh: Implement hw_breakpoint_arch_parse()
> xtensa: Implement hw_breakpoint_arch_parse()
> perf/breakpoint: Remove default hw_breakpoint_arch_parse()
> perf/breakpoint: Pass new breakpoint type to modify_breakpoint_slot()
> perf/breakpoint: Clean up and consolidate modify_user_hw_breakpoint_check()
>
>
> arch/arm/include/asm/hw_breakpoint.h | 7 +-
> arch/arm/kernel/hw_breakpoint.c | 78 +++++++++---------
> arch/arm64/include/asm/hw_breakpoint.h | 7 +-
> arch/arm64/kernel/hw_breakpoint.c | 86 ++++++++++----------
> arch/powerpc/include/asm/hw_breakpoint.h | 7 +-
> arch/powerpc/kernel/hw_breakpoint.c | 47 ++++++-----
> arch/sh/include/asm/hw_breakpoint.h | 8 +-
> arch/sh/kernel/hw_breakpoint.c | 53 ++++++-------
> arch/x86/include/asm/hw_breakpoint.h | 7 +-
> arch/x86/kernel/hw_breakpoint.c | 131 ++++++++++++++++---------------
> arch/xtensa/include/asm/hw_breakpoint.h | 7 +-
> arch/xtensa/kernel/hw_breakpoint.c | 40 ++++------
> kernel/events/hw_breakpoint.c | 92 +++++++++++++---------
> 13 files changed, 294 insertions(+), 276 deletions(-)

Ok, this looks really good. Applied to the v4.19 queue, thanks a lot Frederic!

I'll push it out once it passes testing.

Thanks,

Ingo