Date: Sat, 20 Sep 2008 16:24:42 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/i386 pmap.c Message-ID: <200809201625.m8KGP3RF034613@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
alc 2008-09-20 16:24:42 UTC FreeBSD src repository Modified files: sys/i386/i386 pmap.c Log: SVN rev 183207 on 2008-09-20 16:24:42Z by alc MFamd64 SVN rev 179749 CVS rev 1.620 Reverse the direction of pmap_promote_pde()'s traversal over the specified page table page. The direction of the traversal can matter if pmap_promote_pde() has to remove write access (PG_RW) from a PTE that hasn't been modified (PG_M). In general, if there are two or more such PTEs to choose among, it is better to write protect the one nearer the high end of the page table page rather than the low end. This is because most programs access memory in an ascending direction. The net result of this change is a sometimes significant reduction in the number of failed promotion attempts and the number of pages that are write protected by pmap_promote_pde(). MFamd64 SVN rev 179777 CVS rev 1.621 Tweak the promotion test in pmap_promote_pde(). Specifically, test PG_A before PG_M. This sometimes prevents unnecessary removal of write access from a PTE. Overall, the net result is fewer demotions and promotion failures. Revision Changes Path 1.629 +32 -16 src/sys/i386/i386/pmap.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809201625.m8KGP3RF034613>