Re: [Announce] 2.6.29-rt2

Peter Zijlstra
2009-04-03T09:42:28Z

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?

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