]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r256934, r256963, r256972, r257017
authorbrooks <brooks@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 1 Nov 2013 20:30:19 +0000 (20:30 +0000)
committerbrooks <brooks@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 1 Nov 2013 20:30:19 +0000 (20:30 +0000)
commit552bb57b0eab15ea981384819e0eeb7b7b439cb5
tree5c993376ef2652ac39c4eb68b58359a364914e7b
parentcd2307c7ac497656b118901984db8d8572702f44
MFC r256934, r256963, r256972, r257017

MFP4:
Change 221534 by rwatson@rwatson_zenith_cl_cam_ac_uk on 2013/01/27
16:05:30

FreeBSD/mips stores page-table entries in a near-identical format
to MIPS TLB entries -- only it overrides certain "reserved" bits
in the MIPS-defined EntryLo register to hold software-defined bits
(swbits) to avoid significantly increasing the page table memory
footprint.  On n32 and n64, these bits were (a) colliding with
MIPS64r2 physical memory extensions and (b) being improperly
cleared.

Attempt to fix both of these problems by pushing swbits further
along 64-bit EntryLo registers into the reserved space, and
improving consistency between C-based and assembly-based clearing
of swbits -- in particular, to use the same definition.  This
should stop swbits from leaking into TLB entries -- while ignored
by most current MIPS hardware, this would cause a problem with
(much) larger physical memory sizes, and also leads to confusing
hardware-level tracing as physical addresses contain unexpected
(and inconsistent) higher bits.

Discussed with: imp, jmallett

Change 1187301 by brooks@brooks_zenith on 2013/10/23 14:40:10
Loop back the initial commit of 221534 to HEAD.  Correct its
implementation for mips32.

Sponsored by: DARPA/AFRL
Approved by: re (gjb)

git-svn-id: svn://svn.freebsd.org/base/stable/10@257523 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/mips/include/pte.h