From: Jan Kiszka <jan.kiszka@siemens.com>
To: Avi Kivity <avi@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>, kvm <kvm@vger.kernel.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
Eric Northup <digitaleric@google.com>
Subject: Re: [PATCH v4] KVM: Introduce direct MSI message injection for in-kernel irqchips
Date: Tue, 03 Apr 2012 19:24:19 +0200 [thread overview]
Message-ID: <4F7B3243.7050803@siemens.com> (raw)
In-Reply-To: <4F7B2B4B.6080809@redhat.com>
On 2012-04-03 18:54, Avi Kivity wrote:
> On 04/03/2012 07:47 PM, Jan Kiszka wrote:
>>>
>>> so we have a single ioctl for all interrupt handling. This allows
>>> eventual removal of the line-oriented ioctls.
>>>
>>> The other alternative is to have a dma interface, similar to the kvm_run
>>> mmio interface but with the kernel acting as destination. The advantage
>>> here is that we can handle dma from a device to any kernel-emulated
>>> device, not just the APIC MSI range. A downside is that we can't return
>>> values related to interrupt coalescing.
>>
>> Due to lacking injection feedback, I'm in favor of option 1. Will have a
>> look.
>
> I wonder if we can create a side channel for it. Lack of a kernel DMA
> API is a hole in the current code, though we haven't been bitten by it
> yet. An example is a guest that is swapping its own page tables; right
> now the shadow mmu doesn't notice those writes (when the page tables are
> swapped in) and will deliver incorrect results. Of course no guest does
> that, so it doesn't happen in practice.
>
>>>
>>> A performance note: delivering an interrupt needs to search all vcpus
>>> for an APIC ID match. The previous plan was to cache (or pre-calculate)
>>> this lookup in the irq routing table. Now it looks like we'll need a
>>> separate cache for this.
>>
>> As this is non-existent until today, we don't regress here. And it can
>> still be added on top later on, transparently.
>
> Yes, it's just a note, not an objection. The cache lookup will be
> slower than the gsi lookup (hash table vs. array) but still O(1) vs. the
> current O(n).
If you are concerned about performance in this path, wouldn't a DMA
interface for MSI injection be counterproductive?
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2012-04-03 17:24 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-28 17:47 [PATCH v2] KVM: Introduce direct MSI message injection for in-kernel irqchips Jan Kiszka
2012-03-28 17:52 ` Jan Kiszka
2012-03-28 19:58 ` Eric Northup
2012-03-28 20:21 ` Jan Kiszka
2012-03-29 15:39 ` Michael S. Tsirkin
2012-03-29 15:43 ` Jan Kiszka
2012-03-29 16:15 ` [PATCH v3] " Jan Kiszka
2012-03-29 16:46 ` Michael S. Tsirkin
2012-03-29 16:50 ` Jan Kiszka
2012-03-29 18:25 ` Jan Kiszka
2012-03-29 19:14 ` [PATCH v4] " Jan Kiszka
2012-03-29 19:41 ` Michael S. Tsirkin
2012-03-30 7:45 ` Jan Kiszka
2012-03-30 12:45 ` Michael S. Tsirkin
2012-04-03 16:27 ` Avi Kivity
2012-04-03 16:47 ` Jan Kiszka
2012-04-03 16:54 ` Avi Kivity
2012-04-03 17:24 ` Jan Kiszka [this message]
2012-04-04 8:47 ` Avi Kivity
2012-04-04 8:38 ` Michael S. Tsirkin
2012-04-04 8:44 ` Avi Kivity
2012-04-04 8:53 ` Michael S. Tsirkin
2012-04-04 9:22 ` Jan Kiszka
2012-04-04 9:36 ` Avi Kivity
2012-04-04 9:38 ` Jan Kiszka
2012-04-04 9:55 ` Avi Kivity
2012-04-04 10:48 ` Jan Kiszka
2012-04-04 11:50 ` Avi Kivity
2012-04-04 12:01 ` Jan Kiszka
2012-04-10 18:30 ` [PATCH] KVM: Introduce generic interrupt " Jan Kiszka
2012-04-23 14:44 ` Jan Kiszka
2012-04-23 15:17 ` Avi Kivity
2012-04-23 15:32 ` Avi Kivity
2012-04-23 15:55 ` Jan Kiszka
2012-04-24 11:54 ` Avi Kivity
2012-04-24 11:57 ` [PATCH v4] KVM: Introduce direct MSI message " Avi Kivity
2012-04-24 12:07 ` Jan Kiszka
2012-04-24 12:59 ` Avi Kivity
2012-04-24 13:24 ` Jan Kiszka
2012-04-11 22:10 ` [PATCH v3] " Marcelo Tosatti
2012-04-12 9:28 ` Jan Kiszka
2012-04-12 22:38 ` Marcelo Tosatti
2012-04-13 13:45 ` Jan Kiszka
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=4F7B3243.7050803@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=avi@redhat.com \
--cc=digitaleric@google.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=mtosatti@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