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


[Xen-devel] Re: [PATCH 09/22] xen: Find an unbound irq number in reverse

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH 09/22] xen: Find an unbound irq number in reverse order (high to low).
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Thu, 7 Oct 2010 11:38:49 +0100
Cc: Fitzhardinge <jeremy@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Jeremy, Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, Jeremy Fitzhardinge <Jeremy.Fitzhardinge@xxxxxxxxxx>
Delivery-date: Thu, 07 Oct 2010 03:39:06 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20101006225956.GB20211@xxxxxxxxxxxx>
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: <1286216015-9710-1-git-send-email-konrad.wilk@xxxxxxxxxx> <1286216015-9710-10-git-send-email-konrad.wilk@xxxxxxxxxx> <alpine.DEB.2.00.1010051617160.2440@kaball-desktop> <20101006225956.GB20211@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
On Wed, 6 Oct 2010, Konrad Rzeszutek Wilk wrote:
> > 
> > Unfortunately this is the wrong way to fix the issue: Xen has a range of
> > allowed pirq for each domain and we don't know exactly what is the
> > maximum pirq (see my patch "xen: get the maximum number of pirqs from
> > xen" [1]).
> > Considering that we might use the irq number returned by
> > find_unbound_irq through xen_allocate_pirq as pirq number in some cases,
> Ah, but we wouldn't! We would end up only using the 'find_unbound_irq' for
> event channels. For IRQs that are for physical devices (either being
> real devices passed in or QEMU PCI devices) we end up requesting an IRQ that
> matches whatever the device has defined in dev->irq (or whatever the
> vectors values for MSI/MSI-X devices that is provided) via the Xen PCI 
> frontend
> driver (in case of QEMU whatever its emulation provides).
> > starting from the highest value could be unsafe.
> > In practice it should be impossible to see this issue because it can
> > only happen if the irq returned by xen_allocate_pirq is higher than the
> > max pirq in xen. However AFAIK when we call xen_allocate_pirq with the
> > intention of using the return value as pirq we always fall in the if
> > (identity_mapped_irq(gsi) || !xen_initial_domain()) that avoid calling
> > find_unbound_irq.
> Right, and we end up using an the pirq/gsi number at that point. This
> patch would not touch that logic.

What about adding a comment on top of xen_allocate_pirq like the

/* xen_allocate_irq might allocate irqs from the top down, as a
 * consequence don't assume that the irq number returned has a low value
 * or can be used as a pirq number unless you know otherwise.
 * One notable exception is when xen_allocate_irq is called passing an
 * hardware gsi as argument, in that case the irq number returned
 * matches the gsi number passed as first argument.

Xen-devel mailing list

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