linux/arch/s390
Vitaly Kuznetsov 557a961abb KVM: x86: acknowledgment mechanism for async pf page ready notifications
If two page ready notifications happen back to back the second one is not
delivered and the only mechanism we currently have is
kvm_check_async_pf_completion() check in vcpu_run() loop. The check will
only be performed with the next vmexit when it happens and in some cases
it may take a while. With interrupt based page ready notification delivery
the situation is even worse: unlike exceptions, interrupts are not handled
immediately so we must check if the slot is empty. This is slow and
unnecessary. Introduce dedicated MSR_KVM_ASYNC_PF_ACK MSR to communicate
the fact that the slot is free and host should check its notification
queue. Mandate using it for interrupt based 'page ready' APF event
delivery.

As kvm_check_async_pf_completion() is going away from vcpu_run() we need
a way to communicate the fact that vcpu->async_pf.done queue has
transitioned from empty to non-empty state. Introduce
kvm_arch_async_page_present_queued() and KVM_REQ_APF_READY to do the job.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20200525144125.143875-7-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-06-01 04:26:08 -04:00
..
appldata s390: Replace zero-length array with flexible-array member 2020-02-27 16:02:21 +01:00
boot s390/protvirt: fix compilation issue 2020-04-25 10:17:24 +02:00
configs s390 updates for the 5.7 merge window 2020-04-04 09:45:50 -07:00
crypto s390/crypto: explicitly memzero stack key material in aes_s390.c 2020-02-27 16:02:21 +01:00
hypfs fs_parse: fold fs_parameter_desc/fs_parameter_spec 2020-02-07 14:48:37 -05:00
include KVM: x86: acknowledgment mechanism for async pf page ready notifications 2020-06-01 04:26:08 -04:00
kernel s390/protvirt: fix compilation issue 2020-04-25 10:17:24 +02:00
kvm KVM: rename kvm_arch_can_inject_async_page_present() to kvm_arch_can_dequeue_async_page_present() 2020-06-01 04:26:07 -04:00
lib s390/mm: fix page table upgrade vs 2ndary address mode accesses 2020-04-21 15:16:43 +02:00
mm KVM: s390: Cleanups for 5.8 2020-05-27 13:10:21 -04:00
net s390/bpf: Remove JITed image size limitations 2019-11-18 19:51:16 -08:00
numa s390/mm: remove fake numa support 2020-02-27 16:02:21 +01:00
oprofile s390/unwind: introduce stack unwind API 2019-05-02 13:54:11 +02:00
pci s390/pci: do not set affinity for floating irqs 2020-04-22 16:20:55 +02:00
purgatory .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
scripts s390/build: use size command to perform empty .bss check 2019-08-08 14:36:53 +02:00
tools .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
Kbuild
Kconfig s390 updates for the 5.7 merge window 2020-04-04 09:45:50 -07:00
Kconfig.debug
Makefile s390: make 'install' not depend on vmlinux 2020-02-17 18:01:58 +01:00