linux/arch/x86/include/asm
Ilias Stamatis 1ab9287add KVM: X86: Add vendor callbacks for writing the TSC multiplier
Currently vmx_vcpu_load_vmcs() writes the TSC_MULTIPLIER field of the
VMCS every time the VMCS is loaded. Instead of doing this, set this
field from common code on initialization and whenever the scaling ratio
changes.

Additionally remove vmx->current_tsc_ratio. This field is redundant as
vcpu->arch.tsc_scaling_ratio already tracks the current TSC scaling
ratio. The vmx->current_tsc_ratio field is only used for avoiding
unnecessary writes but it is no longer needed after removing the code
from the VMCS load path.

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Ilias Stamatis <ilstam@amazon.com>
Message-Id: <20210607105438.16541-1-ilstam@amazon.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-06-17 13:09:29 -04:00
..
e820
fpu x86/fpu/64: Don't FNINIT in kernel_fpu_begin() 2021-01-29 12:27:47 +01:00
numachip
trace x86/mm/tlb: Flush remote and local TLBs concurrently 2021-03-06 12:59:10 +01:00
uv x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
vdso lib/vdso: Add vdso_data pointer as input to __arch_get_timens_vdso_data() 2021-04-14 23:04:44 +10:00
xen Revert "xen: fix p2m size in dom0 for disabled memory hotplug case" 2021-03-24 18:33:36 -05:00
acenv.h
acpi.h x86/mce, cper: Pass x86 CPER through the MCA handling chain 2020-11-21 12:05:41 +01:00
acrn.h x86/acrn: Introduce hypercall interfaces 2021-02-09 10:58:18 +01:00
agp.h x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
alternative.h x86/alternatives: Optimize optimize_nops() 2021-04-02 12:41:17 +02:00
amd_nb.h
apic.h x86/apic: Add extra serialization for non-serializing MSRs 2021-02-04 19:36:31 +01:00
apicdef.h x86/apic: Cleanup delivery mode defines 2020-10-28 20:26:24 +01:00
apm.h
arch_hweight.h
archrandom.h
asm-offsets.h
asm-prototypes.h objtool/x86: Rewrite retpoline thunk calls 2021-04-02 12:47:28 +02:00
asm.h Orphan link sections were a long-standing source of obscure bugs, 2020-10-12 13:39:19 -07:00
atomic64_32.h
atomic64_64.h asm-generic/atomic: Add try_cmpxchg() fallbacks 2020-10-12 18:27:27 +02:00
atomic.h asm-generic/atomic: Add try_cmpxchg() fallbacks 2020-10-12 18:27:27 +02:00
audit.h
barrier.h x86/apic: Add extra serialization for non-serializing MSRs 2021-02-04 19:36:31 +01:00
bios_ebda.h
bitops.h
boot.h x86: Add support for ZSTD compressed kernel 2020-07-31 11:49:09 +02:00
bootparam_utils.h
bug.h x86: Delete UD0, UD1 traces 2021-05-05 21:50:13 +02:00
bugs.h
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cacheflush.h
cacheinfo.h x86/CPU/AMD: Save AMD NodeId as cpu_die_id 2020-11-19 11:43:13 +01:00
ce4100.h
checksum_32.h i386: propagate the calling conventions change down to csum_partial_copy_generic() 2020-08-20 15:45:18 -04:00
checksum_64.h amd64: switch csum_partial_copy_generic() to new calling conventions 2020-08-20 15:45:22 -04:00
checksum.h unify generic instances of csum_partial_copy_nocheck() 2020-08-20 15:45:14 -04:00
clocksource.h
cmdline.h
cmpxchg_32.h x86: cmpxchg_32.h: Delete duplicated word 2020-07-26 12:47:22 +02:00
cmpxchg_64.h
cmpxchg.h x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
compat.h [amd64] clean PRSTATUS_SIZE/SET_PR_FPVALID up properly 2021-01-06 08:40:56 -05:00
cpu_device_id.h
cpu_entry_area.h x86/sev-es: Allocate and map an IST stack for #VC handler 2020-09-09 11:33:19 +02:00
cpu.h Perf events changes in this cycle were: 2021-04-28 13:03:44 -07:00
cpufeature.h x86/alternative: Use ALTERNATIVE_TERNARY() in _static_cpu_has() 2021-03-11 19:33:43 +01:00
cpufeatures.h ARM: 2021-05-01 10:14:08 -07:00
cpuidle_haltpoll.h
cpumask.h
crash.h
current.h
debugreg.h x86/debug: Remove aout_dump_debugregs() 2020-09-04 15:12:55 +02:00
delay.h
desc_defs.h x86/idt: Make IDT init functions static inlines 2020-09-07 22:44:43 +02:00
desc.h x86/idt: Make IDT init functions static inlines 2020-09-07 22:44:43 +02:00
device.h x86: Remove dev->archdata.iommu pointer 2020-06-30 11:59:48 +02:00
disabled-features.h x86/cpufeatures: Assign dedicated feature word for CPUID_0x8000001F[EAX] 2021-01-28 17:41:24 +01:00
div64.h
dma-mapping.h dma-mapping: move dma-debug.h to kernel/dma/ 2020-10-06 07:07:05 +02:00
dma.h
dmi.h
doublefault.h
dwarf2.h
edac.h
efi.h - Have 64-bit kernel code which uses 387 insns request a x87 init 2021-02-20 20:07:44 -08:00
elf.h x86: Remove unusual Unicode characters from comments 2021-03-21 23:50:07 +01:00
elfcore-compat.h [amd64] clean PRSTATUS_SIZE/SET_PR_FPVALID up properly 2021-01-06 08:40:56 -05:00
emergency-restart.h
emulate_prefix.h
enclu.h x86/vdso: Implement a vDSO for Intel SGX enclave call 2020-11-18 18:02:50 +01:00
entry-common.h x86/entry: Enable random_kstack_offset support 2021-04-08 14:05:20 +02:00
espfix.h
exec.h
extable.h x86/mce: Provide method to find out the type of an exception handler 2020-10-07 11:08:59 +02:00
fb.h
fixmap.h x86/platform/intel-mid: Remove unused leftovers (vRTC) 2021-02-09 15:28:37 +01:00
floppy.h floppy: remove redundant assignment to variable st 2021-04-20 08:59:03 -06:00
frame.h x86/unwind/fp: Fix FP unwinding in ret_from_fork 2020-09-18 09:59:40 +02:00
fsgsbase.h x86/fsgsbase: Replace static_cpu_has() with boot_cpu_has() 2020-08-24 18:18:32 +02:00
ftrace.h livepatch: Use the default ftrace_ops instead of REGS when ARGS is available 2020-11-13 12:15:28 -05:00
futex.h
gart.h
GEN-for-each-reg.h
genapic.h
geode.h
hardirq.h x86/kvm/vmx: Move guest enter/exit into .noinstr.text 2020-07-09 07:08:40 -04:00
highmem.h x86/mm/highmem: Use generic kmap atomic implementation 2020-11-06 23:14:55 +01:00
hpet.h x86/hpet: Move MSI support into hpet.c 2020-10-28 20:26:25 +01:00
hugetlb.h
hw_breakpoint.h
hw_irq.h iommu/amd: Fix IOMMU interrupt generation in X2APIC mode 2020-11-18 20:55:59 +01:00
hyperv-tlfs.h KVM: hyper-v: Advertise support for fast XMM hypercalls 2021-06-17 13:09:24 -04:00
hypervisor.h
i8259.h
ia32_unistd.h
ia32.h
idtentry.h KVM/VMX: Invoke NMI non-IST entry instead of IST entry 2021-05-05 22:54:10 +02:00
imr.h
inat_types.h
inat.h x86/insn: Add a __ignore_sync_check__ marker 2021-03-15 11:00:57 +01:00
init.h
insn-eval.h x86/insn: Rename insn_decode() to insn_decode_from_regs() 2021-03-15 10:53:10 +01:00
insn.h x86: Add insn_decode_kernel() 2021-03-31 16:20:22 +02:00
inst.h x86/asm: Drop unused RDPID macro 2020-11-26 12:58:56 +01:00
intel_ds.h
intel_pconfig.h x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
intel_pt.h x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
intel_punit_ipc.h
intel_scu_ipc.h x86/platform/intel-mid: Get rid of intel_scu_ipc_legacy.h 2021-02-15 20:10:30 +01:00
intel_telemetry.h
intel-family.h x86/cpu: Comment Skylake server stepping too 2021-04-10 11:14:33 +02:00
intel-mid.h x86/platform/intel-mid: Update Copyright year and drop file names 2021-02-15 20:10:30 +01:00
invpcid.h
io_apic.h x86/ioapic: Handle Extended Destination ID field in RTE 2020-10-28 20:26:28 +01:00
io_bitmap.h x86/ioperm: Fix io bitmap invalidation on Xen PV 2020-07-18 12:31:49 +02:00
io.h x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
iomap.h io-mapping: Cleanup atomic iomap 2020-11-06 23:14:58 +01:00
iommu_table.h
iommu.h
iosf_mbi.h media: atomisp: move CCK endpoint address to generic header 2020-07-18 07:17:16 +02:00
irq_remapping.h x86: Kill all traces of irq_remapping_get_irq_domain() 2020-10-28 20:26:28 +01:00
irq_stack.h x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
irq_vectors.h
irq_work.h
irq.h Rework of the X86 irq stack handling: 2021-02-24 16:32:23 -08:00
irqdomain.h x86/apic: Add select() method on vector irqdomain 2020-10-28 20:26:27 +01:00
irqflags.h x86/paravirt: Switch functions with custom code to ALTERNATIVE 2021-03-11 20:07:01 +01:00
ist.h
jailhouse_para.h
jump_label.h Locking changes for this cycle were: 2021-04-28 12:37:53 -07:00
kasan.h
kaslr.h
kbdleds.h
Kbuild
kdebug.h x86/dumpstack: Add log_lvl to __show_regs() 2020-07-22 23:56:53 +02:00
kexec-bzimage64.h
kexec.h x86: Use ELF fields defined in 'struct kimage' 2021-03-08 12:06:29 -07:00
kfence.h kfence, x86: fix preemptible warning on KPTI-enabled systems 2021-04-09 14:54:23 -07:00
kgdb.h
kprobes.h x86/kprobes: Use int3 instead of debug trap for single-step 2021-03-23 16:07:56 +01:00
kvm_host.h KVM: X86: Add vendor callbacks for writing the TSC multiplier 2021-06-17 13:09:29 -04:00
kvm_page_track.h
kvm_para.h x86/kvm: Disable all PV features on crash 2021-05-07 06:06:10 -04:00
kvm_types.h KVM: Move x86's version of struct kvm_mmu_memory_cache to common code 2020-07-09 13:29:42 -04:00
kvm_vcpu_regs.h
kvm-x86-ops.h KVM: X86: Add vendor callbacks for writing the TSC multiplier 2021-06-17 13:09:29 -04:00
kvmclock.h
linkage.h
livepatch.h livepatch: Use the default ftrace_ops instead of REGS when ARGS is available 2020-11-13 12:15:28 -05:00
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h thermal: Move therm_throt there from x86/mce 2021-02-08 11:43:20 +01:00
mem_encrypt.h x86/sev: Drop redundant and potentially misleading 'sev_enabled' 2021-04-26 05:27:14 -04:00
memtype.h
microcode_amd.h
microcode_intel.h
microcode.h x86/microcode: Make microcode_init() static 2020-12-31 11:44:00 +01:00
misc.h
mmconfig.h
mmu_context.h asm-generic: mmu-context cleanup 2020-12-15 23:58:04 -08:00
mmu.h x86/mm: Convert mmu context ia32_compat into a proper flags field 2020-10-26 13:46:47 +01:00
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module.h
mpspec_def.h
mpspec.h x86/init: Remove unused init ops 2020-09-16 16:52:28 +02:00
mshyperv.h drivers: hv: Create a consistent pattern for checking Hyper-V hypercall status 2021-04-21 09:49:19 +00:00
msi.h x86/apic: Support 15 bits of APIC ID in MSI where available 2020-10-28 20:26:29 +01:00
msr-index.h Perf events changes in this cycle were: 2021-04-28 13:03:44 -07:00
msr-trace.h
msr.h x86/cpu: Remove write_tsc() and write_rdtscp_aux() wrappers 2021-05-05 21:50:14 +02:00
mtrr.h
mwait.h sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
nmi.h arch: x86: Remove CONFIG_OPROFILE support 2021-01-29 10:05:51 +05:30
nops.h x86: Remove dynamic NOP selection 2021-03-15 16:24:59 +01:00
nospec-branch.h - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
numa_32.h
numa.h ACPI updates for 5.10-rc1 2020-10-14 11:42:04 -07:00
olpc_ofw.h
olpc.h
orc_lookup.h
orc_types.h objtool: Fix x86 orc generation on big endian cross-compiles 2021-01-13 18:13:13 -06:00
page_32_types.h x86/build: Fix vmlinux size check on 64-bit 2020-10-29 21:54:35 +01:00
page_32.h
page_64_types.h x86/cpu: Use alternative to generate the TASK_SIZE_MAX constant 2021-05-05 08:52:31 +02:00
page_64.h x86/cpu: Use alternative to generate the TASK_SIZE_MAX constant 2021-05-05 08:52:31 +02:00
page_types.h
page.h
paravirt_types.h The x86 MM changes in this cycle were: 2021-04-29 11:41:43 -07:00
paravirt.h The x86 MM changes in this cycle were: 2021-04-29 11:41:43 -07:00
parport.h
pci_x86.h x86/pci: Reducde #ifdeffery in PCI init code 2020-09-16 16:52:35 +02:00
pci-direct.h
pci-functions.h
pci.h x86/irq: Cleanup the arch_*_msi_irqs() leftovers 2020-09-16 16:52:38 +02:00
percpu.h x86/percpu: Remove unused PER_CPU() macro 2020-07-23 11:46:43 +02:00
perf_event_p4.h
perf_event.h perf/x86/intel: Add perf core PMU support for Sapphire Rapids 2021-02-01 15:31:37 +01:00
pgalloc.h asm-generic: pgalloc: provide generic pgd_free() 2020-08-07 11:33:26 -07:00
pgtable_32_areas.h
pgtable_32_types.h
pgtable_32.h x86/build: Fix vmlinux size check on 64-bit 2020-10-29 21:54:35 +01:00
pgtable_64_types.h x86: Support kmap_local() forced debugging 2020-11-24 14:42:09 +01:00
pgtable_64.h The biggest change is to not sync the vmalloc and ioremap ranges for x86-64 anymore. 2020-08-03 17:25:42 -07:00
pgtable_areas.h
pgtable_types.h x86/mm: Remove duplicate definition of _PAGE_PAT_LARGE 2021-01-08 22:04:51 +01:00
pgtable-2level_types.h
pgtable-2level.h
pgtable-3level_types.h x86/paravirt: Remove 32-bit support from CONFIG_PARAVIRT_XXL 2020-08-15 13:52:11 +02:00
pgtable-3level.h
pgtable-invert.h
pgtable.h x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
pkeys.h
platform_sst_audio.h sfi: Remove framework for deprecated firmware 2021-02-15 20:09:46 +01:00
pm-trace.h
posix_types.h
preempt.h sched,x86: Allow !PREEMPT_DYNAMIC 2021-02-17 14:12:43 +01:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
prom.h
proto.h x86/asm: Ensure asm/proto.h can be included stand-alone 2021-04-12 13:12:46 +02:00
pti.h
ptrace.h Linux 5.12-rc3 2021-03-15 10:49:00 +01:00
purgatory.h
pvclock-abi.h
pvclock.h
qrwlock.h
qspinlock_paravirt.h
qspinlock.h x86/kvm: Add "nopvspin" parameter to disable PV spinlocks 2020-07-08 16:21:57 -04:00
realmode.h x86/head/64: Don't call verify_cpu() on starting APs 2020-09-09 11:33:20 +02:00
reboot_fixups.h
reboot.h
required-features.h x86/cpufeatures: Assign dedicated feature word for CPUID_0x8000001F[EAX] 2021-01-28 17:41:24 +01:00
resctrl.h x86/resctrl: Apply READ_ONCE/WRITE_ONCE to task_struct.{rmid,closid} 2021-01-11 11:43:23 +01:00
rmwcc.h
seccomp.h x86: Enable seccomp architecture tracking 2020-11-20 11:16:34 -08:00
sections.h
segment.h x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
serial.h
set_memory.h x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
setup_arch.h
setup.h x86/setup: Remove unused RESERVE_BRK_ARRAY() 2021-03-11 11:47:37 +01:00
sev-es.h x86/efi: Add GHCB mappings when SEV-ES is active 2020-09-10 21:48:50 +02:00
sgx.h Trivial cleanups and fixes all over the place. 2021-04-26 09:25:47 -07:00
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h x86/entry: Use generic syscall exit functionality 2020-07-24 15:04:59 +02:00
simd.h
smap.h First big cleanup to the paravirt infra to use alternatives and thus 2021-04-26 09:01:29 -07:00
smp.h ACPI: processor: Fix build when CONFIG_ACPI_PROCESSOR=m 2021-04-07 19:02:43 +02:00
softirq_stack.h x86/softirq/64: Inline do_softirq_own_stack() 2021-02-10 23:34:17 +01:00
sparsemem.h mm: fix phys_to_target_node() and memory_add_physaddr_to_nid() exports 2020-11-22 10:48:22 -08:00
spec-ctrl.h
special_insns.h x86: Remove dynamic NOP selection 2021-03-15 16:24:59 +01:00
spinlock_types.h
spinlock.h
sta2x11.h
stackprotector.h x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
stacktrace.h x86/dumpstack: Make show_trace_log_lvl() static 2020-11-17 19:05:32 +01:00
static_call.h static_call: Allow module use without exposing static_call_key 2021-02-17 14:12:42 +01:00
string_32.h
string_64.h x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}() 2020-10-06 11:18:04 +02:00
string.h
suspend_32.h x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
suspend_64.h
suspend.h
svm.h KVM: SVM: Add support for Virtual SPEC_CTRL 2021-03-15 04:43:25 -04:00
swiotlb.h
switch_to.h x86/process/64: Move cpu_current_top_of_stack out of TSS 2021-03-28 22:40:10 +02:00
sync_bitops.h
sync_core.h x86/membarrier: Get rid of a dubious optimization 2020-12-09 09:37:42 +01:00
syscall_wrapper.h x86/syscalls: Fix -Wmissing-prototypes warnings from COND_SYSCALL() 2021-03-25 16:20:41 +01:00
syscall.h
syscalls.h
sysfb.h
text-patching.h x86/alternatives: Teach text_poke_bp() to emulate RET 2020-09-01 09:58:05 +02:00
thermal.h thermal: Move therm_throt there from x86/mce 2021-02-08 11:43:20 +01:00
thread_info.h x86/process/64: Move cpu_current_top_of_stack out of TSS 2021-03-28 22:40:10 +02:00
time.h
timer.h
timex.h
tlb.h tlb: arch: Remove empty __tlb_remove_tlb_entry() stubs 2021-01-29 20:02:29 +01:00
tlbbatch.h
tlbflush.h x86/mm/tlb: Privatize cpu_tlbstate 2021-03-06 12:59:10 +01:00
topology.h x86/topology: Make __max_die_per_package available unconditionally 2021-01-14 12:18:36 +01:00
trace_clock.h
trap_pf.h x86/mm: Signal SIGSEGV with PF_SGX 2020-11-17 14:36:13 +01:00
trapnr.h x86/boot/compressed/64: Add stage1 #VC handler 2020-09-07 19:45:25 +02:00
traps.h This feature enhances the current guest memory encryption support 2020-10-14 10:21:34 -07:00
tsc.h A set of locking fixes and updates: 2020-08-10 19:07:44 -07:00
uaccess_32.h
uaccess_64.h x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}() 2020-10-06 11:18:04 +02:00
uaccess.h x86/uaccess: fix code generation in put_user() 2020-10-23 13:44:24 -07:00
umip.h
unaligned.h
unistd.h
unwind_hints.h objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC 2021-01-26 11:12:00 -06:00
unwind.h
uprobes.h
user32.h
user_32.h
user_64.h
user.h
vdso.h A set of updates for entry/exit handling: 2020-12-14 17:13:53 -08:00
vermagic.h
vga.h
vgtod.h
virtext.h KVM: VMX: Use the kernel's version of VMXOFF 2021-02-04 05:27:33 -05:00
vm86.h x86/vm86/32: Remove VM86_SCREEN_BITMAP support 2021-01-21 20:08:53 +01:00
vmalloc.h mm/vmalloc: provide fallback arch huge vmap support functions 2021-04-30 11:20:40 -07:00
vmware.h
vmx.h KVM: VMX: Add basic handling of VM-Exit from SGX enclave 2021-04-20 04:18:54 -04:00
vmxfeatures.h KVM: VMX: Enable bus lock VM exit 2021-02-04 05:27:21 -05:00
vsyscall.h
vvar.h
word-at-a-time.h
x86_init.h x86/apic: Support 15 bits of APIC ID in MSI where available 2020-10-28 20:26:29 +01:00
xor_32.h
xor_64.h
xor_avx.h
xor.h