From: Paolo Bonzini <pbonzini@redhat.com>
To: Jason Wang <jasowang@redhat.com>,
gleb@kernel.org, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: mst@redhat.com, cornelia.huck@de.ibm.com
Subject: Re: [PATCH V6 6/6] kvm: add fast mmio capabilitiy
Date: Tue, 15 Sep 2015 17:07:55 +0200 [thread overview]
Message-ID: <55F8344B.50300@redhat.com> (raw)
In-Reply-To: <1442299319-5253-7-git-send-email-jasowang@redhat.com>
On 15/09/2015 08:41, Jason Wang wrote:
> +With KVM_CAP_FAST_MMIO, a zero length mmio eventfd is allowed for
> +kernel to ignore the length of guest write and get a possible faster
> +response. Note the speedup may only work on some specific
> +architectures and setups. Otherwise, it's as fast as wildcard mmio
> +eventfd.
I don't really like tying the capability to MMIO, especially since
zero length ioeventfd is already accepted for virtio-ccw.
What about the following?
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index 7a3cb48a644d..247944071cc8 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -1627,11 +1627,10 @@ to the registered address is equal to datamatch in struct kvm_ioeventfd.
For virtio-ccw devices, addr contains the subchannel id and datamatch the
virtqueue index.
-With KVM_CAP_FAST_MMIO, a zero length mmio eventfd is allowed for
-kernel to ignore the length of guest write and get a possible faster
-response. Note the speedup may only work on some specific
-architectures and setups. Otherwise, it's as fast as wildcard mmio
-eventfd.
+With KVM_CAP_IOEVENTFD_ANY_LENGTH, a zero length ioeventfd is allowed, and
+the kernel will ignore the length of guest write and get a faster vmexit.
+The speedup may only apply to specific architectures, but the ioeventfd will
+work anyway.
4.60 KVM_DIRTY_TLB
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index b4f6aeaf94a6..03f3618612aa 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -830,7 +830,7 @@ struct kvm_ppc_smmu_info {
#define KVM_CAP_GUEST_DEBUG_HW_BPS 119
#define KVM_CAP_GUEST_DEBUG_HW_WPS 120
#define KVM_CAP_SPLIT_IRQCHIP 121
-#define KVM_CAP_FAST_MMIO 122
+#define KVM_CAP_IOEVENTFD_ANY_LENGTH 122
#ifdef KVM_CAP_IRQ_ROUTING
diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c
index 79db45336e3a..1dc8c45d2270 100644
--- a/virt/kvm/eventfd.c
+++ b/virt/kvm/eventfd.c
@@ -914,9 +914,7 @@ kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
return -EINVAL;
/* ioeventfd with no length can't be combined with DATAMATCH */
- if (!args->len &&
- args->flags & (KVM_IOEVENTFD_FLAG_PIO |
- KVM_IOEVENTFD_FLAG_DATAMATCH))
+ if (!args->len && (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH))
return -EINVAL;
ret = kvm_assign_ioeventfd_idx(kvm, bus_idx, args);
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 0780d970d087..0b48aadedcee 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -2717,7 +2717,7 @@ static long kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg)
case KVM_CAP_IRQFD:
case KVM_CAP_IRQFD_RESAMPLE:
#endif
- case KVM_CAP_FAST_MMIO:
+ case KVM_CAP_IOEVENTFD_ANY_LENGTH:
case KVM_CAP_CHECK_EXTENSION_VM:
return 1;
#ifdef CONFIG_HAVE_KVM_IRQ_ROUTING
Paolo
next prev parent reply other threads:[~2015-09-15 15:07 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-15 6:41 [PATCH V6 0/6] Fast mmio eventfd fixes Jason Wang
2015-09-15 6:41 ` [PATCH V6 1/6] kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd Jason Wang
2015-09-15 7:05 ` Cornelia Huck
2015-09-15 6:41 ` [PATCH V6 2/6] kvm: factor out core eventfd assign/deassign logic Jason Wang
2015-09-15 7:07 ` Cornelia Huck
2015-09-15 6:41 ` [PATCH V6 3/6] kvm: fix double free for fast mmio eventfd Jason Wang
2015-09-15 7:13 ` Cornelia Huck
2015-09-15 6:41 ` [PATCH V6 4/6] kvm: fix zero length mmio searching Jason Wang
2015-09-15 7:52 ` Cornelia Huck
2015-09-15 6:41 ` [PATCH V6 5/6] kvm: add tracepoint for fast mmio Jason Wang
2015-09-15 6:41 ` [PATCH V6 6/6] kvm: add fast mmio capabilitiy Jason Wang
2015-09-15 15:07 ` Paolo Bonzini [this message]
2015-09-15 16:13 ` Cornelia Huck
2015-09-15 16:29 ` Paolo Bonzini
2015-09-15 16:44 ` Cornelia Huck
2015-09-15 16:47 ` Paolo Bonzini
2015-09-15 15:08 ` [PATCH V6 0/6] Fast mmio eventfd fixes Paolo Bonzini
2015-09-15 19:26 ` Michael S. Tsirkin
2015-09-16 8:11 ` Paolo Bonzini
2015-11-08 17:11 ` Michael S. Tsirkin
2015-11-09 4:35 ` Jason Wang
2015-11-09 20:19 ` Michael S. Tsirkin
2015-11-10 6:25 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55F8344B.50300@redhat.com \
--to=pbonzini@redhat.com \
--cc=cornelia.huck@de.ibm.com \
--cc=gleb@kernel.org \
--cc=jasowang@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.