linux_dsm_epyc7002/arch
Vitaly Kuznetsov 8644f771e0 x86/kvm/hyper-v: direct mode for synthetic timers
Turns out Hyper-V on KVM (as of 2016) will only use synthetic timers
if direct mode is available. With direct mode we notify the guest by
asserting APIC irq instead of sending a SynIC message.

The implementation uses existing vec_bitmap for letting lapic code
know that we're interested in the particular IRQ's EOI request. We assume
that the same APIC irq won't be used by the guest for both direct mode
stimer and as sint source (especially with AutoEOI semantics). It is
unclear how things should be handled if that's not true.

Direct mode is also somewhat less expensive; in my testing
stimer_send_msg() takes not less than 1500 cpu cycles and
stimer_notify_direct() can usually be done in 300-400. WS2016 without
Hyper-V, however, always sticks to non-direct version.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Reviewed-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2018-12-14 17:59:57 +01:00
..
alpha TTY/Serial fixes for 4.20-rc2 2018-11-10 13:32:14 -06:00
arc ARC: io.h: Implement reads{x}()/writes{x}() 2018-11-30 11:26:29 -08:00
arm Merge branch 'spectre' of git://git.armlinux.org.uk/~rmk/linux-arm 2018-12-06 16:45:36 -08:00
arm64 A few clk driver fixes this time: 2018-12-08 11:33:26 -08:00
c6x c6x changes for 4.20 2018-10-31 15:39:25 -07:00
csky csky: bugfix tlb_get_pgd error. 2018-12-03 10:49:11 +08:00
h8300 mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
hexagon mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
ia64 ia64: export node_distance function 2018-11-26 18:30:40 -08:00
m68k s390 updates for 4.20-rc2 2018-11-09 06:30:44 -06:00
microblaze microblaze: function_graph: Simplify with function_graph_enter() 2018-11-27 20:30:18 -05:00
mips kvm: introduce manual dirty log reprotect 2018-12-14 12:34:19 +01:00
nds32 nds32: function_graph: Simplify with function_graph_enter() 2018-11-27 20:30:43 -05:00
nios2 mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
openrisc mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
parisc Merge branch 'parisc-4.20-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2018-12-04 09:10:39 -08:00
powerpc kvm: make KVM_CAP_ENABLE_CAP_VM architecture agnostic 2018-12-14 12:34:18 +01:00
riscv While rewriting the function graph tracer, I discovered a design flaw that 2018-11-30 09:32:34 -08:00
s390 kvm: make KVM_CAP_ENABLE_CAP_VM architecture agnostic 2018-12-14 12:34:18 +01:00
sh sh/function_graph: Simplify with function_graph_enter() 2018-11-27 20:31:39 -05:00
sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2018-12-03 09:35:27 -08:00
um for-linus-20181109 2018-11-09 16:31:51 -06:00
unicore32 memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
x86 x86/kvm/hyper-v: direct mode for synthetic timers 2018-12-14 17:59:57 +01:00
xtensa xtensa: fix coprocessor part of ptrace_{get,set}xregs 2018-11-26 18:37:51 -08:00
.gitignore
Kconfig New gcc plugin: stackleak 2018-11-01 11:46:27 -07:00