Subject: Re: Apparent kernel bug with GDB on ppc405

From: Josh Boyer <[email-masked]>
Date: Fri, 26 Oct 2007 20:27:36 -0500

On Sat, 2007-10-27 at 11:36 +1000, Benjamin Herrenschmidt wrote:
> On Fri, 2007-10-26 at 15:41 -0500, Josh Boyer wrote:
> > On Fri, 26 Oct 2007 11:51:22 +1000
> > Benjamin Herrenschmidt <[email-masked]> wrote:
> > 
> > > 
> > > On Wed, 2007-10-24 at 18:41 -0400, Daniel Jacobowitz wrote:
> > > > On Wed, Oct 24, 2007 at 05:32:50PM -0500, Matt Mackall wrote:
> > > > > Not completely implausible, but a) why isn't this seen on basically
> > > > > every machine with software TLB? b) why does -local- GDB, which is
> > > > > presumably doing much less work than gdbserver + network stack, not fail?
> > > > 
> > > > You said it yourself.  Local gdb does more work -> blows through more
> > > > TLB entries.
> > > > 
> > > > I can't answer you about the other half, but I'm pretty sure TLB
> > > > invalidation is already supposed to be happening... somewhere.
> > > 
> > > Yes. do_wp_page() -> ptep_clear_flush() -> flush_tlb_page()
> > 
> > Aren't there cases in do_wp_page that don't call ptep_clear_flush?
> > Seems anonymous pages, and possibly shared writeable pages skip that
> > step if reuse is true.
> 
> Nah, if that was broken, everybody would be in bad shape. I think I know
> what's up, see my other email.

Yeah, I figured that out after I sent this anyway.  In those cases it
should likely get flushed from ptep_set_access_flags.

josh