* Prevent IRQ sharing for PCI passthrough
@ 2010-05-13 16:57 Dirk Gouders
2010-05-13 17:21 ` Avi Kivity
0 siblings, 1 reply; 6+ messages in thread
From: Dirk Gouders @ 2010-05-13 16:57 UTC (permalink / raw)
To: kvm
Hello List,
please don't shout at me if the answer to my question is too obvious,
but in the German Linux Magazine I read an article about passing PCI
devices to KVM guests and the authors said that "shared interrupt
funcionality has to be disabled" which I read as "it is possible to
disable shared interrupt functionality".
I currently have the problem with a PCI ISDN card that is not MSI
capable and even if I change the PCI slot and disable all other slots,
USB etc. in the BIOS, that card still shares its interrupt with three
other devices.
Even after extensive searching/reading, I am not sure if it possible to
prevent a PCI card from sharing an interrupt with other devices or
probably manually assign a free interrupt to that card via some kernel
parameter and would be glad if someone could give me an answer to that
question.
Best regards,
Dirk
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Prevent IRQ sharing for PCI passthrough
2010-05-13 16:57 Prevent IRQ sharing for PCI passthrough Dirk Gouders
@ 2010-05-13 17:21 ` Avi Kivity
2010-05-13 17:26 ` Chris Wright
2010-05-14 9:37 ` Dirk Gouders
0 siblings, 2 replies; 6+ messages in thread
From: Avi Kivity @ 2010-05-13 17:21 UTC (permalink / raw)
To: Dirk Gouders; +Cc: kvm, Chris Wright
On 05/13/2010 07:57 PM, Dirk Gouders wrote:
> Hello List,
>
> please don't shout at me if the answer to my question is too obvious,
>
We won't shout at you.
> but in the German Linux Magazine I read an article about passing PCI
> devices to KVM guests and the authors said that "shared interrupt
> funcionality has to be disabled" which I read as "it is possible to
> disable shared interrupt functionality".
>
It would be more correct to say "no go with shared host interrupts".
> I currently have the problem with a PCI ISDN card that is not MSI
> capable and even if I change the PCI slot and disable all other slots,
> USB etc. in the BIOS, that card still shares its interrupt with three
> other devices.
>
> Even after extensive searching/reading, I am not sure if it possible to
> prevent a PCI card from sharing an interrupt with other devices or
> probably manually assign a free interrupt to that card via some kernel
> parameter and would be glad if someone could give me an answer to that
> question.
>
There is an ACPI _SRS method which can be used to move interrupts
around. However Linux doesn't appear to expose it. Even if it did, the
interrupt may be shared on the motherboard, in which case nothing would
help (though you might be able to share it with unused devices).
Chris?
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Prevent IRQ sharing for PCI passthrough
2010-05-13 17:21 ` Avi Kivity
@ 2010-05-13 17:26 ` Chris Wright
2010-05-14 9:49 ` Dirk Gouders
2010-05-14 9:37 ` Dirk Gouders
1 sibling, 1 reply; 6+ messages in thread
From: Chris Wright @ 2010-05-13 17:26 UTC (permalink / raw)
To: Avi Kivity; +Cc: Dirk Gouders, kvm, Chris Wright
* Avi Kivity (avi@redhat.com) wrote:
> On 05/13/2010 07:57 PM, Dirk Gouders wrote:
> >Hello List,
> >
> >please don't shout at me if the answer to my question is too obvious,
>
> We won't shout at you.
>
> >but in the German Linux Magazine I read an article about passing PCI
> >devices to KVM guests and the authors said that "shared interrupt
> >funcionality has to be disabled" which I read as "it is possible to
> >disable shared interrupt functionality".
>
> It would be more correct to say "no go with shared host interrupts".
>
> >I currently have the problem with a PCI ISDN card that is not MSI
> >capable and even if I change the PCI slot and disable all other slots,
> >USB etc. in the BIOS, that card still shares its interrupt with three
> >other devices.
> >
> >Even after extensive searching/reading, I am not sure if it possible to
> >prevent a PCI card from sharing an interrupt with other devices or
> >probably manually assign a free interrupt to that card via some kernel
> >parameter and would be glad if someone could give me an answer to that
> >question.
>
> There is an ACPI _SRS method which can be used to move interrupts
> around. However Linux doesn't appear to expose it. Even if it did,
> the interrupt may be shared on the motherboard, in which case
> nothing would help (though you might be able to share it with unused
> devices).
The only way to work around this is to unbind the other drivers that
are sharing that interrupt. This may not work if the other devices are
critical to you system (it's typically sharing w/ USB Host Controller).
Otherwise, we can't support this mode easily (there is some work in
progress to allow this to work if your ISDN device is PCI 2.3
compliant).
thanks,
-chris
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Prevent IRQ sharing for PCI passthrough
2010-05-13 17:21 ` Avi Kivity
2010-05-13 17:26 ` Chris Wright
@ 2010-05-14 9:37 ` Dirk Gouders
2010-05-14 17:14 ` Avi Kivity
1 sibling, 1 reply; 6+ messages in thread
From: Dirk Gouders @ 2010-05-14 9:37 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm, Chris Wright
>> Even after extensive searching/reading, I am not sure if it possible to
>> prevent a PCI card from sharing an interrupt with other devices or
>> probably manually assign a free interrupt to that card via some kernel
>> parameter and would be glad if someone could give me an answer to that
>> question.
>>
>
> There is an ACPI _SRS method which can be used to move interrupts
> around. However Linux doesn't appear to expose it. Even if it did,
> the interrupt may be shared on the motherboard, in which case nothing
> would help (though you might be able to share it with unused devices).
You mean by providing a custom DSDT, right?
A quick look in drivers/acpi/pci_link.c shows a TBD comment mentioning
_SRS but I will have to have a deeper look at this subject, because its
quite new to me.
Thanks for your answer,
Dirk
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Prevent IRQ sharing for PCI passthrough
2010-05-13 17:26 ` Chris Wright
@ 2010-05-14 9:49 ` Dirk Gouders
0 siblings, 0 replies; 6+ messages in thread
From: Dirk Gouders @ 2010-05-14 9:49 UTC (permalink / raw)
To: Chris Wright; +Cc: Avi Kivity, kvm
>> There is an ACPI _SRS method which can be used to move interrupts
>> around. However Linux doesn't appear to expose it. Even if it did,
>> the interrupt may be shared on the motherboard, in which case
>> nothing would help (though you might be able to share it with unused
>> devices).
>
> The only way to work around this is to unbind the other drivers that
> are sharing that interrupt. This may not work if the other devices are
> critical to you system (it's typically sharing w/ USB Host Controller).
Thanks for the hint. I will try if I can produce a situation where the
card shares it's interrupt with unused devices.
Dirk
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Prevent IRQ sharing for PCI passthrough
2010-05-14 9:37 ` Dirk Gouders
@ 2010-05-14 17:14 ` Avi Kivity
0 siblings, 0 replies; 6+ messages in thread
From: Avi Kivity @ 2010-05-14 17:14 UTC (permalink / raw)
To: Dirk Gouders; +Cc: kvm, Chris Wright
On 05/14/2010 12:37 PM, Dirk Gouders wrote:
>
>>> Even after extensive searching/reading, I am not sure if it possible to
>>> prevent a PCI card from sharing an interrupt with other devices or
>>> probably manually assign a free interrupt to that card via some kernel
>>> parameter and would be glad if someone could give me an answer to that
>>> question.
>>>
>>>
>> There is an ACPI _SRS method which can be used to move interrupts
>> around. However Linux doesn't appear to expose it. Even if it did,
>> the interrupt may be shared on the motherboard, in which case nothing
>> would help (though you might be able to share it with unused devices).
>>
> You mean by providing a custom DSDT, right?
> A quick look in drivers/acpi/pci_link.c shows a TBD comment mentioning
> _SRS but I will have to have a deeper look at this subject, because its
> quite new to me.
>
>
No, there should be an _SRS method in your existing DSDT. But Linux
doesn't call it (except after resume etc.) and doesn't allow the user to
use _SRS to move interrupts around.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-05-14 17:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-13 16:57 Prevent IRQ sharing for PCI passthrough Dirk Gouders
2010-05-13 17:21 ` Avi Kivity
2010-05-13 17:26 ` Chris Wright
2010-05-14 9:49 ` Dirk Gouders
2010-05-14 9:37 ` Dirk Gouders
2010-05-14 17:14 ` Avi Kivity
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).