From: Alex Williamson <alex.williamson@redhat.com>
To: Avi Kivity <avi.kivity@gmail.com>
Cc: "Wu, Feng" <feng.wu@intel.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"pbonzini@redhat.com" <pbonzini@redhat.com>,
"mtosatti@redhat.com" <mtosatti@redhat.com>,
"eric.auger@linaro.org" <eric.auger@linaro.org>
Subject: Re: [v4 08/16] KVM: kvm-vfio: User API for IRQ forwarding
Date: Fri, 12 Jun 2015 13:03:35 -0600 [thread overview]
Message-ID: <1434135815.4927.308.camel@redhat.com> (raw)
In-Reply-To: <557B2994.1070900@gmail.com>
On Fri, 2015-06-12 at 21:48 +0300, Avi Kivity wrote:
> On 06/12/2015 06:41 PM, Alex Williamson wrote:
> > On Fri, 2015-06-12 at 00:23 +0000, Wu, Feng wrote:
> >>> -----Original Message-----
> >>> From: Avi Kivity [mailto:avi.kivity@gmail.com]
> >>> Sent: Friday, June 12, 2015 3:59 AM
> >>> To: Wu, Feng; kvm@vger.kernel.org; linux-kernel@vger.kernel.org
> >>> Cc: pbonzini@redhat.com; mtosatti@redhat.com;
> >>> alex.williamson@redhat.com; eric.auger@linaro.org
> >>> Subject: Re: [v4 08/16] KVM: kvm-vfio: User API for IRQ forwarding
> >>>
> >>> On 06/11/2015 01:51 PM, Feng Wu wrote:
> >>>> From: Eric Auger <eric.auger@linaro.org>
> >>>>
> >>>> This patch adds and documents a new KVM_DEV_VFIO_DEVICE group
> >>>> and 2 device attributes: KVM_DEV_VFIO_DEVICE_FORWARD_IRQ,
> >>>> KVM_DEV_VFIO_DEVICE_UNFORWARD_IRQ. The purpose is to be able
> >>>> to set a VFIO device IRQ as forwarded or not forwarded.
> >>>> the command takes as argument a handle to a new struct named
> >>>> kvm_vfio_dev_irq.
> >>> Is there no way to do this automatically? After all, vfio knows that a
> >>> device interrupt is forwarded to some eventfd, and kvm knows that some
> >>> eventfd is forwarded to a guest interrupt. If they compare notes
> >>> through a central registry, they can figure out that the interrupt needs
> >>> to be forwarded.
> >> Oh, just like Eric mentioned in his reply, this description is out of context of
> >> this series, I will remove them in the next version.
> >
> > I suspect Avi's question was more general. While forward/unforward is
> > out of context for this series, it's very similar in nature to
> > enabling/disabling posted interrupts. So I think the question remains
> > whether we really need userspace to participate in creating this
> > shortcut or if kvm and vfio can some how orchestrate figuring it out
> > automatically.
> >
> > Personally I don't know how we could do it automatically. We've always
> > relied on userspace to independently setup vfio and kvm such that
> > neither have any idea that the other is there and update each side
> > independently when anything changes. So it seems consistent to continue
> > that here. It doesn't seem like there's much to gain performance-wise
> > either, updates should be a relatively rare event I'd expect.
> >
> > There's really no metadata associated with an eventfd, so "comparing
> > notes" automatically might imply some central registration entity. That
> > immediately sounds like a much more complex solution, but maybe Avi has
> > some ideas to manage it. Thanks,
> >
>
> The idea is to have a central registry maintained by a posted interrupts
> manager. Both vfio and kvm pass the filp (along with extra information)
> to the posted interrupts manager, which, when it detects a filp match,
> tells each of them what to do.
>
> The advantages are:
> - old userspace gains the optimization without change
> - a userspace API is more expensive to maintain than internal kernel
> interfaces (CVEs, documentation, maintaining backwards compatibility)
> - if you can do it without a new interface, this indicates that all the
> information in the new interface is redundant. That means you have to
> check it for consistency with the existing information, so it's extra
> work (likely, it's exactly what the posted interrupt manager would be
> doing anyway).
Yep, those all sound like good things and I believe that's similar in
design to the way we had originally discussed this interaction at
LPC/KVM Forum several years ago. I'd be in favor of that approach.
Thanks,
Alex
next prev parent reply other threads:[~2015-06-12 19:03 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 10:51 [v4 00/16] Add VT-d Posted-Interrupts support Feng Wu
2015-06-11 10:51 ` [v4 01/16] KVM: Extend struct pi_desc for VT-d Posted-Interrupts Feng Wu
2015-06-23 15:49 ` Paolo Bonzini
2015-06-24 5:42 ` Wu, Feng
2015-06-24 8:46 ` Paolo Bonzini
2015-06-11 10:51 ` [v4 02/16] KVM: Add some helper functions for Posted-Interrupts Feng Wu
2015-06-11 10:51 ` [v4 03/16] KVM: Define a new interface kvm_intr_is_single_vcpu() Feng Wu
2015-06-11 10:51 ` [v4 04/16] KVM: Get Posted-Interrupts descriptor address from struct kvm_vcpu Feng Wu
2015-06-11 10:51 ` [v4 05/16] KVM: Add interfaces to control PI outside vmx Feng Wu
2015-06-11 10:51 ` [v4 06/16] KVM: Make struct kvm_irq_routing_table accessible Feng Wu
2015-06-11 10:51 ` [v4 07/16] KVM: make kvm_set_msi_irq() public Feng Wu
2015-06-11 10:51 ` [v4 08/16] KVM: kvm-vfio: User API for IRQ forwarding Feng Wu
2015-06-11 13:37 ` Eric Auger
2015-06-12 0:20 ` Wu, Feng
2015-06-11 19:59 ` Avi Kivity
2015-06-12 0:23 ` Wu, Feng
2015-06-12 15:41 ` Alex Williamson
2015-06-12 18:48 ` Avi Kivity
2015-06-12 19:03 ` Alex Williamson [this message]
2015-06-15 6:42 ` Wu, Feng
2015-06-15 16:17 ` Eric Auger
2015-06-15 16:45 ` Alex Williamson
2015-06-18 9:16 ` Wu, Feng
2015-06-18 20:04 ` Alex Williamson
2015-06-24 15:46 ` Joerg Roedel
2015-06-25 1:54 ` Wu, Feng
2015-06-25 9:37 ` Wu, Feng
2015-06-25 15:11 ` Alex Williamson
2015-06-29 9:06 ` Joerg Roedel
2015-06-29 9:14 ` Wu, Feng
2015-06-29 9:22 ` Joerg Roedel
2015-06-29 13:01 ` Wu, Feng
2015-06-29 13:27 ` Wu, Feng
2015-06-29 15:18 ` Alex Williamson
2015-06-24 15:50 ` Joerg Roedel
2015-06-24 16:25 ` Eric Auger
2015-06-24 19:49 ` Alex Williamson
2015-06-25 1:57 ` Wu, Feng
2015-06-11 10:51 ` [v4 09/16] VFIO: external user API for interaction Feng Wu
2015-06-11 10:51 ` [v4 10/16] KVM: kvm-vfio: wrappers to VFIO external API device helpers Feng Wu
2015-06-11 10:51 ` [v4 11/16] KVM: kvm-vfio: User API for VT-d Posted-Interrupts Feng Wu
2015-06-11 10:51 ` [v4 12/16] KVM: kvm-vfio: implement the VFIO skeleton " Feng Wu
2015-06-11 17:15 ` Alex Williamson
2015-06-12 4:54 ` Wu, Feng
2015-06-12 14:51 ` Alex Williamson
2015-06-23 16:00 ` Paolo Bonzini
2015-06-11 10:51 ` [v4 13/16] KVM: x86: kvm-vfio: VT-d posted-interrupts setup Feng Wu
2015-06-11 17:16 ` Alex Williamson
2015-06-12 4:58 ` Wu, Feng
2015-06-11 10:51 ` [v4 14/16] KVM: Update Posted-Interrupts Descriptor when vCPU is preempted Feng Wu
2015-06-11 10:51 ` [v4 15/16] KVM: Update Posted-Interrupts Descriptor when vCPU is blocked Feng Wu
2015-06-23 16:05 ` Paolo Bonzini
2015-06-11 10:51 ` [v4 16/16] KVM: Warn if 'SN' is set during posting interrupts by software Feng Wu
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=1434135815.4927.308.camel@redhat.com \
--to=alex.williamson@redhat.com \
--cc=avi.kivity@gmail.com \
--cc=eric.auger@linaro.org \
--cc=feng.wu@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=pbonzini@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox