From: Paul Mackerras <paulus@samba.org>
To: Alexander Graf <agraf@suse.de>
Cc: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org,
"Michael S. Tsirkin" <mst@redhat.com>,
Eric Auger <eric.auger@linaro.org>
Subject: Re: [PATCH 0/6] IRQFD without IRQ routing, enabled for XICS
Date: Tue, 1 Jul 2014 07:25:31 +1000 [thread overview]
Message-ID: <20140630212531.GA20819@iris.ozlabs.ibm.com> (raw)
In-Reply-To: <53B15B8C.5020909@suse.de>
On Mon, Jun 30, 2014 at 02:43:56PM +0200, Alexander Graf wrote:
>
> On 30.06.14 12:51, Paul Mackerras wrote:
> >This series of patches provides a way to implement IRQFD support
> >without having to implement IRQ routing, and adds IRQFD support for
> >the XICS interrupt controller emulation. (XICS is the interrupt
> >controller defined for the pSeries machine type, used on IBM POWER
> >servers).
> >
> >The basic approach is to make it easy for code other than irqchip.c to
> >provide a mapping from a global interrupt number (GSI) to an irq
> >routing entry (struct kvm_kernel_irq_routing_entry). To make the
> >lifetime of this routing entry easier to manage, we change the IRQFD
> >code to keep a copy of the routing entry (for the MSI fast-path case)
> >rather than a pointer to the routing entry. Since the copy can't be
> >updated atomically, we add a seqcount_t to make sure that when reading
> >it we get a copy that hasn't been half-way updated.
> >
> >Next we replace the hard-coded accesses outside irqchip.c to the
> >fields of the kvm_irq_routing_table struct with calls to accessor
> >functions in irqchip.c, namely kvm_irq_map_gsi() and
> >kvm_irq_map_chip_pin(). That enables us to move all references to the
> >kvm_irq_routing_table struct, and the definition of that struct, into
> >irqchip.c.
> >
> >Then we move the irq notifier implementation from irqchip.c into
> >eventfd.c and add a separate Kconfig option to enable IRQFD. With
> >that we can enable IRQFD without irq routing, which we achieve by
> >compiling in eventfd.c but not irqchip.c, and providing an alternative
> >implementation of kvm_irq_map_gsi() and kvm_irq_map_chip_pin().
> >
> >The last patch does that for XICS. With this series I can use
> >vhost-net with KVM guests, and I see the TCP bandwidth between guest
> >and host on a POWER8 machine go from around 700MB/s to over 2GB/s.
> >
> >I would like to see this go into 3.17.
>
> I think this approach is good enough for XICS, as it has a 100% flat number
> space. I'm not yet fully convinced how well this would work out with the
> GIC, but I know that one too little to make claims.
>
> The only thing I disliked about this patch set is that it adds another piece
> of code that makes MPIC/XICS exclusive options. But I don't think that'd be
> hard to solve if we start caring.
I agree. They were already exclusive, of course, and I just followed
that pattern. I don't think I made it any harder to change that.
The other thing this patch set does is make it a lot easier to change
the data structures used by the IRQ routing implementation, for
example to use idr structs rather than flat arrays, if we want to,
or to implement range routing entries.
> Overall, nice work.
Thanks.
Paul.
next prev parent reply other threads:[~2014-06-30 21:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-30 10:51 [PATCH 0/6] IRQFD without IRQ routing, enabled for XICS Paul Mackerras
2014-06-30 10:51 ` [PATCH 1/6] KVM: Don't keep reference to irq routing table in irqfd struct Paul Mackerras
2014-06-30 10:51 ` [PATCH 2/6] KVM: irqchip: Provide and use accessors for irq routing table Paul Mackerras
2014-06-30 10:51 ` [PATCH 3/6] KVM: Move all accesses to kvm::irq_routing into irqchip.c Paul Mackerras
2014-06-30 10:51 ` [PATCH 4/6] KVM: Move irq notifier implementation into eventfd.c Paul Mackerras
2014-06-30 10:51 ` [PATCH 5/6] KVM: Give IRQFD its own separate enabling Kconfig option Paul Mackerras
2014-06-30 10:51 ` [PATCH 6/6] KVM: PPC: Enable IRQFD support for the XICS interrupt controller Paul Mackerras
2014-06-30 12:43 ` [PATCH 0/6] IRQFD without IRQ routing, enabled for XICS Alexander Graf
2014-06-30 21:25 ` Paul Mackerras [this message]
2014-07-13 22:30 ` Paul Mackerras
2014-07-14 14:18 ` Cornelia Huck
2014-07-24 15:47 ` Eric Auger
2014-08-05 12:27 ` Paolo Bonzini
2014-08-06 12:35 ` Paolo Bonzini
2014-08-07 9:49 ` Paul Mackerras
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=20140630212531.GA20819@iris.ozlabs.ibm.com \
--to=paulus@samba.org \
--cc=agraf@suse.de \
--cc=eric.auger@linaro.org \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox