Re: [PATCH] M386 flush_one_tlb invlpg

Brian Gerst (bgerst@didntduck.org)
Tue, 27 Aug 2002 17:18:02 -0400


Linus Torvalds wrote:
> On Tue, 27 Aug 2002, Hugh Dickins wrote:
>
>>I just sent the 2.4.20-pre4 asm-i386/pgtable.h patch to Marcelo:
>>here's patch against 2.5.31 or current BK: please apply.
>
>
> This test is senseless, in my opinion:
>
>
>>+ if (cpu_has_pge) \
>>+ __flush_tlb_single(addr); \
>
>
> The test _should_ be for something like
>
> if (cpu_has_invlpg)
> __flush_tlb_single(addr);
>
> since we want to use the invlpg instruction regardless of any PGE issues
> if it is available.
>
> There's another issue, which is the fact that I do not believe that invlpg
> is even guaranteed to invalidate a G page at all - although obviously all
> current CPU's seem to work that way. However, I don't see that documented
> anywhere.

P4 System Programming Guide, Section 10.9:
The INVLPG instruction invalidates the TLB for a specific page. This
instruction is the most efficient in cases where software only needs to
invalidate a specific page, because it improves performance over
invalidating the whole TLB. This instruction is not affected by the
state of the G flag in a page-directory or page-table entry.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/