From: Anthony Liguori <anthony@codemonkey.ws>
To: Alexander Graf <agraf@suse.de>
Cc: Gleb Natapov <gleb@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Alexey Kardashevskiy <aik@ozlabs.ru>,
qemu-devel <qemu-devel@nongnu.org>,
qemu-trivial@nongnu.org,
Alex Williamson <alex.williamson@redhat.com>,
qemu-ppc@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Paul Mackerras <paulus@samba.org>,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH] RFC kvm irqfd: add directly mapped MSI IRQ support
Date: Mon, 24 Jun 2013 10:17:41 -0500 [thread overview]
Message-ID: <878v1za67e.fsf@codemonkey.ws> (raw)
In-Reply-To: <92A47132-AAC5-4F7C-ACF7-2E817C70EDEF@suse.de>
Alexander Graf <agraf@suse.de> writes:
> On 24.06.2013, at 16:31, Anthony Liguori wrote:
>
>> "Michael S. Tsirkin" <mst@redhat.com> writes:
>>
>>> On Mon, Jun 24, 2013 at 08:34:52AM -0500, Anthony Liguori wrote:
>>>> Gleb Natapov <gleb@redhat.com> writes:
>>>>
>>>> Isn't this more or less what Avi's previous proposal was around changing
>>>> the APIC interfaces to userspace?
>>>>
>>>> Regards,
>>>>
>>>> Anthony Liguori
>>>
>>> While that's not very elegant, I think we can use the existing
>>> interface for this: just encode things in a fake
>>> "msi message" in the format that kernel expects.
>>
>> This is, in fact, exactly what we do today. The MSI interfaces aren't
>> for MSI. They are for sending messages to the APIC bus. What we should
>> do is:
>>
>> #define KVM_SIGNAL_LAPIC KVM_SIGNAL_MSI
>> #define KVM_IRQ_ROUTING_LAPIC KVM_IRQ_ROUTING_MSI
>>
>> And switch to using the new #defines in QEMU. That would make it more
>> obvious where we need to refactor things. We currently hard code
>> routing via a local APIC with MSI. We need to change this into a bus
>> specific function that can choose the right interface.
>>
>> I think Power is fine with just doing all routing through the irqchip
>> interface. We may need other routing interfaces for other architectures
>> though.
>
> I'm not quite sure what problem exactly you're trying to solve
> here. The main user of MSI injects through irqfd are in the kernel and
> definitely want a fast path to inject those without any involvement of
> QEMU at all.
Internally the communication between the IO APIC and LAPICs uses a
protocol that does not map to a simple "pin numbering".
Because we implement the IO APIC in the kernel, the kernel interface can
be pin numbering more or less.
But MSI bypasses the IO APIC (potentially at least) which means that we
need a userspace interface for sending APIC messages.
Unfortunately, when this was added to support MSI, this was called "MSI"
but it is most certainly not.
In the very least, you also need the bus state + the source device to do
proper MSI translation. We get around this by assigning global MSI
addresses and only having a single PHB.
If you make those assumptions, then the APIC protocol looks a lot like
an MSI address/data pair.
Regards,
Anthony Liguori
>
>
> Alex
next prev parent reply other threads:[~2013-06-24 15:17 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-20 14:08 [Qemu-devel] [PATCH] RFC kvm irqfd: add directly mapped MSI IRQ support Alexey Kardashevskiy
2013-06-20 15:38 ` Michael S. Tsirkin
2013-06-20 16:37 ` Anthony Liguori
2013-06-20 23:51 ` Alexey Kardashevskiy
2013-06-23 14:07 ` Michael S. Tsirkin
2013-06-23 15:02 ` Anthony Liguori
2013-06-23 21:39 ` [Qemu-devel] [Qemu-ppc] " Benjamin Herrenschmidt
2013-06-23 21:58 ` Anthony Liguori
2013-06-24 4:46 ` Alex Williamson
2013-06-24 12:24 ` Anthony Liguori
2013-06-24 12:39 ` Gleb Natapov
2013-06-23 21:36 ` [Qemu-devel] " Benjamin Herrenschmidt
2013-06-24 12:10 ` Michael S. Tsirkin
2013-06-20 16:51 ` Alex Williamson
2013-06-21 1:56 ` Alexey Kardashevskiy
2013-06-21 2:34 ` Alex Williamson
2013-06-21 2:49 ` Alexey Kardashevskiy
2013-06-21 4:46 ` Alex Williamson
2013-06-21 5:12 ` Benjamin Herrenschmidt
2013-06-21 6:03 ` Alex Williamson
2013-06-21 6:12 ` Benjamin Herrenschmidt
2013-06-21 6:40 ` Alexey Kardashevskiy
2013-06-23 15:06 ` Anthony Liguori
2013-06-24 4:44 ` Alex Williamson
2013-06-24 12:25 ` Anthony Liguori
2013-06-24 7:13 ` Gleb Natapov
2013-06-24 12:32 ` Anthony Liguori
2013-06-24 12:37 ` Alexander Graf
2013-06-24 13:06 ` Gleb Natapov
2013-06-24 13:34 ` Anthony Liguori
2013-06-24 13:41 ` Michael S. Tsirkin
2013-06-24 14:31 ` Anthony Liguori
2013-06-24 14:34 ` Alexander Graf
2013-06-24 15:17 ` Anthony Liguori [this message]
2013-06-24 16:48 ` Gleb Natapov
2013-06-24 16:35 ` Gleb Natapov
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=878v1za67e.fsf@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=gleb@redhat.com \
--cc=mst@redhat.com \
--cc=paulus@samba.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-trivial@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).