linux-kernel-test/arch/x86/include/asm
Alexander Graf 10474ae894 KVM: Activate Virtualization On Demand
X86 CPUs need to have some magic happening to enable the virtualization
extensions on them. This magic can result in unpleasant results for
users, like blocking other VMMs from working (vmx) or using invalid TLB
entries (svm).

Currently KVM activates virtualization when the respective kernel module
is loaded. This blocks us from autoloading KVM modules without breaking
other VMMs.

To circumvent this problem at least a bit, this patch introduces on
demand activation of virtualization. This means, that instead
virtualization is enabled on creation of the first virtual machine
and disabled on destruction of the last one.

So using this, KVM can be easily autoloaded, while keeping other
hypervisors usable.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2009-12-03 09:32:10 +02:00
..
uv x86, UV: Set DELIVERY_MODE=4 for vector=NMI_VECTOR in uv_hub_send_ipi() 2009-10-21 13:31:13 +02:00
visws
xen Xen: Add virt_to_pfn helper function 2009-04-08 11:51:46 -07:00
a.out-core.h x86: add %gs accessors for x86_32 2009-02-10 00:41:58 +01:00
a.out.h
acpi.h ACPI: Handle CONFIG_ACPI=n better from linux/acpi.h 2009-08-28 19:57:29 -04:00
aes.h crypto: aes - Export x86 AES encrypt/decrypt functions 2009-02-18 16:48:05 +08:00
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
alternative-asm.h
alternative.h x86: properly annotate alternatives.c 2009-08-21 15:30:12 -07:00
amd_iommu_types.h Merge branch 'amd-iommu/pagetable' into amd-iommu/2.6.32 2009-09-03 17:14:57 +02:00
amd_iommu.h Merge branches 'amd-iommu/fixes' and 'dma-debug/fixes' into iommu/fixes 2009-11-03 12:05:40 +01:00
apic.h Merge branch 'linus' into x86/urgent 2009-09-20 20:25:03 +02:00
apicdef.h Merge branch 'kvm-updates/2.6.32' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2009-09-14 17:43:43 -07:00
apicnum.h irq: initialize nr_irqs based on nr_cpu_ids 2009-01-11 19:13:38 +01:00
apm.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
asm.h x86, asm: Make _ASM_EXTABLE() usable from assembly code 2009-08-31 15:14:30 -07:00
atomic_32.h x86: atomic64: Inline atomic64_read() again 2009-07-04 11:45:00 +02:00
atomic_64.h x86: atomic64: Code atomic(64)_read and atomic(64)_set in C not CPP 2009-07-03 14:42:39 +02:00
atomic.h
auxvec.h
bios_ebda.h
bitops.h x86, generic: mark complex bitops.h inlines as __always_inline 2009-01-13 18:56:30 +01:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
boot.h x86, setup: correct include file in <asm/boot.h> 2009-06-25 15:16:06 -07:00
bootparam.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
bug.h
bugs.h
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
cacheflush.h x86, pat: Use page flags to track memtypes of RAM pages 2009-08-26 15:41:24 -07:00
calgary.h
calling.h x86: document 64-bit and 32-bit function call convention ABI 2009-02-03 19:48:18 +01:00
checksum_32.h x86: fix csum_ipv6_magic asm memory clobber 2009-10-01 16:11:12 -07:00
checksum_64.h
checksum.h
cmpxchg_32.h x86: Provide an alternative() based cmpxchg64() 2009-09-30 22:55:59 +02:00
cmpxchg_64.h
cmpxchg.h
compat.h
cpu_debug.h x86: cpu_debug: Remove model information to reduce encoding-decoding 2009-06-07 12:22:56 +02:00
cpu.h x86: generalize boot_cpu_id 2009-01-29 14:17:01 +01:00
cpufeature.h x86: Move APERF/MPERF into a X86_FEATURE 2009-09-15 16:51:25 +02:00
cpumask.h x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask 2009-03-13 14:49:54 +10:30
cputime.h
current.h x86, percpu: Add 'percpu_read_stable()' interface for cacheable accesses 2009-08-04 01:28:52 +09:00
debugreg.h
delay.h
desc_defs.h x86: Introduce GDT_ENTRY_INIT() 2009-08-08 17:44:11 +02:00
desc.h x86: Make sure get_user_desc() doesn't sign extend. 2009-11-05 13:22:18 -08:00
device.h Driver Core: Add platform device arch data V3 2009-07-22 00:28:38 +02:00
div64.h
dma-mapping.h x86/PCI: Adjust GFP mask handling for coherent allocations 2009-11-08 07:44:30 -08:00
dma.h
dmi.h x86/dmi: fix dmi_alloc() section mismatches 2009-03-23 17:20:50 +01:00
ds.h x86, ds: support Core i7 2009-04-07 13:36:36 +02:00
dwarf2.h x86, asm: Add 32-bit versions of the combined CFI macros 2009-08-31 15:14:29 -07:00
e820.h x86: Move memory_setup to x86_init_ops 2009-08-27 17:12:52 +02:00
edac.h
efi.h x86: Make 64-bit efi_ioremap use ioremap on MMIO regions 2009-08-03 13:34:25 -07:00
elf.h x86: Increase MIN_GAP to include randomized stack 2009-09-10 17:00:12 -07:00
emergency-restart.h
entry_arch.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
errno.h
fb.h
fcntl.h
fixmap.h x86, intel_txt: Intel TXT boot support 2009-07-21 11:49:06 -07:00
floppy.h
frame.h
ftrace.h tracing: Remove FTRACE_SYSCALL_MAX definitions 2009-08-26 21:30:39 +02:00
futex.h
gart.h
genapic.h x86, apic: merge genapic.h into apic.h 2009-02-17 17:52:43 +01:00
geode.h
gpio.h
hardirq.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
highmem.h x86: unify kmap_atomic_pfn() and iomap_atomic_prot_pfn() 2009-03-11 15:47:46 +01:00
hpet.h
hugetlb.h
hw_irq.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
hypertransport.h
hypervisor.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
i387.h Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:58:08 -07:00
i8253.h
i8259.h x86: move x86_quirk_pre_intr_init() to irqinit_32.c 2009-04-10 14:35:53 +02:00
ia32_unistd.h
ia32.h generic compat_sys_ustat 2009-03-27 14:43:57 -04:00
idle.h
init.h x86: move function and variable declarations to asm/init.h 2009-03-05 14:17:18 +01:00
io_32.h Merge branches 'x86/acpi', 'x86/asm', 'x86/cpudetect', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/doc', 'x86/header-fixes', 'x86/headers' and 'x86/minor-fixes' into x86/core 2009-02-13 09:46:36 +01:00
io_64.h Merge branches 'x86/acpi', 'x86/asm', 'x86/cpudetect', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/doc', 'x86/header-fixes', 'x86/headers' and 'x86/minor-fixes' into x86/core 2009-02-13 09:46:36 +01:00
io_apic.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
io.h x86: fix set_fixmap to use phys_addr_t 2009-04-10 20:27:13 +02:00
ioctl.h
ioctls.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
iomap.h x86, pat: Add PAT reserve free to io_mapping* APIs 2009-08-26 15:41:16 -07:00
iommu.h Intel IOMMU Pass Through Support 2009-04-29 06:54:34 +01:00
ipcbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
ipi.h x86, apic: remove duplicate asm/apic.h inclusions 2009-02-17 17:52:44 +01:00
irq_regs.h x86: merge irq_regs.h 2009-01-21 17:26:06 +09:00
irq_remapping.h x86: x2apic, IR: Clean up X86_X2APIC and INTR_REMAP config checks 2009-04-21 09:08:25 +02:00
irq_vectors.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
irq.h x86: Move irq_init to x86_init_ops 2009-08-31 09:35:45 +02:00
irqflags.h x86: allow "=rm" in native_save_fl() 2009-08-25 16:47:16 -07:00
ist.h
k8.h x86: k8 convert node_to_k8_nb_misc() from a macro to an inline function 2009-04-15 12:12:36 +02:00
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug.h
kexec.h x86, kexec: x86_64: add kexec jump support for x86_64 2009-03-10 18:13:25 -07:00
kgdb.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kmemcheck.h kmemcheck: add the kmemcheck core 2009-06-13 15:37:30 +02:00
kprobes.h
kvm_emulate.h KVM: Rename x86_emulate.c to emulate.c 2009-09-10 10:46:45 +03:00
kvm_host.h KVM: Activate Virtualization On Demand 2009-12-03 09:32:10 +02:00
kvm_para.h KVM: Add missing #include 2009-09-10 10:46:49 +03:00
kvm.h KVM: Maintain back mapping from irqchip/pin to gsi 2009-12-03 09:32:07 +02:00
ldt.h
lguest_hcall.h lguest: update commentry 2009-07-30 16:03:46 +09:30
lguest.h Merge commit 'origin/x86/urgent' into x86/asm 2009-08-25 15:40:29 -07:00
linkage.h x86: shrink __ALIGN and __ALIGN_STR definitions 2009-03-11 12:39:28 +01:00
local.h
mach_timer.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
mach_traps.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
math_emu.h x86: fix math_emu register frame access 2009-02-10 00:39:14 +01:00
mc146818rtc.h
mca_dma.h
mca.h
mce.h x86: EDAC: MCE: Fix MCE decoding callback logic 2009-10-02 15:42:18 +02:00
microcode.h x86: microcode: use smp_call_function_single instead of set_cpus_allowed, cleanup of synchronization logic 2009-05-12 10:36:44 +02:00
mman.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
mmconfig.h
mmu_context.h cpumask: use mm_cpumask() wrapper: x86 2009-09-24 09:34:52 +09:30
mmu.h
mmx.h
mmzone_32.h bootmem, x86: further fixes for arch-specific bootmem wrapping 2009-03-01 16:06:56 +09:00
mmzone_64.h mm: clean up for early_pfn_to_nid() 2009-02-18 15:37:55 -08:00
mmzone.h
module.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
mpspec_def.h x86: rename all fields of mpf_intel mpf_X to X 2009-01-08 15:37:37 +01:00
mpspec.h x86: Move get/find_smp_config to x86_init_ops 2009-08-31 09:35:45 +02:00
msgbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
msidef.h x86, x2apic: enable fault handling for intr-remapping 2009-03-17 15:38:59 -07:00
msr-index.h Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-17 21:07:08 -07:00
msr.h x86, msr: Export the register-setting MSR functions via /dev/*/msr 2009-08-31 16:16:04 -07:00
mtrr.h x86, mtrr: make mtrr_aps_delayed_init static bool 2009-08-21 17:00:02 -07:00
mutex_32.h
mutex_64.h
mutex.h
nmi.h sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
nops.h x86/tracing: comment need for atomic nop 2009-09-10 17:22:44 -04:00
numa_32.h x86: set_highmem_pages_init() cleanup 2009-03-03 13:13:15 +01:00
numa_64.h x86, mm: Fix node_possible_map logic 2009-05-18 09:21:04 +02:00
numa.h
numaq.h x86, numaq: cleanups 2009-02-05 22:30:14 +01:00
olpc.h
page_32_types.h x86: page_types.h unification of declarations 2009-04-14 11:44:45 +02:00
page_32.h x86 headers: protect page_32.h via __ASSEMBLY__ 2009-02-13 13:36:47 +01:00
page_64_types.h x86, 64-bit: Clean up user address masking 2009-06-20 15:40:00 -07:00
page_64.h x86: create _types.h counterparts for page*.h 2009-02-11 14:54:09 -08:00
page_types.h x86: page_types.h unification of declarations 2009-04-14 11:44:45 +02:00
page.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
param.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
paravirt_types.h x86/paravirt: Use normal calling sequences for irq enable/disable 2009-10-13 09:22:01 +02:00
paravirt.h x86/paravirt: Use normal calling sequences for irq enable/disable 2009-10-13 09:22:01 +02:00
parport.h
pat.h x86, pat: New i/f for driver to request memtype for IO regions 2009-08-26 15:41:10 -07:00
pci_64.h x86/dma: unify definition of pci_unmap_addr* and pci_unmap_len macros 2009-04-03 13:13:45 +02:00
pci_x86.h Revert "PCI: use ACPI _CRS data by default" 2009-06-24 16:23:03 -07:00
pci-direct.h
pci-functions.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
pci.h x86/PCI: default pcibus cpumask to all cpus if it lacks affinity 2009-09-18 08:51:10 -07:00
percpu.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
perf_event.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
pgalloc.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgtable_32_types.h module: merge module_alloc() finally 2009-06-12 21:47:03 +09:30
pgtable_32.h x86: Add NMI types for kmap_atomic, fix 2009-06-15 17:20:03 +02:00
pgtable_64_types.h x86: 46 bit physical address support on 64 bits 2009-05-05 19:10:18 -07:00
pgtable_64.h x86, 64-bit: Clean up user address masking 2009-06-20 15:40:00 -07:00
pgtable_types.h Merge branch 'bugfix' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen into x86/urgent 2009-09-23 14:35:10 +02:00
pgtable-2level_types.h x86: move more pagetable-related definitions into pgtable*.h 2009-02-13 11:35:01 -08:00
pgtable-2level.h x86: with the last user gone, remove set_pte_present 2009-03-19 14:04:19 +01:00
pgtable-3level_types.h x86: move more pagetable-related definitions into pgtable*.h 2009-02-13 11:35:01 -08:00
pgtable-3level.h x86: with the last user gone, remove set_pte_present 2009-03-19 14:04:19 +01:00
pgtable.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
prctl.h headers_check fix: x86, prctl.h 2009-02-02 23:27:09 +05:30
processor-cyrix.h
processor-flags.h
processor.h x86, fs: Fix x86 procfs stack information for threads on 64-bit 2009-11-04 13:25:03 +01:00
proto.h x86: fix power-of-2 round_up/round_down macros 2009-07-02 12:05:10 -07:00
ptrace-abi.h x86, ptrace: remove CONFIG guards around declarations 2009-02-24 18:23:35 +01:00
ptrace.h Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 19:53:40 -07:00
pvclock-abi.h
pvclock.h
rdc321x_defs.h x86, rdc321x: remove/move leftover files 2009-01-18 19:39:18 +01:00
reboot_fixups.h
reboot.h
required-features.h x86-64: remove PGE from must-have feature list 2009-04-08 11:51:46 -07:00
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h
scatterlist.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
seccomp_32.h x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
seccomp_64.h x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
seccomp.h
sections.h x86: add brk allocation for very, very early allocations 2009-03-14 15:37:14 -07:00
segment.h x86: implement x86_32 stack protector 2009-02-10 00:42:01 +01:00
sembuf.h
serial.h
setup_arch.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
setup.h x86: Add Moorestown early detection 2009-08-31 11:09:40 +02:00
shmbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
shmparam.h
sigcontext32.h headers_check fix: x86, sigcontext32.h 2009-01-31 00:18:58 +05:30
sigcontext.h x86: add linux kernel support for YMM state 2009-04-12 13:08:56 +02:00
sigframe.h
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp.h cpumask: remove arch_send_call_function_ipi 2009-09-24 09:34:47 +09:30
smpboot_hooks.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
socket.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sockios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sparsemem.h x86: 46 bit physical address support on 64 bits 2009-05-05 19:10:18 -07:00
spinlock_types.h
spinlock.h memory barrier: adding smp_mb__after_lock 2009-07-09 17:06:58 -07:00
srat.h
stackprotector.h x86/i386: Make sure stack-protector segment base is cache aligned 2009-09-03 21:30:51 +02:00
stacktrace.h perf_counter: Ignore the nmi call frames in the x86-64 backtraces 2009-07-01 22:37:23 +02:00
stat.h
statfs.h
string_32.h x86: Trivial whitespace cleanups 2009-09-20 20:18:57 +02:00
string_64.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
string.h
suspend_32.h pm: cleanup includes 2009-04-01 08:59:16 -07:00
suspend_64.h
suspend.h
svm.h KVM: Fix unneeded instruction skipping during task switching. 2009-06-10 11:48:38 +03:00
swab.h headers_check fix: x86, swab.h 2009-01-31 00:19:32 +05:30
swiotlb.h swiotlb: replace architecture-specific swiotlb.h with linux/swiotlb.h 2008-12-28 10:04:00 +01:00
sync_bitops.h
sys_ia32.h generic compat_sys_ustat 2009-03-27 14:43:57 -04:00
syscall.h x86: syscall_get_nr returns int 2009-09-22 19:57:51 -07:00
syscalls.h x86: clean up declarations and variables 2009-04-12 15:20:16 +02:00
system_64.h
system.h x86/i386: Make sure stack-protector segment base is cache aligned 2009-09-03 21:30:51 +02:00
tce.h
termbits.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
termios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
thread_info.h core, x86: Add user return notifiers 2009-10-01 12:12:18 -07:00
time.h x86: Move get/set_wallclock to x86_platform_ops 2009-09-16 14:34:50 +02:00
timer.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
timex.h time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
tlb.h
tlbflush.h x86: make zap_low_mapping could be used early 2009-06-12 13:50:24 +03:00
topology.h sched: Disable SD_PREFER_LOCAL at node level 2009-11-03 07:24:07 +01:00
trampoline.h x86: load pointer to pda into %gs while brining up a CPU 2009-01-16 14:19:26 +01:00
traps.h x86: Remove unused patch_espfix_desc() 2009-07-19 18:27:52 +02:00
tsc.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
types.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
uaccess_32.h x86: Fix uaccess_32.h typo 2009-09-20 20:19:34 +02:00
uaccess_64.h x86: Fix movq immediate operand constraints in uaccess_64.h 2009-07-20 20:46:17 -07:00
uaccess.h x86: Fix movq immediate operand constraints in uaccess.h 2009-07-20 23:27:39 -07:00
ucontext.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
unaligned.h
unistd_32.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
unistd_64.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
unistd.h
user32.h
user_32.h
user_64.h
user.h
vdso.h
vga.h
vgtod.h time: Introduce CLOCK_REALTIME_COARSE 2009-08-21 21:43:46 +02:00
virtext.h KVM: SVM: Move EFER and MSR constants to generic x86 code 2009-03-24 11:02:46 +02:00
vm86.h
vmi_time.h
vmi.h
vmware.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
vmx.h KVM: VMX: more MSR_IA32_VMX_EPT_VPID_CAP capability bits 2009-09-10 08:32:55 +03:00
vsyscall.h
x86_init.h x86: Move get/set_wallclock to x86_platform_ops 2009-09-16 14:34:50 +02:00
xcr.h
xor_32.h
xor_64.h
xor.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
xsave.h x86: add linux kernel support for YMM state 2009-04-12 13:08:56 +02:00