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] [PATCH] Dont call msi_unmap_pirq() if did not enabled ms

To: Jan Beulich <JBeulich@xxxxxxxxxx>, Joe Jin <joe.jin@xxxxxxxxxx>
Subject: RE: [Xen-devel] [PATCH] Dont call msi_unmap_pirq() if did not enabled msi
From: "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>
Date: Wed, 18 Nov 2009 14:23:06 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, Kurt Hackel <kurt.hackel@xxxxxxxxxx>, "greg.marsden@xxxxxxxxxx" <greg.marsden@xxxxxxxxxx>, "Shan, Haitao" <haitao.shan@xxxxxxxxx>, Jerry, Yuanjiang Ou <yuanjiang.ou@xxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Tue, 17 Nov 2009 22:23:55 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4B0295380200007800020165@xxxxxxxxxxxxxxxxxx>
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: <20091116120030.GA13803@xxxxxxxxxxxxxxxxxxxxxxx> <20091116151546.GC30967@xxxxxxxxxxxxxxxxxxx> <20091117001909.GA18296@xxxxxxxxxxxxxxxxxxxxxxx> <4B0265DA02000078000200FF@xxxxxxxxxxxxxxxxxx> <20091117101416.GA23253@xxxxxxxxxxxxxxxxxxxxxxx> <4B0295380200007800020165@xxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcpneBVD4lIMY/wpRrmSVJUYVnOkswAmSXAw
Thread-topic: [Xen-devel] [PATCH] Dont call msi_unmap_pirq() if did not enabled msi
Yes, we need keep the msi disable/enable information for frontend also, now it 
is only kept in backend side. It is a issue introduced by us from beginning.

I will cook a patch after I get an environment to test.


Jan Beulich wrote:
>>>> Joe Jin <joe.jin@xxxxxxxxxx> 17.11.09 11:14 >>>
>> On 2009-11-17 07:59, Jan Beulich wrote:
>>>>>> Joe Jin <joe.jin@xxxxxxxxxx> 17.11.09 01:19 >>>
>>>> --- a/drivers/pci/msi-xen.c        Fri Oct 23 10:07:22 2009 +0100
>>>> +++ b/drivers/pci/msi-xen.c        Tue Nov 17 08:16:42 2009 +0800 @@
>>>>    -673,6 +673,12 @@ if (!pos)
>>>>            return;
>>>> +  if (!(dev->msi_enabled)) {
>>>> +          printk(KERN_INFO "PCI: %s: Device did not enabled MSI.\n", +    
>>>> pci_name(dev)); +          return;
>>>> +  }
>>>> +
>>>>    pirq = dev->irq;
>>>>    /* Restore dev->irq to its default pin-assertion vector */
>>>>    dev->irq = msi_dev_entry->default_irq;
>>> But shouldn't this happen before the CONFIG_XEN_PCIDEV_FRONTEND
>>> conditional block? This one also calls evtchn_map_pirq(..., 0),
>>> i.e. would also result in the storing of no_irq_chip.
>> However when irq_desc[irq]->chip set to no_irq_chip, if any device
>> try to request the @irq will failed and return -ENOSYS via
>> request_irq()->setup_irq(). 
>> According to codes, only when CONFIG_XEN_PCIDEV_FRONTEND and
>> !is_initial_xendomain(), it will called evtchn_map_pirq(), meant
>> only guest OS may call it, Dom0 will not. But during
>> pci_enable_msi(), it never set the 
> flag(dev->msi_enabled), I'm not sure if
>> Guest OS will set it if enabled msi, any suggestion?
> Hmm, indeed - I'm not sure then. Clarification from the Intel guys
> having originally written this code would be very desirable here;
> adding them to Cc.
> Jan
Xen-devel mailing list