[RFC Patch 1/2] PPC64-HWBKPT: Disable interrupts for data breakpoint exceptions

K.Prasad prasad at linux.vnet.ibm.com
Tue Mar 30 21:19:08 EST 2010


On Tue, Mar 30, 2010 at 04:32:25PM +1100, Benjamin Herrenschmidt wrote:
> On Tue, 2010-03-30 at 16:24 +1100, Paul Mackerras wrote:
> > On Tue, Mar 23, 2010 at 07:37:02PM +0530, K.Prasad wrote:
> > 
> > > Index: linux-2.6.ppc64_test/arch/powerpc/kernel/exceptions-64s.S
> > > ===================================================================
> > > --- linux-2.6.ppc64_test.orig/arch/powerpc/kernel/exceptions-64s.S
> > > +++ linux-2.6.ppc64_test/arch/powerpc/kernel/exceptions-64s.S
> > > @@ -735,6 +735,9 @@ _STATIC(do_hash_page)
> > >  	std	r3,_DAR(r1)
> > >  	std	r4,_DSISR(r1)
> > >  
> > > +	andis.  r0,r4,0x0040		/* Data Address Breakpoint match? */
> > 
> > Minor comment: why not DSISR_DABRMATCH at h instead of 0x0040?
> > 
> > > +	bne-    handle_dabr_fault
> > > +
> > >  	andis.	r0,r4,0xa450		/* weird error? */
> > >  	bne-	handle_page_fault	/* if not, try to insert a HPTE */
> > >  BEGIN_FTR_SECTION
> > > @@ -823,6 +826,15 @@ END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISER
> > >  	bl	.raw_local_irq_restore
> > >  	b	11f
> 
> I would move your new test to the "weird error" case (ie, after the bne-
> handle_page_fault) to avoid hitting the fast path.
>

Done that...so basically the branch to handle_page_fault will happen
only if 0xa410 matches.

The changes can be seen here: linuxppc-dev: message-id:
20100330095925.GB14403 at in.ibm.com.

Thanks,
K.Prasad



More information about the Linuxppc-dev mailing list