From: Jan Kiszka <jan.kiszka@siemens.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Avi Kivity <avi@redhat.com>, kvm <kvm@vger.kernel.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
Eric Northup <digitaleric@google.com>
Subject: Re: [PATCH v3] KVM: Introduce direct MSI message injection for in-kernel irqchips
Date: Fri, 13 Apr 2012 15:45:24 +0200 [thread overview]
Message-ID: <4F882DF4.1090103@siemens.com> (raw)
In-Reply-To: <20120412223844.GA8712@amt.cnet>
On 2012-04-13 00:38, Marcelo Tosatti wrote:
>>> Have you checked that direct MSI injection does not make use of
>>> IRQ routing data structures, such as for acking?
>>
>> See kvm_set_msi: The routing structure is only read in the context of
>> that function, no reference is kept.
>
> I was thinking more along the lines of inconsistent state
> due to races.
>
> - set MSI for IOAPIC handled vector before kvm->irq_routing
> is assigned.
> - IOAPIC EOI for that vector.
> - EOI handler expects kvm->irq_routing present.
OK, starting to understand your worries. But isn't kvm->irq_routing
always pointing to some traversable table after KVM_CREATE_IRQCHIP? If
not, that race would have been exploitable before.
>
>>> irqchip_in_kernel(kvm) returns true before kvm->irq_routing is
>>> actually in place. With kvm_set_irq there is no problem, but now
>>> there is another path into injection.
>>>
>>> The real purpose of this is not entirely clear (and as Avi mentioned two
>>> interfaces should be avoided if possible).
>>
>> See [1] for an implementation of one of Avi's proposals.
>
> Just now that i start to appreciate KVM_SIGNAL_MSI.
>
> "so we have a single ioctl for all interrupt handling. This allows
> eventual removal of the line-oriented ioctls."
>
> So you move from one interface that handles both MSI/INTx, to _another_
> interface that handles both. KVM_SIGNAL_MSI with address/data is clean
> and obvious.
Well, I'm just looking for a MSI message injection mechanism. So I'm
fine with both KVM_GENERAL_IRQ and KVM_SIGNAL_MSI.
KVM_GENERAL_IRQ /may/ be helpful for kernel irqchips of upcoming arch if
they need to provide IRQ injection paths that do not match well on the
existing ones. However, it will surely take a long while until we can
drop KVM_IRQ_LINE/KVM_IRQ_LINE_STATUS.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
prev parent reply other threads:[~2012-04-13 13:45 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
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 [this message]
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=4F882DF4.1090103@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.