Message ID | 20110819075338.GC21817@in.ibm.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Fri, Aug 19, 2011 at 01:23:38PM +0530, K.Prasad wrote: > > While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts > PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the > user-space debuggers (like GDB) who may want to use it. Hence we introduce a > new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the > "features" member of "struct ppc_debug_info" to advertise support for the > same on Book3E PowerPC processors. I thought the idea was that the BP_EXACT mode was the default - if the new interface was supported at all, then BP_EXACT was always supported. So, why do you need a new flag? > > Signed-off-by: K.Prasad <prasad@linux.vnet.ibm.com> > --- > arch/powerpc/include/asm/ptrace.h | 1 + > arch/powerpc/kernel/ptrace.c | 1 + > 2 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/arch/powerpc/include/asm/ptrace.h b/arch/powerpc/include/asm/ptrace.h > index 48223f9..cf014f9 100644 > --- a/arch/powerpc/include/asm/ptrace.h > +++ b/arch/powerpc/include/asm/ptrace.h > @@ -380,6 +380,7 @@ struct ppc_debug_info { > #define PPC_DEBUG_FEATURE_INSN_BP_MASK 0x0000000000000002 > #define PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x0000000000000004 > #define PPC_DEBUG_FEATURE_DATA_BP_MASK 0x0000000000000008 > +#define PPC_DEBUG_FEATURE_DATA_BP_EXACT 0x0000000000000010 > > #ifndef __ASSEMBLY__ > > diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c > index 18d28b6..71db5a6 100644 > --- a/arch/powerpc/kernel/ptrace.c > +++ b/arch/powerpc/kernel/ptrace.c > @@ -1636,6 +1636,7 @@ long arch_ptrace(struct task_struct *child, long request, > #ifdef CONFIG_PPC_ADV_DEBUG_DAC_RANGE > dbginfo.features |= > PPC_DEBUG_FEATURE_DATA_BP_RANGE | > + PPC_DEBUG_FEATURE_DATA_BP_EXACT | > PPC_DEBUG_FEATURE_DATA_BP_MASK; > #endif > #else /* !CONFIG_PPC_ADV_DEBUG_REGS */
On Tue, Aug 23, 2011 at 03:09:31PM +1000, David Gibson wrote: > On Fri, Aug 19, 2011 at 01:23:38PM +0530, K.Prasad wrote: > > > > While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts > > PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the > > user-space debuggers (like GDB) who may want to use it. Hence we introduce a > > new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the > > "features" member of "struct ppc_debug_info" to advertise support for the > > same on Book3E PowerPC processors. > > I thought the idea was that the BP_EXACT mode was the default - if the > new interface was supported at all, then BP_EXACT was always > supported. So, why do you need a new flag? > Yes, BP_EXACT was always supported but not advertised through PPC_PTRACE_GETHWDBGINFO. We're now doing that. Thanks, K.Prasad
On Tue, Aug 23, 2011 at 02:57:56PM +0530, K.Prasad wrote: > On Tue, Aug 23, 2011 at 03:09:31PM +1000, David Gibson wrote: > > On Fri, Aug 19, 2011 at 01:23:38PM +0530, K.Prasad wrote: > > > > > > While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts > > > PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the > > > user-space debuggers (like GDB) who may want to use it. Hence we introduce a > > > new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the > > > "features" member of "struct ppc_debug_info" to advertise support for the > > > same on Book3E PowerPC processors. > > > > I thought the idea was that the BP_EXACT mode was the default - if the > > new interface was supported at all, then BP_EXACT was always > > supported. So, why do you need a new flag? > > > > Yes, BP_EXACT was always supported but not advertised through > PPC_PTRACE_GETHWDBGINFO. We're now doing that. I can see that. But you haven't answered why.
On Wed, 2011-08-24 at 14:00 +1000, David Gibson wrote: > On Tue, Aug 23, 2011 at 02:57:56PM +0530, K.Prasad wrote: > > On Tue, Aug 23, 2011 at 03:09:31PM +1000, David Gibson wrote: > > > On Fri, Aug 19, 2011 at 01:23:38PM +0530, K.Prasad wrote: > > > > > > > > While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts > > > > PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the > > > > user-space debuggers (like GDB) who may want to use it. Hence we introduce a > > > > new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the > > > > "features" member of "struct ppc_debug_info" to advertise support for the > > > > same on Book3E PowerPC processors. > > > > > > I thought the idea was that the BP_EXACT mode was the default - if the > > > new interface was supported at all, then BP_EXACT was always > > > supported. So, why do you need a new flag? > > > > > > > Yes, BP_EXACT was always supported but not advertised through > > PPC_PTRACE_GETHWDBGINFO. We're now doing that. > > I can see that. But you haven't answered why. BookS doesn't support BP_EXACT, that's why I suggested this flag. A BP_EXACT watchpoint triggers only when there's a memory access exactly at the given address. It doesn't trigger when there's (for example) a 4-byte write at an address immediately before which also changes the memory contents of the byte watched by the BP_EXACT watchpoint. a ranged watchpoint would trigger, so the semantics are different. As a general rule, GDB only sets ranged watchpoints and only uses BP_EXACT ones when the user sets a flag. I want GDB to fail when the user sets the flag on BookS since it can't provide the feature.
On Wed, Aug 24, 2011 at 09:41:43PM -0300, Thiago Jung Bauermann wrote: > On Wed, 2011-08-24 at 14:00 +1000, David Gibson wrote: > > On Tue, Aug 23, 2011 at 02:57:56PM +0530, K.Prasad wrote: > > > On Tue, Aug 23, 2011 at 03:09:31PM +1000, David Gibson wrote: > > > > On Fri, Aug 19, 2011 at 01:23:38PM +0530, K.Prasad wrote: > > > > > > > > > > While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts > > > > > PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the > > > > > user-space debuggers (like GDB) who may want to use it. Hence we introduce a > > > > > new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the > > > > > "features" member of "struct ppc_debug_info" to advertise support for the > > > > > same on Book3E PowerPC processors. > > > > > > > > I thought the idea was that the BP_EXACT mode was the default - if the > > > > new interface was supported at all, then BP_EXACT was always > > > > supported. So, why do you need a new flag? > > > > > > > > > > Yes, BP_EXACT was always supported but not advertised through > > > PPC_PTRACE_GETHWDBGINFO. We're now doing that. > > > > I can see that. But you haven't answered why. > > BookS doesn't support BP_EXACT, that's why I suggested this flag. Surely you can support it with exactly the same sort of filtering you're using for the 8-byte ranges now? > A BP_EXACT watchpoint triggers only when there's a memory access exactly > at the given address. It doesn't trigger when there's (for example) a > 4-byte write at an address immediately before which also changes the > memory contents of the byte watched by the BP_EXACT watchpoint. a ranged > watchpoint would trigger, so the semantics are different. > > As a general rule, GDB only sets ranged watchpoints and only uses > BP_EXACT ones when the user sets a flag. I want GDB to fail when the > user sets the flag on BookS since it can't provide the feature.
On Fri, 2011-08-26 at 14:41 +1000, David Gibson wrote: > On Wed, Aug 24, 2011 at 09:41:43PM -0300, Thiago Jung Bauermann wrote: > > On Wed, 2011-08-24 at 14:00 +1000, David Gibson wrote: > > > On Tue, Aug 23, 2011 at 02:57:56PM +0530, K.Prasad wrote: > > > > On Tue, Aug 23, 2011 at 03:09:31PM +1000, David Gibson wrote: > > > > > On Fri, Aug 19, 2011 at 01:23:38PM +0530, K.Prasad wrote: > > > > > > > > > > > > While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts > > > > > > PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the > > > > > > user-space debuggers (like GDB) who may want to use it. Hence we introduce a > > > > > > new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the > > > > > > "features" member of "struct ppc_debug_info" to advertise support for the > > > > > > same on Book3E PowerPC processors. > > > > > > > > > > I thought the idea was that the BP_EXACT mode was the default - if the > > > > > new interface was supported at all, then BP_EXACT was always > > > > > supported. So, why do you need a new flag? > > > > > > > > > > > > > Yes, BP_EXACT was always supported but not advertised through > > > > PPC_PTRACE_GETHWDBGINFO. We're now doing that. > > > > > > I can see that. But you haven't answered why. > > > > BookS doesn't support BP_EXACT, that's why I suggested this flag. > > Surely you can support it with exactly the same sort of filtering > you're using for the 8-byte ranges now? Yes, but to detect that the processor doesn't support BP_EXACT in hardware I'd have to send a ptrace request, and have it rejected. Only then I'd step back and simulate one with ranges. Considering that it's easy and backwards compatible to add a new flag to signal that BP_EXACT is not supported, I don't know why it would be better to go with the more convoluted process.
On Tue, Aug 30, 2011 at 09:27:41PM -0300, Thiago Jung Bauermann wrote: > On Fri, 2011-08-26 at 14:41 +1000, David Gibson wrote: > > On Wed, Aug 24, 2011 at 09:41:43PM -0300, Thiago Jung Bauermann wrote: > > > On Wed, 2011-08-24 at 14:00 +1000, David Gibson wrote: > > > > On Tue, Aug 23, 2011 at 02:57:56PM +0530, K.Prasad wrote: > > > > > On Tue, Aug 23, 2011 at 03:09:31PM +1000, David Gibson wrote: > > > > > > On Fri, Aug 19, 2011 at 01:23:38PM +0530, K.Prasad wrote: > > > > > > > > > > > > > > While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts > > > > > > > PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the > > > > > > > user-space debuggers (like GDB) who may want to use it. Hence we introduce a > > > > > > > new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the > > > > > > > "features" member of "struct ppc_debug_info" to advertise support for the > > > > > > > same on Book3E PowerPC processors. > > > > > > > > > > > > I thought the idea was that the BP_EXACT mode was the default - if the > > > > > > new interface was supported at all, then BP_EXACT was always > > > > > > supported. So, why do you need a new flag? > > > > > > > > > > > > > > > > Yes, BP_EXACT was always supported but not advertised through > > > > > PPC_PTRACE_GETHWDBGINFO. We're now doing that. > > > > > > > > I can see that. But you haven't answered why. > > > > > > BookS doesn't support BP_EXACT, that's why I suggested this flag. > > > > Surely you can support it with exactly the same sort of filtering > > you're using for the 8-byte ranges now? > > Yes, but to detect that the processor doesn't support BP_EXACT in > hardware I'd have to send a ptrace request, and have it rejected. Only > then I'd step back and simulate one with ranges. Considering that it's > easy and backwards compatible to add a new flag to signal that BP_EXACT > is not supported, I don't know why it would be better to go with the > more convoluted process. No, I'm saying why not implement BP_EXACT on server.
diff --git a/arch/powerpc/include/asm/ptrace.h b/arch/powerpc/include/asm/ptrace.h index 48223f9..cf014f9 100644 --- a/arch/powerpc/include/asm/ptrace.h +++ b/arch/powerpc/include/asm/ptrace.h @@ -380,6 +380,7 @@ struct ppc_debug_info { #define PPC_DEBUG_FEATURE_INSN_BP_MASK 0x0000000000000002 #define PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x0000000000000004 #define PPC_DEBUG_FEATURE_DATA_BP_MASK 0x0000000000000008 +#define PPC_DEBUG_FEATURE_DATA_BP_EXACT 0x0000000000000010 #ifndef __ASSEMBLY__ diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index 18d28b6..71db5a6 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c @@ -1636,6 +1636,7 @@ long arch_ptrace(struct task_struct *child, long request, #ifdef CONFIG_PPC_ADV_DEBUG_DAC_RANGE dbginfo.features |= PPC_DEBUG_FEATURE_DATA_BP_RANGE | + PPC_DEBUG_FEATURE_DATA_BP_EXACT | PPC_DEBUG_FEATURE_DATA_BP_MASK; #endif #else /* !CONFIG_PPC_ADV_DEBUG_REGS */
While PPC_PTRACE_SETHWDEBUG ptrace flag in PowerPC accepts PPC_BREAKPOINT_MODE_EXACT mode of breakpoint, the same is not intimated to the user-space debuggers (like GDB) who may want to use it. Hence we introduce a new PPC_DEBUG_FEATURE_DATA_BP_EXACT flag which will be populated on the "features" member of "struct ppc_debug_info" to advertise support for the same on Book3E PowerPC processors. Signed-off-by: K.Prasad <prasad@linux.vnet.ibm.com> --- arch/powerpc/include/asm/ptrace.h | 1 + arch/powerpc/kernel/ptrace.c | 1 + 2 files changed, 2 insertions(+), 0 deletions(-)