linux_dsm_epyc7002/arch/x86/include/asm
Sean Christopherson ca333add69 KVM: x86/mmu: Explicitly track only a single invalid mmu generation
Toggle mmu_valid_gen between '0' and '1' instead of blindly incrementing
the generation.  Because slots_lock is held for the entire duration of
zapping obsolete pages, it's impossible for there to be multiple invalid
generations associated with shadow pages at any given time.

Toggling between the two generations (valid vs. invalid) allows changing
mmu_valid_gen from an unsigned long to a u8, which reduces the size of
struct kvm_mmu_page from 160 to 152 bytes on 64-bit KVM, i.e. reduces
KVM's memory footprint by 8 bytes per shadow page.

Set sp->mmu_valid_gen before it is added to active_mmu_pages.
Functionally this has no effect as kvm_mmu_alloc_page() has a single
caller that sets sp->mmu_valid_gen soon thereafter, but visually it is
jarring to see a shadow page being added to the list without its
mmu_valid_gen first being set.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-09-24 14:36:00 +02:00
..
crypto crypto: x86/xts - implement support for ciphertext stealing 2019-08-22 14:57:34 +10:00
e820
fpu
numachip
trace
uv efi/x86: move UV_SYSTAB handling into arch/x86 2019-08-08 11:01:48 +03:00
vdso Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-17 12:35:15 -07:00
xen swiotlb-xen: simplify cache maintainance 2019-09-11 12:43:27 +02:00
acenv.h
acpi.h
acrn.h
agp.h
alternative-asm.h
alternative.h x86: alternative.h: use asm_inline for all alternative variants 2019-09-15 20:14:15 +02:00
amd_nb.h
apb_timer.h
apic.h x86/apic/flat64: Remove the IPI shorthand decision logic 2019-07-25 16:12:02 +02:00
apicdef.h
apm.h
arch_hweight.h
archrandom.h
asm-offsets.h
asm-prototypes.h
asm.h
atomic64_32.h
atomic64_64.h
atomic.h
barrier.h x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
bios_ebda.h
bitops.h x86/bitops: Use __builtin_constant_p() directly instead of IS_IMMEDIATE() 2019-07-23 13:44:18 +02:00
boot.h
bootparam_utils.h x86/boot: Preserve boot_params.secure_boot from sanitizing 2019-09-02 09:17:45 +02:00
bug.h x86: bug.h: use asm_inline in _BUG_FLAGS definitions 2019-09-15 20:14:15 +02:00
bugs.h x86/cpu: Move arch_smt_update() to a neutral place 2019-07-25 16:11:59 +02:00
cache.h
cacheflush.h
cacheinfo.h
calgary.h
ce4100.h
checksum_32.h
checksum_64.h
checksum.h
clocksource.h
cmdline.h
cmpxchg_32.h
cmpxchg_64.h
cmpxchg.h
compat.h
cpu_device_id.h
cpu_entry_area.h
cpu.h
cpufeature.h x86/cpufeature: Explain the macro duplication 2019-08-28 08:38:39 +02:00
cpufeatures.h Merge branch 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-16 19:40:24 -07:00
cpuidle_haltpoll.h cpuidle-haltpoll: vcpu hotplug support 2019-09-03 09:36:36 +02:00
cpumask.h
crash.h
current.h
debugreg.h
delay.h
desc_defs.h
desc.h
device.h
disabled-features.h
div64.h x86/math64: Provide a sane mul_u64_u32_div() implementation for x86_64 2019-09-03 08:56:14 +02:00
dma-direct.h
dma-mapping.h
dma.h
dmi.h
dwarf2.h
edac.h
efi.h efi: x86: move efi_is_table_address() into arch/x86 2019-08-08 11:01:48 +03:00
elf.h
emergency-restart.h
entry_arch.h
espfix.h
exec.h
extable.h
fb.h
fixmap.h x86/fixmap: Cleanup outdated comments 2019-08-19 21:50:19 +02:00
floppy.h
frame.h
fsgsbase.h
ftrace.h ftrace/x86: Remove mcount() declaration 2019-08-31 06:51:55 -04:00
futex.h
gart.h
genapic.h
geode.h
hardirq.h
highmem.h
hpet.h
hugetlb.h
hw_breakpoint.h
hw_irq.h x86/irq: Improve definition of VECTOR_SHUTDOWN et al 2019-08-19 23:19:06 +02:00
hyperv-tlfs.h KVM: x86: hyper-v: set NoNonArchitecturalCoreSharing CPUID bit when SMT is impossible 2019-09-24 13:37:30 +02:00
hypervisor.h x86/paravirt: Remove const mark from x86_hyper_xen_hvm variable 2019-07-17 08:09:59 +02:00
i8259.h
ia32_unistd.h
ia32.h
imr.h
inat_types.h
inat.h
init.h
insn-eval.h
insn.h
inst.h
intel_ds.h
intel_mid_vrtc.h
intel_pconfig.h
intel_pmc_ipc.h
intel_pt.h perf/x86/intel: Support PEBS output to PT 2019-08-28 11:29:39 +02:00
intel_punit_ipc.h
intel_scu_ipc.h
intel_telemetry.h
intel-family.h x86/cpu: Add new Airmont variant to Intel family 2019-09-06 07:30:39 +02:00
intel-mid.h
invpcid.h
io_apic.h
io.h arch/*: remove unused isa_page_to_bus() 2019-07-16 19:23:22 -07:00
iomap.h
iommu_table.h
iommu.h x86/dma: Get rid of iommu_pass_through 2019-08-23 10:11:01 +02:00
iosf_mbi.h
irq_regs.h
irq_remapping.h
irq_vectors.h
irq_work.h
irq.h x86/irq: Move IS_ERR_OR_NULL() check into common do_IRQ() code 2019-08-19 23:19:06 +02:00
irqdomain.h
irqflags.h
ist.h
jailhouse_para.h
jump_label.h
kasan.h
kaslr.h
kbdleds.h
Kbuild
kdebug.h
kexec-bzimage64.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h
kvm_emulate.h x86: KVM: add xsetbv to the emulator 2019-08-22 10:09:20 +02:00
kvm_host.h KVM: x86/mmu: Explicitly track only a single invalid mmu generation 2019-09-24 14:36:00 +02:00
kvm_page_track.h
kvm_para.h x86/mm, tracing: Fix CR2 corruption 2019-07-17 23:17:38 +02:00
kvm_vcpu_regs.h
kvmclock.h
linkage.h
livepatch.h
local64.h
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h
mcsafe_test.h
mem_encrypt.h x86, s390/mm: Move sme_active() and sme_me_mask to x86-specific header 2019-08-09 22:52:08 +10:00
microcode_amd.h
microcode_intel.h
microcode.h
misc.h
mmconfig.h
mmu_context.h x86/mm: Avoid redundant interrupt disable in load_mm_cr4() 2019-07-24 14:43:37 +02:00
mmu.h
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module.h
mpspec_def.h
mpspec.h
mpx.h
mshyperv.h x86/hyperv: Add functions to allocate/deallocate page for Hyper-V 2019-07-22 11:06:45 +02:00
msi.h
msidef.h
msr-index.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-16 18:47:53 -07:00
msr-trace.h
msr.h x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
mtrr.h
mwait.h
nmi.h
nops.h
nospec-branch.h x86/retpoline: Don't clobber RFLAGS during CALL_NOSPEC on i386 2019-08-23 17:38:13 +02:00
numa_32.h
numa.h
olpc_ofw.h
olpc.h
orc_lookup.h
orc_types.h
page_32_types.h
page_32.h
page_64_types.h
page_64.h
page_types.h
page.h
paravirt_types.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
paravirt.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
parport.h
pat.h
pci_64.h
pci_x86.h
pci-direct.h
pci-functions.h
pci.h
percpu.h
perf_event_p4.h
perf_event.h perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops 2019-08-30 14:27:47 +02:00
pgalloc.h asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] 2019-07-12 11:05:45 -07:00
pgtable_32_types.h
pgtable_32.h
pgtable_64_types.h
pgtable_64.h mm: simplify gup_fast_permitted 2019-07-12 11:05:44 -07:00
pgtable_types.h mm: introduce ARCH_HAS_PTE_DEVMAP 2019-07-16 19:23:25 -07:00
pgtable-2level_types.h
pgtable-2level.h
pgtable-3level_types.h
pgtable-3level.h mm: lift the x86_32 PAE version of gup_get_pte to common code 2019-07-12 11:05:44 -07:00
pgtable-invert.h
pgtable.h mm: introduce ARCH_HAS_PTE_DEVMAP 2019-07-16 19:23:25 -07:00
pkeys.h
platform_sst_audio.h
pm-trace.h
posix_types.h
preempt.h x86: Use CONFIG_PREEMPTION 2019-07-31 19:03:35 +02:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h x86/asm: Move native_write_cr0/4() out of line 2019-07-10 22:15:05 +02:00
prom.h
proto.h
pti.h
ptrace.h asm-generic: remove ptrace.h 2019-07-12 15:41:33 -07:00
purgatory.h
pvclock-abi.h
pvclock.h
qrwlock.h
qspinlock_paravirt.h
qspinlock.h locking/qspinlock,x86: Clarify virt_spin_lock_key 2019-08-06 12:49:16 +02:00
realmode.h x86/realmode: Remove trampoline_status 2019-07-22 11:30:18 +02:00
reboot_fixups.h
reboot.h
refcount.h
required-features.h
resctrl_sched.h
rio.h
rmwcc.h
seccomp.h
sections.h
segment.h
serial.h
set_memory.h x86/mm: Remove the unused set_memory_wt() function 2019-09-03 09:26:37 +02:00
setup_arch.h
setup.h
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h
simd.h
smap.h
smp.h x86/smp: Move smp_function_call implementations into IPI code 2019-07-25 16:12:01 +02:00
sparsemem.h
spec-ctrl.h
special_insns.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
spinlock_types.h
spinlock.h
sta2x11.h
stackprotector.h
stacktrace.h
string_32.h
string_64.h
string.h
suspend_32.h
suspend_64.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
suspend.h
svm.h
swiotlb.h
switch_to.h
sync_bitops.h
sync_core.h
syscall_wrapper.h
syscall.h x86/syscalls: Split the x32 syscalls into their own table 2019-07-22 10:31:23 +02:00
syscalls.h
sysfb.h
tce.h
text-patching.h x86: Correct misc typos 2019-09-02 14:02:59 +02:00
thread_info.h
time.h
timer.h
timex.h
tlb.h
tlbbatch.h
tlbflush.h x86/mm: Avoid redundant interrupt disable in load_mm_cr4() 2019-07-24 14:43:37 +02:00
topology.h
trace_clock.h
traps.h Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-07-20 11:24:49 -07:00
tsc.h
uaccess_32.h
uaccess_64.h
uaccess.h x86/uaccess: Don't leak the AC flags into __get_user() argument evaluation 2019-09-02 14:22:38 +02:00
umip.h
unaligned.h
unistd.h x86/syscalls: Split the x32 syscalls into their own table 2019-07-22 10:31:23 +02:00
unwind_hints.h
unwind.h
uprobes.h
user32.h
user_32.h
user_64.h
user.h
vdso.h
vga.h
vgtod.h
virtext.h
vm86.h
vmware.h x86/vmware: Add a header file for hypercall definitions 2019-08-28 13:32:06 +02:00
vmx.h KVM: x86: Add support for user wait instructions 2019-09-24 14:34:20 +02:00
vsyscall.h
vvar.h
word-at-a-time.h
x86_init.h x86/xen: Add "nopv" support for HVM guest 2019-07-17 08:09:59 +02:00
xor_32.h
xor_64.h
xor_avx.h
xor.h