Re: [PATCH] ppc64: Fix possible race with set_pte on a present PTE

Linus Torvalds
2004-05-26T02:26:21Z

On Wed, 26 May 2004, Andrea Arcangeli wrote:
>
> after various searching on the x86 docs I found:
>
> Whenever a page-directory or page-table entry is changed (including when
> the present flag is set to zero), the operating-system must immediately
> invalidate the corresponding entry in the TLB so that it can be updated
> the next time the entry is referenced.
>
> according to the above we'd need to flush the tlb even in
> do_anonymous_page on x86, or am I reading it wrong?

You're reading it wrong.

The "including when the present flag is set to zero" part does not mean
that the present flag was zero _before_, it means "is being set to zero"
as in "having been non-zero before that".

Anytime the P flag was clear _before_, we don't need to invalidate,
because non-present entries are not cached in the TLB.

Linus