freebsd-skq/sys
Konstantin Belousov a0f64f38a1 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
2017-01-29 19:14:48 +00:00
..
amd64 Do not leave stale 4K TLB entries on pde (superpage) removal or 2017-01-29 19:14:48 +00:00
arm Correct the IT instruction in atomic_fcmpset_64(). 2017-01-29 13:31:56 +00:00
arm64 Implement atomic_fcmpset_* for arm and arm64. 2017-01-28 16:24:06 +00:00
boot Remove "-Xassembler -G0" from CFLAGS. 2017-01-29 11:52:36 +00:00
bsm
cam Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
cddl Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
compat Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
conf Remove non-existent ct(4) dependency for scsi_low.c 2017-01-29 00:12:06 +00:00
contrib Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
crypto Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
ddb Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
dev - Remove i8255.h because it's pc98 device. 2017-01-29 03:34:49 +00:00
fs Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
gdb
geom Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
gnu Add Ingenic X1000 DTS files (unofficial). 2016-11-19 15:03:49 +00:00
i386 Do not leave stale 4K TLB entries on pde (superpage) removal or 2017-01-29 19:14:48 +00:00
isa Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
kern Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
kgssapi
libkern Use time_t for intermediate values to avoid overflow in clock_ts_to_ct 2017-01-24 18:05:29 +00:00
mips As with GENERIC on other architectures, include COMPAT_FREEBSD10 and 2017-01-28 11:38:51 +00:00
modules Garbage collect pc98-only variables still referenced in sys/modules/Makefile 2017-01-28 23:47:17 +00:00
net The stf(4) interface name does not conform with the default naming 2017-01-29 18:41:09 +00:00
net80211 [net80211] prepare configuration checks for VHT, fragment-offload and seqno-offload. 2017-01-27 01:24:24 +00:00
netgraph mppc - Finish pluging NETGRAPH_MPPC_COMPRESSION. 2017-01-20 00:02:11 +00:00
netinet Add a knob to change default behavior of inheriting listen socket's tcp stack 2017-01-27 23:10:46 +00:00
netinet6 Garbage collect IFT_IEEE80211 (but leave the define for possible reuse) 2017-01-28 17:08:40 +00:00
netipsec Add direction argument to ipsec_setspidx_inpcb() function. 2017-01-08 12:40:07 +00:00
netnatm
netpfil Do not run the pf purge thread while the VNET variables are not 2017-01-29 02:17:52 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4 2016-09-30 08:23:06 +00:00
opencrypto Add support for the fpu_kern(9) KPI on arm64. It hooks into the existing 2016-10-20 09:22:10 +00:00
powerpc Avoid using non-zero argument for __builtin_frame_address(). 2017-01-23 04:03:12 +00:00
riscv Add RISC-V support for truss(1) 2017-01-24 09:41:44 +00:00
rpc
security Audit 'fd' and 'cmd' arguments to fcntl(2), and when generating BSM, 2016-11-22 00:41:24 +00:00
sparc64 Trim a few comments on platforms that did not implement mmap of /dev/kmem. 2017-01-13 21:52:53 +00:00
sys Remove unused kern_sendfile() declaration. 2017-01-29 12:31:24 +00:00
teken
tests
tools Replace using of objdump with elfdump 2017-01-10 18:46:40 +00:00
ufs ffs_vnops: Simplify extattr access 2017-01-19 16:46:05 +00:00
vm hwpmc: partially depessimize munmap handling if the module is not loaded 2017-01-24 22:00:16 +00:00
x86 Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
xdr
xen "Buses" is the preferred plural of "bus" 2017-01-15 17:54:01 +00:00
Makefile Remove pc98 support completely. 2017-01-28 02:22:15 +00:00