This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] pvops-2.6.32 - Interrupt routing problem

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Subject: Re: [Xen-devel] pvops-2.6.32 - Interrupt routing problem
From: Bastian Blank <waldi@xxxxxxxxxx>
Date: Fri, 19 Mar 2010 13:13:41 +0100
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, "Zhang, Xiantao" <xiantao.zhang@xxxxxxxxx>
Delivery-date: Fri, 19 Mar 2010 05:14:22 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20100319113904.GA29200@xxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20100314161750.GA7790@xxxxxxxxxxxxxxxxxxxxxxx> <EB8593BCECAB3D40A8248BE0B6400A38464169F7@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <20100315101126.GA24650@xxxxxxxxxxxxxxxxxxxxxxx> <EB8593BCECAB3D40A8248BE0B6400A38464AE52E@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <20100315211459.GA9314@xxxxxxxxxxxxxxxxxxxxxxx> <20100316013114.GD7622@xxxxxxxxxxxxxxxxxxx> <20100316081832.GA20502@xxxxxxxxxxxxxxxxxxxxxxx> <20100316153216.GB28821@xxxxxxxxxxxxxxxxxxx> <20100316182053.GA2258@xxxxxxxxxxxxxxxxxxxxxxx> <20100319113904.GA29200@xxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
On Fri, Mar 19, 2010 at 12:39:04PM +0100, Bastian Blank wrote:
> So the question is: Is it wrong for the kernel to do register_gsi calls
> early in bootup for interrupts it does not know anything about?

I digged a bit further. Native Linux does the following:
- Setup all interrupts into the IO-APIC but don't fix them yet. This way
  it can be programmed later if the real setup is known.
- During device setup the IO-APIC is written once, this value can't be
  changed later.

I hacked it now that it forbids access to interrupts the hypervisor
wants to use and setting the pin to edge-driven does not lock it, but
this is only a workaround. It is now able to drive all my USB devices.

The real fix could be:
- Allow the hypervisor to lock interrupts it uses. Zero would be in it by
  default. The interrupt for the used serial interface would be added.
  All other pins are free to be programmed by the kernel once.
- Don't do register_gsi calls from the initial setup in the kernel if no
  ACPI override is present, only setup the rest.


It is a human characteristic to love little animals, especially if
they're attractive in some way.
                -- McCoy, "The Trouble with Tribbles", stardate 4525.6

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>