From: Avi Kivity <avi@redhat.com>
To: Jan Kiszka <jan.kiszka@web.de>
Cc: "Yang, Sheng" <sheng.yang@intel.com>,
"Han, Weidong" <weidong.han@intel.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
Amit Shah <amit.shah@redhat.com>,
"benami@il.ibm.com" <benami@il.ibm.com>,
"muli@il.ibm.com" <muli@il.ibm.com>,
"Kay, Allen M" <allen.m.kay@intel.com>,
"Zhang, Xiantao" <xiantao.zhang@intel.com>
Subject: Re: Remaining passthrough/VT-d tasks list
Date: Sat, 27 Sep 2008 13:16:22 +0300 [thread overview]
Message-ID: <48DE07F6.1080908@redhat.com> (raw)
In-Reply-To: <48DE0672.4060801@web.de>
Jan Kiszka wrote:
> Avi Kivity wrote:
>
>> Yang, Sheng wrote:
>>
>>> After check host shared interrupts situation, I got a question here:
>>>
>>> If I understand correctly, current solution don't block host shared
>>> irq, just come with the performance pentry. The penalty come with host
>>> disabled irq line for a period. We have to wait guest to write EOI.
>>> But I fail to see the correctness problem here (except a lot of
>>> spurious interrupt in the guest).
>>>
>>> I've checked mail, but can't find clue about that. Can you explain the
>>> situation?
>>>
>>>
>>>
>> If the guest fails to disable interrupts on a device that shares an
>> interrupt line with the host, the host will experience an interrupt
>> flood. Eventually the host will disable the host device as well.
>>
>>
>
> It's the same issue we have since ages in the real-time domain: You
> cannot safely share IRQs between devices that are handled partly by
> RT-safe and partly by RT-unsafe drivers. The only sane solution is to
> write an RT-safe stub that is able to detect if an IRQ was triggered by
> the non-RT device, satisfy the IRQ source (disable further IRQ
> generation in the device), and forward the event to the non-RT driver
> part for handling the rest later.
>
>
Yes indeed -- exactly the same problem.
> Transfered to the virtualization domain, you need a host driver stub for
> each guest device that shares an IRQ with another host device.
That will requires some communication between the guest driver and the
host stub.
> Maybe
> there is some generic hardware support for this in recent PCI or in
> VT-d, dunno. But that would simplify the stub development and
> maintenance significantly.
>
>
Using MSI works around the issue nicely, since interrupts are no longer
shared. I imagine SR-IOV also fixes the issue.
> BTW, uio's IRQ handling pattern is also related to this issue: A small,
> device-specific IRQ receiver is written as a kernel driver while the
> major driver code sits in user space and can handle the IRQ later -
> without disturbing other devices sharing IRQs with the uio device.
>
This is yet another manifestation of the same issue. Those who
understand computing are doomed to keep reinventing the wheel, badly.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2008-09-27 10:16 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-24 6:15 Remaining passthrough/VT-d tasks list Han, Weidong
2008-09-24 6:31 ` Yang, Sheng
2008-09-24 6:58 ` Zhang, Xiantao
2008-09-24 7:41 ` Amit Shah
2008-09-24 7:51 ` Han, Weidong
2008-09-24 8:02 ` Amit Shah
2008-09-24 8:38 ` Han, Weidong
2008-09-24 8:49 ` Avi Kivity
2008-09-24 9:56 ` Amit Shah
2008-09-24 12:25 ` Han, Weidong
2008-09-24 8:46 ` Avi Kivity
2008-09-24 9:58 ` Amit Shah
2008-09-24 10:46 ` Avi Kivity
2008-09-24 14:46 ` Han, Weidong
2008-09-24 8:38 ` Avi Kivity
2008-09-24 8:46 ` Yang, Sheng
2008-09-27 9:15 ` Yang, Sheng
2008-09-27 9:49 ` Avi Kivity
2008-09-27 10:09 ` Jan Kiszka
2008-09-27 10:16 ` Avi Kivity [this message]
2008-09-28 6:03 ` Muli Ben-Yehuda
2008-09-28 1:48 ` Tian, Kevin
2008-09-28 2:03 ` Dong, Eddie
2008-09-28 2:29 ` Tian, Kevin
2008-09-28 4:22 ` Avi Kivity
2008-09-28 4:50 ` Tian, Kevin
2008-09-28 5:04 ` Avi Kivity
2008-09-28 5:17 ` Yang, Sheng
2008-10-05 10:18 ` Avi Kivity
2008-09-28 5:54 ` Yang, Sheng
2008-09-24 8:34 ` Avi Kivity
2008-09-24 8:42 ` Yang, Sheng
2008-09-24 8:53 ` Avi Kivity
2008-09-24 9:08 ` Yang, Sheng
2008-09-24 9:22 ` Avi Kivity
2008-09-24 9:43 ` Yang, Sheng
2008-09-24 9:51 ` Avi Kivity
2008-09-28 6:09 ` Yang, Sheng
2008-09-24 9:40 ` Amit Shah
2008-09-24 9:46 ` Avi Kivity
2008-09-24 15:39 ` Dong, Eddie
2008-09-27 10:11 ` Avi Kivity
2008-09-28 2:28 ` Dong, Eddie
2008-09-28 4:25 ` Avi Kivity
2008-09-28 5:54 ` Dong, Eddie
2008-09-24 8:39 ` Avi Kivity
2008-09-24 8:50 ` Han, Weidong
2008-09-24 9:12 ` Avi Kivity
2008-09-24 15:12 ` Anthony Liguori
2008-09-24 15:38 ` Avi Kivity
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=48DE07F6.1080908@redhat.com \
--to=avi@redhat.com \
--cc=allen.m.kay@intel.com \
--cc=amit.shah@redhat.com \
--cc=benami@il.ibm.com \
--cc=jan.kiszka@web.de \
--cc=kvm@vger.kernel.org \
--cc=muli@il.ibm.com \
--cc=sheng.yang@intel.com \
--cc=weidong.han@intel.com \
--cc=xiantao.zhang@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;
as well as URLs for NNTP newsgroup(s).