]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC: r269050 (partial)
authormarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 29 Jul 2014 13:08:56 +0000 (13:08 +0000)
committermarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 29 Jul 2014 13:08:56 +0000 (13:08 +0000)
commit85c707676d467866908bdc94f33cdaf14243c363
treec5d5f94138ccd606139f8026a9be91d0819e8a73
parent40c9152c7065873c8741a58c1e4b723940a2c3c1
MFC: r269050 (partial)

Copying and zeroing pages via temporary mappings involves updating the
corresponding page tables followed by accesses to the pages in question.
This sequence is subject to the situation exactly described in the "AMD64
Architecture Programmer's Manual Volume 2: System Programming" rev. 3.23,
"7.3.1 Special Coherency Considerations" [1, p. 171 f.]. Therefore, issuing
the INVLPG right after modifying the PTE bits is crucial.
For pmap_copy_page(), this has been broken in r124956.

1: http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/24593_APM_v21.pdf

Reviewed by: alc, kib
Sponsored by: Bally Wulff Games & Entertainment GmbH

git-svn-id: svn://svn.freebsd.org/base/stable/8@269237 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/i386/i386/pmap.c