qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: kvm <kvm@vger.kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Michael Tokarev <mjt@tls.msk.ru>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] plan for device assignment upstream
Date: Wed, 04 Jul 2012 11:05:00 +0300	[thread overview]
Message-ID: <4FF3F92C.8010501@redhat.com> (raw)
In-Reply-To: <CAAu8pHv8WvH2gSxjNz1EQGUZcR-k3Y0f+Je3tX+vdjep51+98A@mail.gmail.com>

On 07/03/2012 10:06 PM, Blue Swirl wrote:
> On Mon, Jul 2, 2012 at 9:43 AM, Avi Kivity <avi@redhat.com> wrote:
>> On 07/02/2012 12:30 PM, Jan Kiszka wrote:
>>> On 2012-07-02 11:18, Michael S. Tsirkin wrote:
>>>> I've been thinking hard about Jan's patches for device
>>>> assignment. Basically while I thought it makes sense
>>>> to make all devices: assignment and not - behave the
>>>> same and use same APIs for injecting irqs, Anthony thinks there is huge
>>>> value in making irq propagation hierarchical and device assignment
>>>> should be special cased.
>>>
>>> On the long term, we will need direct injection, ie. caching, to allow
>>> making it lock-less. Stepping through all intermediate layers will cause
>>> troubles, at least performance-wise, when having to take and drop a lock
>>> at each stop.
>>
>> So we precalculate everything beforehand.  Instead of each qemu_irq
>> triggering a callback, calculating the next hop and firing the next
>> qemu_irq, configure each qemu_irq array with a function that describes
>> how to take the next hop.  Whenever the configuration changes,
>> recalculate all routes.
> 
> Yes, we had this discussion last year when I proposed the IRQ matrix:
> http://lists.nongnu.org/archive/html/qemu-devel/2011-09/msg00474.html
> 
> One problem with the matrix is that it only works for enable/disable
> level, not for more complex situations like boolean logic or
> multiplexed outputs.

I think we do need to support inverters etc.

> Perhaps the devices should describe the currently valid logic with
> packet filter type mechanism? I think that could scale arbitrarily and
> it could be more friendly even as a kernel interface?

Interesting idea.  So qemu creates multiple eventfds, gives half to
devices and half to kvm (as irqfds), and configures bpf programs that
calculate the irqfd outputs from the vfio inputs.

At least for x86 this is overkill.  I would be okay with
one-input-one-output cases handled with the current code and everything
else routed through qemu.

-- 
error compiling committee.c: too many arguments to function

  reply	other threads:[~2012-07-04  8:05 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-02  9:18 [Qemu-devel] plan for device assignment upstream Michael S. Tsirkin
2012-07-02  9:29 ` Avi Kivity
2012-07-02  9:30 ` Jan Kiszka
2012-07-02  9:43   ` Avi Kivity
2012-07-03 19:06     ` Blue Swirl
2012-07-04  8:05       ` Avi Kivity [this message]
2012-07-05 18:23         ` Blue Swirl
2012-07-04 10:42     ` Michael S. Tsirkin
2012-07-04 11:24       ` Avi Kivity
2012-07-04 12:54         ` 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=4FF3F92C.8010501@redhat.com \
    --to=avi@redhat.com \
    --cc=blauwirbel@gmail.com \
    --cc=jan.kiszka@siemens.com \
    --cc=kvm@vger.kernel.org \
    --cc=mjt@tls.msk.ru \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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;
as well as URLs for NNTP newsgroup(s).