mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-28 11:57:28 +00:00
97dbe5e48e
1. Add support for automatic promotion of 4KB page mappings to 2MB page mappings. Automatic promotion can be enabled by setting the tunable "vm.pmap.pg_ps_enabled" to a non-zero value. By default, automatic promotion is disabled. Tested by: kris 2. To date, we have assumed that the TLB will only set the PG_M bit in a PTE if that PTE has the PG_RW bit set. However, this assumption does not hold on recent processors from Intel. For example, consider a PTE that has the PG_RW bit set but the PG_M bit clear. Suppose this PTE is cached in the TLB and later the PG_RW bit is cleared in the PTE, but the corresponding TLB entry is not (yet) invalidated. Historically, upon a write access using this (stale) TLB entry, the TLB would observe that the PG_RW bit had been cleared and initiate a page fault, aborting the setting of the PG_M bit in the PTE. Now, however, P4- and Core2-family processors will set the PG_M bit before observing that the PG_RW bit is clear and initiating a page fault. In other words, the write does not occur but the PG_M bit is still set. The real impact of this difference is not that great. Specifically, we should no longer assert that any PTE with the PG_M bit set must also have the PG_RW bit set, and we should ignore the state of the PG_M bit unless the PG_RW bit is set. |
||
---|---|---|
.. | ||
apic_vector.s | ||
atomic.c | ||
autoconf.c | ||
bios.c | ||
bioscall.s | ||
bpf_jit_machdep.c | ||
bpf_jit_machdep.h | ||
busdma_machdep.c | ||
db_disasm.c | ||
db_interface.c | ||
db_trace.c | ||
dump_machdep.c | ||
elan-mmcr.c | ||
elf_machdep.c | ||
exception.s | ||
gdb_machdep.c | ||
genassym.c | ||
geode.c | ||
i686_mem.c | ||
identcpu.c | ||
in_cksum.c | ||
initcpu.c | ||
intr_machdep.c | ||
io_apic.c | ||
io.c | ||
k6_mem.c | ||
legacy.c | ||
local_apic.c | ||
locore.s | ||
longrun.c | ||
machdep.c | ||
mem.c | ||
minidump_machdep.c | ||
mp_clock.c | ||
mp_machdep.c | ||
mp_watchdog.c | ||
mpboot.s | ||
mptable_pci.c | ||
mptable.c | ||
msi.c | ||
nexus.c | ||
perfmon.c | ||
pmap.c | ||
ptrace_machdep.c | ||
stack_machdep.c | ||
support.s | ||
swtch.s | ||
symbols.raw | ||
sys_machdep.c | ||
trap.c | ||
tsc.c | ||
uio_machdep.c | ||
vm86.c | ||
vm86bios.s | ||
vm_machdep.c |