Re: [PATCH v6 0/8] powerpc/watchpoint: Bug fixes plus new feature flag

From: Michael Ellerman
Date: Fri Sep 18 2020 - 06:50:55 EST


Rogerio Alves <rcardoso@xxxxxxxxxxxxx> writes:
> On 9/2/20 1:29 AM, Ravi Bangoria wrote:
>> Patch #1 fixes issue for quardword instruction on p10 predecessors.
>> Patch #2 fixes issue for vector instructions.
>> Patch #3 fixes a bug about watchpoint not firing when created with
>> ptrace PPC_PTRACE_SETHWDEBUG and CONFIG_HAVE_HW_BREAKPOINT=N.
>> The fix uses HW_BRK_TYPE_PRIV_ALL for ptrace user which, I
>> guess, should be fine because we don't leak any kernel
>> addresses and PRIV_ALL will also help to cover scenarios when
>> kernel accesses user memory.
>> Patch #4,#5 fixes infinite exception bug, again the bug happens only
>> with CONFIG_HAVE_HW_BREAKPOINT=N.
>> Patch #6 fixes two places where we are missing to set hw_len.
>> Patch #7 introduce new feature bit PPC_DEBUG_FEATURE_DATA_BP_ARCH_31
>> which will be set when running on ISA 3.1 compliant machine.
>> Patch #8 finally adds selftest to test scenarios fixed by patch#2,#3
>> and also moves MODE_EXACT tests outside of BP_RANGE condition.
>>
>> Christophe, let me know if this series breaks something for 8xx.
>>
>> v5: https://lore.kernel.org/r/20200825043617.1073634-1-ravi.bangoria@xxxxxxxxxxxxx
>>
>> v5->v6:
>> - Fix build faulure reported by kernel test robot
>> - patch #5. Use more compact if condition, suggested by Christophe
>>
>>
>> Ravi Bangoria (8):
>> powerpc/watchpoint: Fix quarword instruction handling on p10
>> predecessors
>> powerpc/watchpoint: Fix handling of vector instructions
>> powerpc/watchpoint/ptrace: Fix SETHWDEBUG when
>> CONFIG_HAVE_HW_BREAKPOINT=N
>> powerpc/watchpoint: Move DAWR detection logic outside of
>> hw_breakpoint.c
>> powerpc/watchpoint: Fix exception handling for
>> CONFIG_HAVE_HW_BREAKPOINT=N
>> powerpc/watchpoint: Add hw_len wherever missing
>> powerpc/watchpoint/ptrace: Introduce PPC_DEBUG_FEATURE_DATA_BP_ARCH_31
>> powerpc/watchpoint/selftests: Tests for kernel accessing user memory
>>
>> Documentation/powerpc/ptrace.rst | 1 +
>> arch/powerpc/include/asm/hw_breakpoint.h | 12 ++
>> arch/powerpc/include/uapi/asm/ptrace.h | 1 +
>> arch/powerpc/kernel/Makefile | 3 +-
>> arch/powerpc/kernel/hw_breakpoint.c | 149 +---------------
>> .../kernel/hw_breakpoint_constraints.c | 162 ++++++++++++++++++
>> arch/powerpc/kernel/process.c | 48 ++++++
>> arch/powerpc/kernel/ptrace/ptrace-noadv.c | 9 +-
>> arch/powerpc/xmon/xmon.c | 1 +
>> .../selftests/powerpc/ptrace/ptrace-hwbreak.c | 48 +++++-
>> 10 files changed, 282 insertions(+), 152 deletions(-)
>> create mode 100644 arch/powerpc/kernel/hw_breakpoint_constraints.c
>>
>
> Tested this patch set for:
> - SETHWDEBUG when CONFIG_HAVE_HW_BREAKPOINT=N = OK
> - Fix exception handling for CONFIG_HAVE_HW_BREAKPOINT=N = OK
> - Check for PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 = OK
> - Fix quarword instruction handling on p10 predecessors = OK
> - Fix handling of vector instructions = OK
>
> Also tested for:
> - Set second watchpoint (P10 Mambo) = OK
> - Infinity loop on sc instruction = OK

Thanks.

I wasn't able to pick up your Tested-by tags as I'd already applied the
patches, but thanks for sending them anyway, they will live on in the
mailing list archives for eternity.

cheers