kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: Avi Kivity <avi@redhat.com>
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 12:09:54 +0200	[thread overview]
Message-ID: <48DE0672.4060801@web.de> (raw)
In-Reply-To: <48DE01AB.2050303@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1818 bytes --]

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.

Transfered to the virtualization domain, you need a host driver stub for
each guest device that shares an IRQ with another host device. 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.

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.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

  reply	other threads:[~2008-09-27 10:10 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 [this message]
2008-09-27 10:16           ` Avi Kivity
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=48DE0672.4060801@web.de \
    --to=jan.kiszka@web.de \
    --cc=allen.m.kay@intel.com \
    --cc=amit.shah@redhat.com \
    --cc=avi@redhat.com \
    --cc=benami@il.ibm.com \
    --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).