[PATCH] ppc64: More hugepage fixes
Benjamin Herrenschmidt
benh at kernel.crashing.org
Tue Sep 27 13:45:12 EST 2005
> I'm curious, what's the actual bug?
>
> __tlbie itself doesn't seem like it would do too much differently if
> called for large or small pages because all it does is align the vaddr
> differently.
No, it also passes a different second argument to the asm tlbie
instruction. It needs the value of the L bit. So we could fail to
invalidate the TLB entries.
> I don't know where it would even get an unaligned address
> from unless somebody sticks one in one of the batch->addrs.
That indeed shouldn't happen afaik.
> If the addresses are aligned, I don't see how this patch would help.
The missing L bit :)
> Or, is it required that you must sync with:
>
> asm volatile("eieio; tlbsync; ptesync":::"memory");
>
> between tlbie's of large and small pages.
No. There is also the fact that we must not allow large pages to use
tlbiel (there is a test for that too). It might actually work with more
recent CPUs but that code can't deal with that. I have some rework of
the low level code in that area that will be coming soon that addresses
it in a more generic way. This fix is the "simple" one for now.
Ben.
More information about the Linuxppc64-dev
mailing list