[PATCH v6 7/8] powerpc/watchpoint/ptrace: Introduce PPC_DEBUG_FEATURE_DATA_BP_ARCH_31
Rogerio Alves
rcardoso at linux.ibm.com
Thu Sep 17 23:26:14 AEST 2020
On 9/2/20 1:29 AM, Ravi Bangoria wrote:
> PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 can be used to determine whether
> we are running on an ISA 3.1 compliant machine. Which is needed to
> determine DAR behaviour, 512 byte boundary limit etc. This was
> requested by Pedro Miraglia Franco de Carvalho for extending
> watchpoint features in gdb. Note that availability of 2nd DAWR is
> independent of this flag and should be checked using
> ppc_debug_info->num_data_bps.
>
> Signed-off-by: Ravi Bangoria <ravi.bangoria at linux.ibm.com>
Tested-by: Rogerio Alves <rcardoso at linux.ibm.com>
> ---
> Documentation/powerpc/ptrace.rst | 1 +
> arch/powerpc/include/uapi/asm/ptrace.h | 1 +
> arch/powerpc/kernel/ptrace/ptrace-noadv.c | 2 ++
> 3 files changed, 4 insertions(+)
>
> diff --git a/Documentation/powerpc/ptrace.rst b/Documentation/powerpc/ptrace.rst
> index 864d4b6dddd1..77725d69eb4a 100644
> --- a/Documentation/powerpc/ptrace.rst
> +++ b/Documentation/powerpc/ptrace.rst
> @@ -46,6 +46,7 @@ features will have bits indicating whether there is support for::
> #define PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x4
> #define PPC_DEBUG_FEATURE_DATA_BP_MASK 0x8
> #define PPC_DEBUG_FEATURE_DATA_BP_DAWR 0x10
> + #define PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 0x20
>
> 2. PTRACE_SETHWDEBUG
>
> diff --git a/arch/powerpc/include/uapi/asm/ptrace.h b/arch/powerpc/include/uapi/asm/ptrace.h
> index f5f1ccc740fc..7004cfea3f5f 100644
> --- a/arch/powerpc/include/uapi/asm/ptrace.h
> +++ b/arch/powerpc/include/uapi/asm/ptrace.h
> @@ -222,6 +222,7 @@ struct ppc_debug_info {
> #define PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x0000000000000004
> #define PPC_DEBUG_FEATURE_DATA_BP_MASK 0x0000000000000008
> #define PPC_DEBUG_FEATURE_DATA_BP_DAWR 0x0000000000000010
> +#define PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 0x0000000000000020
>
> #ifndef __ASSEMBLY__
>
> diff --git a/arch/powerpc/kernel/ptrace/ptrace-noadv.c b/arch/powerpc/kernel/ptrace/ptrace-noadv.c
> index 48c52426af80..aa36fcad36cd 100644
> --- a/arch/powerpc/kernel/ptrace/ptrace-noadv.c
> +++ b/arch/powerpc/kernel/ptrace/ptrace-noadv.c
> @@ -57,6 +57,8 @@ void ppc_gethwdinfo(struct ppc_debug_info *dbginfo)
> } else {
> dbginfo->features = 0;
> }
> + if (cpu_has_feature(CPU_FTR_ARCH_31))
> + dbginfo->features |= PPC_DEBUG_FEATURE_DATA_BP_ARCH_31;
> }
>
> int ptrace_get_debugreg(struct task_struct *child, unsigned long addr,
>
More information about the Linuxppc-dev
mailing list