Re: [Announce] 2.6.29-rt2

Will Schmidt
2009-04-03T15:30:07Z

On Fri, 2009-04-03 at 11:43 +0200, Peter Zijlstra wrote:
> On Thu, 2009-04-02 at 12:24 -0500, Will Schmidt wrote:
>
> > > --------
> > >
> > > Index: linux-2.6-tip/arch/powerpc/mm/tlb_hash64.c
> > > ===================================================================
> > > --- linux-2.6-tip.orig/arch/powerpc/mm/tlb_hash64.c
> > > +++ linux-2.6-tip/arch/powerpc/mm/tlb_hash64.c
> > > @@ -32,6 +32,8 @@
> > > #include <asm/bug.h>
> > > #include <asm/machdep.h>
> > >
> > > +DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
> > > +
> > > /*
> > > * A linux PTE was changed and the corresponding hash table entry
> > > * neesd to be flushed. This function will either perform the flush
>
> Will, could you see if the below makes your splat go away?

It does.. booted clean on a power6 blade with this patch applied.
Thanks. :-)

-Will

>
> diff --git a/arch/powerpc/include/asm/tlb.h b/arch/powerpc/include/asm/tlb.h
> index ec82dac..3ddc8f6 100644
> --- a/arch/powerpc/include/asm/tlb.h
> +++ b/arch/powerpc/include/asm/tlb.h
> @@ -38,6 +38,8 @@ struct arch_mmu_gather {
> struct pte_freelist_batch *batch;
> };
>
> +#define ARCH_MMU_GATHER_INIT (struct arch_mmu_gather){ .batch = NULL, }
> +
> #if !defined(CONFIG_PPC_STD_MMU)
>
> #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
> diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h
> index 7f2167e..50a09de 100644
> --- a/include/asm-generic/tlb.h
> +++ b/include/asm-generic/tlb.h
> @@ -71,6 +71,10 @@ tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, unsigned int full_m
> tlb->nr = ~0U;
>
> tlb->fullmm = full_mm_flush;
> +
> +#ifdef HAVE_ARCH_MMU_GATHER
> + tlb->arch = ARCH_MMU_GATHER_INIT;
> +#endif
> }
>
> static inline void
>