]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC: r269051
authormarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 29 Jul 2014 13:11:37 +0000 (13:11 +0000)
committermarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 29 Jul 2014 13:11:37 +0000 (13:11 +0000)
commit6f4272790807e368a0595b7deaa5bc21d72afb6a
tree178b60b7b66d4e451ae47b1294783c93065004cf
parentf89bd9dc3acb3b9adb8d6b416a4d0ab610944ec8
MFC: r269051

Copying pages via temporary mappings in the !DMAP case of pmap_copy_pages()
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 (see also
r269050, MFCed to stable/10 in r269235).
For the amd64 PMAP code, the order of instructions was already correct. The
above fact still is worth documenting, though.

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

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

git-svn-id: svn://svn.freebsd.org/base/stable/10@269238 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/amd64/amd64/pmap.c