[PATCH v4 10/10] powerpc/watchpoint: Remove 512 byte boundary

Jordan Niethe jniethe5 at gmail.com
Mon Jul 20 16:54:16 AEST 2020


On Fri, Jul 17, 2020 at 2:11 PM Ravi Bangoria
<ravi.bangoria at linux.ibm.com> wrote:
>
> Power10 has removed 512 bytes boundary from match criteria. i.e. The watch
> range can cross 512 bytes boundary.
It looks like this change is not mentioned in ISA v3.1 Book III 9.4
Data Address Watchpoint. It could be useful to mention that in the
commit message.
Also I wonder if could add a test for this to the ptrace-hwbreak selftest?

>
> Signed-off-by: Ravi Bangoria <ravi.bangoria at linux.ibm.com>
> ---
>  arch/powerpc/kernel/hw_breakpoint.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/hw_breakpoint.c b/arch/powerpc/kernel/hw_breakpoint.c
> index c55e67bab271..1f4a1efa0074 100644
> --- a/arch/powerpc/kernel/hw_breakpoint.c
> +++ b/arch/powerpc/kernel/hw_breakpoint.c
> @@ -418,8 +418,9 @@ static int hw_breakpoint_validate_len(struct arch_hw_breakpoint *hw)
>
>         if (dawr_enabled()) {
>                 max_len = DAWR_MAX_LEN;
> -               /* DAWR region can't cross 512 bytes boundary */
> -               if (ALIGN_DOWN(start_addr, SZ_512) != ALIGN_DOWN(end_addr - 1, SZ_512))
> +               /* DAWR region can't cross 512 bytes boundary on p10 predecessors */
> +               if (!cpu_has_feature(CPU_FTR_ARCH_31) &&
> +                   (ALIGN_DOWN(start_addr, SZ_512) != ALIGN_DOWN(end_addr - 1, SZ_512)))
>                         return -EINVAL;
>         } else if (IS_ENABLED(CONFIG_PPC_8xx)) {
>                 /* 8xx can setup a range without limitation */
> --
> 2.26.2
>


More information about the Linuxppc-dev mailing list