kernel-fxtec-pro1x/arch/x86/include/asm
Glauber Costa c9aaa8957f KVM: Steal time implementation
To implement steal time, we need the hypervisor to pass the guest
information about how much time was spent running other processes
outside the VM, while the vcpu had meaningful work to do - halt
time does not count.

This information is acquired through the run_delay field of
delayacct/schedstats infrastructure, that counts time spent in a
runqueue but not running.

Steal time is a per-cpu information, so the traditional MSR-based
infrastructure is used. A new msr, KVM_MSR_STEAL_TIME, holds the
memory area address containing information about steal time

This patch contains the hypervisor part of the steal time infrasructure,
and can be backported independently of the guest portion.

[avi, yongjie: export delayacct_on, to avoid build failures in some configs]

Signed-off-by: Glauber Costa <glommer@redhat.com>
Tested-by: Eric B Munson <emunson@mgebm.net>
CC: Rik van Riel <riel@redhat.com>
CC: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
CC: Peter Zijlstra <peterz@infradead.org>
CC: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Yongjie Ren <yongjie.ren@intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-07-14 12:59:14 +03:00
..
uv x86, UV: Clean up uv_tlb.c 2011-05-25 14:20:14 +02:00
visws
xen Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem 2011-05-26 10:50:56 -07:00
a.out-core.h
a.out.h
acpi.h Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2011-05-29 11:18:09 -07:00
aes.h
agp.h
alternative-asm.h x86, alternative: Add altinstruction_entry macro 2011-05-17 15:40:25 -07:00
alternative.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 17:55:12 -07:00
amd_iommu.h Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:23:48 -07:00
amd_iommu_proto.h x86/amd-iommu: Use threaded interupt handler 2011-05-10 11:07:58 +02:00
amd_iommu_types.h Merge branches 'dma-debug/next', 'amd-iommu/command-cleanups', 'amd-iommu/ats' and 'amd-iommu/extended-features' into iommu/2.6.40 2011-05-10 10:25:23 +02:00
amd_nb.h x86, NUMA: trivial cleanups 2011-05-02 14:18:52 +02:00
apb_timer.h watchdog: Intel SCU Watchdog: Fix build and remove duplicate code 2011-06-28 07:42:50 +00:00
apic.h x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
apicdef.h x86, apic: Fix spurious error interrupts triggering on all non-boot APs 2011-05-16 13:48:25 +02:00
apm.h
arch_hweight.h
asm-offsets.h
asm.h
atomic.h
atomic64_32.h
atomic64_64.h
auxvec.h
bios_ebda.h x86: Better comments for get_bios_ebda() 2011-04-29 14:13:15 -07:00
bitops.h bitops: remove minix bitops from asm/bitops.h 2011-03-23 19:46:22 -07:00
bitsperlong.h
boot.h x86: support XZ-compressed kernel 2011-01-13 08:03:25 -08:00
bootparam.h x86: Add device tree support 2011-02-23 22:27:52 +01:00
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
calgary.h x86, iommu: Make all IOMMU's detection routines return a value. 2010-08-26 15:13:13 -07:00
calling.h x86, asm: Fix CFI macro invocations to deal with shortcomings in gas 2010-10-19 14:28:02 -07:00
ce4100.h x86: ce4100: Set pci ops via callback instead of module init 2011-03-14 15:13:23 +01:00
checksum.h
checksum_32.h
checksum_64.h
cmpxchg.h
cmpxchg_32.h x86, asm: Merge cmpxchg_486_u64() and cmpxchg8b_emu() 2010-07-28 17:05:11 -07:00
cmpxchg_64.h x86, asm: Clean up and simplify <asm/cmpxchg.h> 2010-07-28 15:24:09 -07:00
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
cpu.h x86: Fix mwait_usable section mismatch 2011-02-14 12:08:28 +01:00
cpufeature.h x86, cpufeature: Update CPU feature RDRND to RDRAND 2011-05-24 16:37:27 -07:00
cpumask.h
cputime.h
current.h
debugreg.h x86: Use this_cpu_ops to optimize code 2010-12-30 12:20:28 +01:00
delay.h
desc.h x86, asm: Clean up desc.h a bit 2011-05-27 09:30:50 +02:00
desc_defs.h
device.h
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h x86, NUMA: Enable emulation on 32bit too 2011-05-02 17:24:48 +02:00
dmi.h
dwarf2.h x86: Use {push,pop}{l,q}_cfi in more places 2010-09-03 08:14:11 +02:00
e820.h x86: e820: Remove conditional early mapping in parse_e820_ext 2011-02-23 22:27:52 +01:00
edac.h
efi.h x86, efi: Consolidate EFI nx control 2011-05-09 12:14:29 -07:00
elf.h
emergency-restart.h
entry_arch.h x86: Allocate 32 tlb_invalidate_interrupt handler stubs 2011-02-14 13:03:08 +01:00
errno.h
fb.h
fcntl.h
fixmap.h x86: Fix Moorestown VRTC fixmap placement 2011-01-11 12:46:16 +01:00
floppy.h
frame.h x86: Use {push,pop}_cfi in more places 2011-02-28 18:06:22 +01:00
ftrace.h ftrace/x86: mcount offset calculation 2011-05-16 14:55:57 -04:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
gart.h x86, gart: Set DISTLBWALKPRB bit always 2011-04-18 09:26:48 -07:00
genapic.h
geode.h
gpio.h x86/gpio: Implement x86 gpio_to_irq convert function 2011-01-11 12:46:15 +01:00
hardirq.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
highmem.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
hpet.h x86: ioapic/hpet: Convert to new chip functions 2010-10-12 16:53:37 +02:00
hugetlb.h
hw_breakpoint.h x86: Fix instruction breakpoint encoding 2010-09-17 03:24:13 +02:00
hw_irq.h x86: Allocate 32 tlb_invalidate_interrupt handler stubs 2011-02-14 13:03:08 +01:00
hypertransport.h
hyperv.h
hypervisor.h xen: HVM X2APIC support 2011-01-07 10:03:50 -05:00
i387.h x86-32, fpu: Fix FPU exception handling on non-SSE systems 2011-04-06 16:53:01 -07:00
i8253.h clocksource: convert x86 to generic i8253 clocksource 2011-05-14 10:29:48 +01:00
i8259.h x86: i8259: Convert to new irq_chip functions 2010-10-12 16:53:36 +02:00
ia32.h
ia32_unistd.h
idle.h x86 idle: clarify AMD erratum 400 workaround 2011-05-29 03:38:57 -04:00
inat.h
inat_types.h
init.h x86: Rename e820_table_* to pgt_buf_* 2011-02-24 14:52:18 +01:00
insn.h
inst.h
intel_scu_ipc.h Remove indirect read write api support. 2010-08-03 09:50:30 -04:00
io.h x86: remove 32-bit versions of readq()/writeq() 2011-05-25 08:39:44 -07:00
io_apic.h x86, ioapic: Consolidate gsi routing info into 'struct ioapic' 2011-05-20 13:41:01 +02:00
ioctl.h
ioctls.h
iomap.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
iommu.h
iommu_table.h x86, iommu: Update header comments with appropriate naming 2010-10-08 13:11:21 -07:00
ipcbuf.h
ipi.h x86: Make default_send_IPI_mask_sequence/allbutself_logical() 32bit only 2011-01-28 14:54:05 +01:00
irq.h x86: Add device tree support 2011-02-23 22:27:52 +01:00
irq_controller.h x86: dtb: Add irq domain abstraction 2011-02-23 22:27:53 +01:00
irq_regs.h
irq_remapping.h x86: Speed up the irq_remapped check in hot pathes 2010-10-12 16:53:42 +02:00
irq_vectors.h x86: Work around old gas bug 2011-03-03 12:47:08 +01:00
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
ist.h
jump_label.h jump label: Add _ASM_ALIGN for x86 and x86_64 2011-04-04 13:42:51 -04:00
Kbuild archs: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kdebug.h x86, dumpstack: Correct stack dump info when frame pointer is available 2011-03-18 10:51:42 +01:00
kexec.h
kgdb.h kgdbts: unify/generalize gdb breakpoint adjustment 2011-05-26 17:12:36 -07:00
kmap_types.h
kmemcheck.h
kprobes.h
kvm.h KVM: x86: XSAVE/XRSTOR live migration support 2010-08-01 10:46:37 +03:00
kvm_emulate.h KVM: x86 emulator: fold decode_cache into x86_emulate_ctxt 2011-07-12 13:16:09 +03:00
kvm_host.h KVM: Steal time implementation 2011-07-14 12:59:14 +03:00
kvm_para.h KVM: Steal time implementation 2011-07-14 12:59:14 +03:00
ldt.h
lguest.h
lguest_hcall.h
linkage.h x86: Get rid of asmregparm 2011-05-24 14:33:35 +02:00
local.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
mach_timer.h
mach_traps.h x86, NMI: Add NMI symbol constants and rename memory parity to PCI SERR 2011-01-07 15:08:51 +01:00
math_emu.h
mc146818rtc.h
mca.h
mca_dma.h
mce.h x86, mce: Drop the default decoding notifier 2011-04-21 11:35:10 +02:00
memblock.h x86, efi: Do not reserve boot services regions within reserved areas 2011-06-18 22:48:49 +02:00
microcode.h x86, microcode, AMD: Cleanup code a bit 2010-11-10 14:54:54 +01:00
mman.h
mmconfig.h
mmu.h x86: Reorder mm_context_t to remove x86_64 alignment padding and thus shrink mm_struct 2011-05-25 16:16:41 +02:00
mmu_context.h x86, mm: avoid possible bogus tlb entries by clearing prev mm_cpumask after switching mm 2011-02-03 13:32:39 -08:00
mmx.h
mmzone.h
mmzone_32.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
mmzone_64.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
module.h x86, cpu: Move AMD Elan Kconfig under "Processor family" 2011-04-08 13:01:25 -07:00
mpspec.h x86: Unify cpu/apicid <-> NUMA node mapping between 32 and 64bit 2011-01-28 14:54:09 +01:00
mpspec_def.h x86: Fix APIC ID sizing bug on larger systems, clean up MAX_APICS confusion 2011-01-05 14:09:23 +01:00
mrst-vrtc.h x86: mrst: Add vrtc driver which serves as a wall clock device 2010-11-11 11:34:27 +01:00
mrst.h x86: mrst: Add vrtc driver which serves as a wall clock device 2010-11-11 11:34:27 +01:00
msgbuf.h
mshyperv.h
msidef.h
msr-index.h KVM: nVMX: Implement reading and writing of VMX MSRs 2011-07-12 11:45:11 +03:00
msr.h x86, gcc-4.6: Avoid unused by set variables in rdmsr 2010-07-20 15:38:18 -07:00
mtrr.h
mutex.h
mutex_32.h
mutex_64.h
mwait.h x86, mwait: Move mwait constants to a common header file 2010-09-17 15:36:40 -07:00
nmi.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
nops.h x86, cpu: Clean up and unify the NOP selection infrastructure 2011-04-18 16:40:21 -07:00
numa.h x86, NUMA: Make numa_init_array() static 2011-05-02 17:24:48 +02:00
numa_32.h x86, NUMA: Move NUMA init logic from numa_64.c to numa.c 2011-05-02 14:18:53 +02:00
numa_64.h x86, NUMA: Move NUMA init logic from numa_64.c to numa.c 2011-05-02 14:18:53 +02:00
numaq.h x86-32, NUMA: Update numaq to use new NUMA init protocol 2011-05-02 14:18:53 +02:00
olpc.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
olpc_ofw.h x86, olpc: Use device tree for platform identification 2011-03-15 14:17:23 -07:00
page.h x86: Document __phys_reloc_hide() usage in __pa_symbol() 2010-08-11 08:43:49 +02:00
page_32.h
page_32_types.h x86: Remove CONFIG_4KSTACKS 2010-06-29 12:12:59 +02:00
page_64.h
page_64_types.h
page_types.h x86-64, NUMA: Revert NUMA affine page table allocation 2011-03-04 10:26:36 +01:00
param.h
paravirt.h thp: fix PARAVIRT x86 32bit noPAE 2011-01-26 10:49:57 +10:00
paravirt_types.h thp: add pmd paravirt ops 2011-01-13 17:32:39 -08:00
parport.h
pat.h
pci-direct.h
pci-functions.h
pci.h x86/PCI: Remove dma32_reserve_bootmem 2011-05-10 15:43:32 -07:00
pci_64.h
pci_x86.h x86/PCI: Clean up pci_cache_line_size 2010-10-18 10:49:30 -04:00
percpu.h Merge branch 'for-2.6.40' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2011-05-24 11:53:42 -07:00
perf_event.h perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
perf_event_p4.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
pgalloc.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
pgtable-2level.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable-2level_types.h
pgtable-3level.h x86: Flush TLB if PGD entry is changed in i386 PAE mode 2011-03-18 11:44:01 +01:00
pgtable-3level_types.h
pgtable.h thp: don't allow transparent hugepage support without PSE 2011-01-13 17:32:45 -08:00
pgtable_32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable_32_types.h x86: use __ASSEMBLY__ rather than __ASSEMBLER__ 2010-06-07 17:27:11 -07:00
pgtable_64.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable_64_types.h
pgtable_types.h x86,xen: introduce x86_init.mapping.pagetable_reserve 2011-05-12 13:05:04 -04:00
poll.h
posix_types.h
posix_types_32.h
posix_types_64.h
prctl.h
probe_roms.h x86: Introduce pci_map_biosrom() 2011-03-15 15:34:15 -07:00
processor-cyrix.h
processor-flags.h KVM: Remove RDWRGSFS bit from CR4_RESERVED_BITS 2011-07-12 13:16:22 +03:00
processor.h Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2011-05-29 11:18:09 -07:00
prom.h x86: dt: Cleanup local apic setup 2011-02-25 16:18:52 +01:00
proto.h
ptrace-abi.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
ptrace.h x86: convert to asm-generic ptrace.h 2011-05-26 17:12:36 -07:00
pvclock-abi.h
pvclock.h KVM: Fix register corruption in pvclock_scale_delta 2011-06-19 19:23:14 +03:00
reboot.h x86, reboot: Move the real-mode reboot code to an assembly file 2011-02-17 21:05:34 -08:00
reboot_fixups.h
required-features.h x86, cpu: Support the features flags in new CPUID leaf 7 2010-07-07 17:29:18 -07:00
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h rwsem: Move duplicate function prototypes to linux/rwsem.h 2011-01-27 12:30:39 +01:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h
seccomp_32.h
seccomp_64.h
sections.h
segment.h x86: Make the GDT_ENTRY() macro in <asm/segment.h> safe for assembly 2011-02-17 21:05:13 -08:00
sembuf.h
serial.h
setup.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 18:08:06 -07:00
setup_arch.h
shmbuf.h
shmparam.h
sigcontext.h
sigcontext32.h
sigframe.h
siginfo.h
signal.h
smp.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-03-15 19:49:10 -07:00
smpboot_hooks.h x86: Use u32 instead of long to set reset vector back to 0 2011-02-28 16:22:18 +01:00
socket.h
sockios.h
sparsemem.h
spinlock.h
spinlock_types.h
stackprotector.h
stacktrace.h x86: Remove warning and warning_symbol from struct stacktrace_ops 2011-05-12 15:31:28 +02:00
stat.h
statfs.h
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
suspend_64.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
svm.h KVM: SVM: copy instruction bytes from VMCB 2011-01-12 11:31:07 +02:00
swab.h
swiotlb.h x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. 2010-08-26 15:13:29 -07:00
sync_bitops.h
sys_ia32.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
syscall.h
syscalls.h Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
system.h x86: Demacro CONFIG_PARAVIRT cpu accessors 2011-04-24 13:20:36 +02:00
tce.h
termbits.h
termios.h
thread_info.h mm: NUMA aware alloc_thread_info_node() 2011-03-22 17:44:01 -07:00
time.h
timer.h x86, nmi_watchdog: Remove all stub function calls from old nmi_watchdog 2010-11-18 09:08:23 +01:00
timex.h
tlb.h
tlbflush.h x86-32, mm: Add an initial page table for core bootstrapping 2010-10-20 14:23:55 -07:00
topology.h x86, NUMA: Make 32bit use common NUMA init path 2011-05-02 17:24:48 +02:00
trampoline.h x86, trampoline: Use the unified trampoline setup for ACPI wakeup 2011-02-17 21:05:06 -08:00
traps.h KVM: Handle async PF in a guest. 2011-01-12 11:23:16 +02:00
tsc.h x86-64: Move vread_tsc into a new file with sensible options 2011-05-24 14:51:29 +02:00
types.h remove dma64_addr_t 2011-03-23 19:47:18 -07:00
uaccess.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
uaccess_32.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
uaccess_64.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
ucontext.h
unaligned.h
unistd.h
unistd_32.h ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
unistd_64.h ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
user.h
user32.h
user_32.h
user_64.h
vdso.h x86-64: Clean up vdso/kernel shared variables 2011-05-24 14:51:28 +02:00
vga.h
vgtod.h x86-64: Clean up vdso/kernel shared variables 2011-05-24 14:51:28 +02:00
virtext.h
vm86.h
vmx.h KVM: nVMX: vmcs12 checks on nested entry 2011-07-12 11:45:16 +03:00
vsyscall.h x86-64: Clean up vdso/kernel shared variables 2011-05-24 14:51:28 +02:00
vvar.h x86-64: Clean up vdso/kernel shared variables 2011-05-24 14:51:28 +02:00
x2apic.h x86, x2apic: Move the common bits to x2apic.h 2011-05-20 13:41:11 +02:00
x86_init.h x86,xen: introduce x86_init.mapping.pagetable_reserve 2011-05-12 13:05:04 -04:00
xcr.h
xor.h
xor_32.h
xor_64.h
xsave.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:25:13 -07:00