aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2017-01-29 19:14:48 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2017-01-29 19:14:48 +0000
commita0f64f38a1829b7c26bf801b96d7cff65d3c4c24 (patch)
tree63c53b1d6d3676cac11cccc77167b50616a9ca4f /lib
parentd177868c1644054de9ce4cf7ec8224c37de51cae (diff)
downloadsrc-a0f64f38a1829b7c26bf801b96d7cff65d3c4c24.tar.gz
src-a0f64f38a1829b7c26bf801b96d7cff65d3c4c24.zip
Do not leave stale 4K TLB entries on pde (superpage) removal or
protection change. On superpage promotion, x86 pmaps do not invalidate existing 4K entries for the superpage range, because they are compatible with the promoted 2/4M entry. But the invalidation on superpage removal or protection change only did single INVLPG with the base address of the superpage. This reliably flushed superpage TLB entry, and 4K entry for the first page of the superpage, potentially leaving other 4K TLB entries lingering. Do the invalidation of the whole superpage range to correct the problem. Note that the precise invalidation is done by x86 code for kernel_pmap only, for user pmaps whole (per-AS) TLB is flushed. This made the bug well hidden, because promotions of the kernel mappings require specific load. Reported and tested by: Jonathan Looney <jtl@netflix.com> (previous version) Reviewed by: alc Sponsored by: The FreeBSD Foundation MFC after: 1 week
Notes
Notes: svn path=/head/; revision=312954
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions