Re: [PATCH 11 of 11] x86: defer cr3 reload when doing pud_clear()

From: H. Peter Anvin
Date: Fri Jan 25 2008 - 16:42:21 EST


Jeremy Fitzhardinge wrote:
PAE mode requires that we reload cr3 in order to guarantee that
changes to the pgd will be noticed by the processor. This means that
in principle pud_clear needs to reload cr3 every time. However,
because reloading cr3 implies a tlb flush, we want to avoid it where
possible.

It only matters (for a processor which supports PGE) if we actually use the namespace in between.

In huge_pmd_unshare, it is followed by flush_tlb_range, which always
results in a full cr3-reload tlb flush.

This one makes me nervous, as it feels like a side effect of implementation, and not a guarantee by design.

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