Re: [patch 2/3] CONFIG_HIGHPTE vs. sub-page page tables.

Martin Schwidefsky
2008-02-05T14:40:01Z

On Mon, 2008-02-04 at 02:51 -0800, Andrew Morton wrote:
> > > Look: I can't fix *everyone's* stuff. This was a consequence of ongoing
> > > unbounded churn in the x86 tree. If we can find a way of preventing those
> > > guys (and everyone else) from trashing everyone else's stuff then we'd have
> > > much smoother sailing.
> >
> > Understood. That is where I jump in and regenerate my patches on the
> > latest available level. That the patches did hold up for some months in
> > -mm now without really breaking anything is an indication that we can
> > push them upstream now, isn't ? That would make the patch problem go
> > away and I could queue my s390 specific page table rework. Our KVM
> > people keep asking about it.
>
> yes, against 2.6.24-mm1 would be good, thanks. I really don't know what
> went wrong in i386 but I ended up getting all grumpy at the macro mess
> we've made in all the pagetable handling. Please do take a look at
> improving that.

I'm trying to replace the __pte_free_tlb macros my patch touches for the
different architectures. Not much luck yet, there is a reason why
__pte_free_tlb is a macro in the first place: welcome to #include hell.
I'm starting to get grumpy as well..

Just an example for x86-64:
* asm-x86/tlb.h includes asm-generic/tlb.h
* asm-generic/tlb.h includes asm-x86/pgalloc.h
* asm-x86/pgalloc.h includes asm-x86/pgalloc_64.h
* asm-x86/pgalloc_64.h includes asm-x86/tlb.h
* since asm-x86/tlb.h started this #include chain it expands to nothing
* asm-x86/pgalloc_64.h calls tlb_remove_page which is defined in
asm-x86/tlb.h but the compiler hasn't seen the definition yet
* you loose..

I got x86-64 compiled by removing the #include <asm/pgalloc.h> from
asm-generic/tlb.h. But who knows what will break if the include is
missing .. I'll cross compile some of the other architectures next.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.