From 52911b00b3ccde568755e6f1f4400b40f4b712c0 Mon Sep 17 00:00:00 2001 From: alc Date: Sun, 3 Oct 2004 20:14:07 +0000 Subject: Undo revision 1.251. This change was a performance pessimizing work-around that is no longer required. (In fact, it is not clear that it was ever required in HEAD or RELENG_4, only RELENG_3 required a work-around.) Now, as before revision 1.251, if the preexisting PTE is invalid, pmap_enter() does not call pmap_invalidate_page() to update the TLB(s). Note: Even with this change, the handling of a copy-on-write fault is inefficient, in such cases pmap_enter() calls pmap_invalidate_page() twice. Discussed with: bde@ PR: kern/16568 --- sys/amd64/amd64/pmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sys/amd64') diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 3fb6cd9..4b39ce0 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -1978,7 +1978,7 @@ validate: */ if ((origpte & ~(PG_M|PG_A)) != newpte) { pte_store(pte, newpte | PG_A); - /*if (origpte)*/ { + if (origpte) { pmap_invalidate_page(pmap, va); } } -- cgit v1.1