From: Alex Williamson <alex.williamson@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Avi Kivity <avi@redhat.com>, Sheng Yang <sheng@linux.intel.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
kvm@vger.kernel.org
Subject: Re: [PATCH 0/8][v2] MSI-X mask emulation support for assigned device
Date: Wed, 20 Oct 2010 12:31:05 -0600 [thread overview]
Message-ID: <1287599465.3007.54.camel@x201> (raw)
In-Reply-To: <20101020155944.GA23185@redhat.com>
On Wed, 2010-10-20 at 17:59 +0200, Michael S. Tsirkin wrote:
> On Wed, Oct 20, 2010 at 05:54:20PM +0200, Avi Kivity wrote:
> > On 10/20/2010 05:38 PM, Alex Williamson wrote:
> > >> > We'll need to optimize interrupt injection and eoi via KVM,
> > >> > but it should only be a performance optimization, not a functional
> > >> > requirement.
> > >>
> > >> For level-triggered interrupts only, yes? MSI EOI does not involve any
> > >> device or interrupt controller visible action?
> > >
> > >Right, the EOI is for legacy interrupts only. Perhaps we don't care
> > >enough about performance of those to route it through KVM so long as we
> > >can co-exist with the KVM APIC.
> >
> > We will need a way to get the EOI out to userspace, then.
> >
> > Perhaps that will give us motivation to split the ioapic from the
> > kernel (though I suppose fear of regressions will stop us).
> >
> > Anyway EOI notifiers are also useful for timekeeping.
> >
> > > MSIs are currently still bouncing from
> > >VFIO to QEMU to the guest, which seems inefficient.
> >
> > Why is that? Can't you use irqfd like vhost-net?
Hope so, just haven't done it yet.
> > >> > It would probably make sense to request a mask/unmask ioctl in VFIO for
> > >> > MSI-X, then perhaps the pending bits would only support read/write (no
> > >> > mmap), so we could avoid an ioctl there.
> > >>
> > >> I would much like to see in-band information (which mask/unmask is for
> > >> older Linux) done via eventfds so userspace is not involved.
> > >
> > >Hmm, I'm not sure how to do that yet.
> >
> > One ugly way is to use two eventfds, one counting mask events, one
> > counting unmask events. The difference is the value if the masked
> > bit.
> >
> > Another option is to use
> > http://permalink.gmane.org/gmane.linux.kernel.commits.head/188038
> > which allows kvm to maintain a counter using eventfd. The vfio
> > state machine then looks like:
> >
> > interrupt:
> > if counter == 0 mask interrupts, set pending bit, wait for counter
> > to become 1
> > if counter == 1 forward it
> > counter becomes 1: unmask, forward interrupt if pending
>
> One issue is that this page has a ton of other info.
> KVM would have to keep all that in kernel...
Yeah, I'm a little confused about who is setting and who is receiving
the eventfd. KVM is going to trap that page, filter out the mask bit,
do the eventfd thing for the msix vector table, and forward the rest to
qemu? I'd like to see some benchmarks to know if that's really
worthwhile.
Alex
next prev parent reply other threads:[~2010-10-20 18:31 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-20 8:26 [PATCH 0/8][v2] MSI-X mask emulation support for assigned device Sheng Yang
2010-10-20 8:26 ` [PATCH 1/8] PCI: MSI: Move MSI-X entry definition to pci_regs.h Sheng Yang
2010-10-20 11:07 ` Matthew Wilcox
2010-10-20 8:26 ` [PATCH 2/8] irq: Export irq_to_desc() to modules Sheng Yang
2010-10-20 8:26 ` [PATCH 3/8] KVM: x86: Enable ENABLE_CAP capability for x86 Sheng Yang
2010-10-20 8:26 ` [PATCH 4/8] KVM: Move struct kvm_io_device to kvm_host.h Sheng Yang
2010-10-20 8:26 ` [PATCH 5/8] KVM: Add kvm_get_irq_routing_entry() func Sheng Yang
2010-10-20 8:53 ` Avi Kivity
2010-10-20 8:58 ` Sheng Yang
2010-10-20 9:13 ` Sheng Yang
2010-10-20 9:17 ` Sheng Yang
2010-10-20 9:32 ` Avi Kivity
2010-10-20 8:26 ` [PATCH 6/8] KVM: assigned dev: Preparation for mask support in userspace Sheng Yang
2010-10-20 9:30 ` Avi Kivity
2010-10-22 14:53 ` Marcelo Tosatti
2010-10-24 12:19 ` Sheng Yang
2010-10-24 12:23 ` Michael S. Tsirkin
2010-10-28 8:21 ` Sheng Yang
2010-10-20 8:26 ` [PATCH 7/8] KVM: assigned dev: Introduce io_device for MSI-X MMIO accessing Sheng Yang
2010-10-20 9:46 ` Avi Kivity
2010-10-20 10:33 ` Michael S. Tsirkin
2010-10-21 6:46 ` Sheng Yang
2010-10-21 9:27 ` Avi Kivity
2010-10-21 9:24 ` Michael S. Tsirkin
2010-10-21 9:47 ` Avi Kivity
2010-10-21 10:51 ` Michael S. Tsirkin
2010-10-20 22:35 ` Michael S. Tsirkin
2010-10-21 7:44 ` Sheng Yang
2010-10-20 8:26 ` [PATCH 8/8] KVM: Emulation MSI-X mask bits for assigned devices Sheng Yang
2010-10-20 9:49 ` Avi Kivity
2010-10-20 22:24 ` Michael S. Tsirkin
2010-10-21 8:30 ` Sheng Yang
2010-10-21 8:39 ` Michael S. Tsirkin
2010-10-22 4:42 ` Sheng Yang
2010-10-22 10:17 ` Michael S. Tsirkin
2010-10-22 13:30 ` Sheng Yang
2010-10-22 14:32 ` Michael S. Tsirkin
2010-10-20 9:51 ` [PATCH 0/8][v2] MSI-X mask emulation support for assigned device Avi Kivity
2010-10-20 10:44 ` Michael S. Tsirkin
2010-10-20 10:59 ` Avi Kivity
2010-10-20 13:43 ` Michael S. Tsirkin
2010-10-20 14:58 ` Alex Williamson
2010-10-20 14:58 ` Michael S. Tsirkin
2010-10-20 15:12 ` Alex Williamson
2010-10-20 15:17 ` Avi Kivity
2010-10-20 15:22 ` Alex Williamson
2010-10-20 15:26 ` Avi Kivity
2010-10-20 15:38 ` Alex Williamson
2010-10-20 14:47 ` Alex Williamson
2010-10-20 14:46 ` Michael S. Tsirkin
2010-10-20 15:07 ` Alex Williamson
2010-10-20 15:13 ` Michael S. Tsirkin
2010-10-20 20:13 ` Alex Williamson
2010-10-20 22:06 ` Michael S. Tsirkin
2010-10-20 15:23 ` Avi Kivity
2010-10-20 15:38 ` Alex Williamson
2010-10-20 15:54 ` Avi Kivity
2010-10-20 15:59 ` Michael S. Tsirkin
2010-10-20 16:13 ` Avi Kivity
2010-10-20 17:11 ` Michael S. Tsirkin
2010-10-20 18:31 ` Alex Williamson [this message]
2010-10-21 7:41 ` Sheng Yang
2010-10-20 19:02 ` Marcelo Tosatti
2010-10-21 7:10 ` Sheng Yang
2010-10-21 8:21 ` Michael S. Tsirkin
2010-10-20 22:20 ` Michael S. Tsirkin
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=1287599465.3007.54.camel@x201 \
--to=alex.williamson@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=sheng@linux.intel.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