linux/arch
Andrey Smetanin d62caabb41 kvm/x86: per-vcpu apicv deactivation support
The decision on whether to use hardware APIC virtualization used to be
taken globally, based on the availability of the feature in the CPU
and the value of a module parameter.

However, under certain circumstances we want to control it on per-vcpu
basis.  In particular, when the userspace activates HyperV synthetic
interrupt controller (SynIC), APICv has to be disabled as it's
incompatible with SynIC auto-EOI behavior.

To achieve that, introduce 'apicv_active' flag on struct
kvm_vcpu_arch, and kvm_vcpu_deactivate_apicv() function to turn APICv
off.  The flag is initialized based on the module parameter and CPU
capability, and consulted whenever an APICv-specific action is
performed.

Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com>
Reviewed-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Gleb Natapov <gleb@kernel.org>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Roman Kagan <rkagan@virtuozzo.com>
CC: Denis V. Lunev <den@openvz.org>
CC: qemu-devel@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-11-25 17:24:21 +01:00
..
alpha mm: mlock: add mlock flags to enable VM_LOCKONFAULT usage 2015-11-05 19:34:48 -08:00
arc ARC fixes for 4.4-rc1 2015-11-14 09:09:37 -08:00
arm KVM: arm/arm64: Fix preemptible timer active state crazyness 2015-11-24 18:04:00 +01:00
arm64 arm64: kvm: report original PAR_EL1 upon panic 2015-11-24 18:20:58 +01:00
avr32 dmaengine updates for 4.4-rc1 2015-11-10 10:05:17 -08:00
blackfin Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2015-10-04 16:31:13 +01:00
c6x irqdomain: Use irq_domain_get_of_node() instead of direct field access 2015-10-13 19:01:23 +02:00
cris cris: Drop reference to get_cmos_time() 2015-11-02 20:03:05 +01:00
frv kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
h8300 h8300 update for v4.4 2015-11-12 15:26:39 -08:00
hexagon Linux 4.3-rc4 2015-10-06 17:10:28 +02:00
ia64 Power management and ACPI updates for v4.4-rc1 2015-11-04 18:10:13 -08:00
m32r Linux 4.3-rc4 2015-10-06 17:10:28 +02:00
m68k block: change ->make_request_fn() and users to return a queue cookie 2015-11-07 10:40:46 -07:00
metag Metag architecture changes for v4.4 2015-11-10 16:24:25 -08:00
microblaze kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
mips KVM/ARM Fixes for v4.4-rc3. 2015-11-24 19:34:40 +01:00
mn10300 Linux 4.3-rc4 2015-10-06 17:10:28 +02:00
nios2 nios2 update for v4.4-rc1 2015-11-09 16:36:10 -08:00
openrisc dma-mapping: consolidate dma_set_mask 2015-09-10 13:29:01 -07:00
parisc Merge branch 'parisc-4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2015-11-22 12:50:58 -08:00
powerpc powerpc: Wire up sys_mlock2() 2015-11-16 17:05:53 +11:00
s390 KVM/ARM Fixes for v4.4-rc3. 2015-11-24 19:34:40 +01:00
score Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2015-10-04 16:31:13 +01:00
sh Merge branch 'akpm' (patches from Andrew) 2015-11-07 14:32:45 -08:00
sparc sparc/sparc64: allocate sys_membarrier system call number 2015-11-09 15:11:24 -08:00
tile kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
um um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
unicore32 pwm: Changes for v4.4-rc1 2015-11-11 09:16:10 -08:00
x86 kvm/x86: per-vcpu apicv deactivation support 2015-11-25 17:24:21 +01:00
xtensa Merge branch 'for-4.4/io-poll' of git://git.kernel.dk/linux-block 2015-11-10 17:23:49 -08:00
.gitignore
Kconfig kexec: split kexec_load syscall from kexec core code 2015-09-10 13:29:01 -07:00