WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH v2 1/2] x86: skip migrating IRQF_PER_CPU irq in fixup

To: "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, "mingo@xxxxxxxxxx" <mingo@xxxxxxxxxx>, "hpa@xxxxxxxxx" <hpa@xxxxxxxxx>, "tglx@xxxxxxxxxxxxx" <tglx@xxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH v2 1/2] x86: skip migrating IRQF_PER_CPU irq in fixup_irqs
From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
Date: Fri, 6 May 2011 14:43:36 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "JBeulich@xxxxxxxxxx" <JBeulich@xxxxxxxxxx>
Delivery-date: Thu, 05 May 2011 23:46:52 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcwLuG0kAnDONFTeQEeF45iftKIKYA==
Thread-topic: [PATCH v2 1/2] x86: skip migrating IRQF_PER_CPU irq in fixup_irqs
x86: skip migrating IRQF_PER_CPU irq in fixup_irqs

IRQF_PER_CPU marks a irq binding to a specific cpu, and can never be
moved away from that cpu. So it shouldn't be migrated when fixup irqs
to offline a cpu. Xen pvops guest is one source using IRQF_PER_CPU
on a set of virtual interrupts. Previously no error is observed 
because Xen event chip silently fails the set_affinity ops, and
logically IRQF_PER_CPU should be recognized here.

Signed-off-by: Fengzhe Zhang <fengzhe.zhang@xxxxxxxxx>
Signed-off-by: Kevin Tian <kevin.tian@xxxxxxxxx>
CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CC: Ingo Molnar <mingo@xxxxxxxxxx>
CC: H. Peter Anvin <hpa@xxxxxxxxx>
CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
CC: Jan Beulich <JBeulich@xxxxxxxxxx>

--- linux-2.6.39-rc6.orig/arch/x86/kernel/irq.c 2011-05-04 10:59:13.000000000 
+0800
+++ linux-2.6.39-rc6/arch/x86/kernel/irq.c      2011-05-06 09:20:25.563963000 
+0800
@@ -249,7 +250,7 @@ void fixup_irqs(void)
 
                data = irq_desc_get_irq_data(desc);
                affinity = data->affinity;
-               if (!irq_has_action(irq) ||
+               if (!irq_has_action(irq) || irqd_is_per_cpu(data) ||
                    cpumask_subset(affinity, cpu_online_mask)) {
                        raw_spin_unlock(&desc->lock);
                        continue;

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel