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-changelog

[Xen-changelog] Auto-disable IRQ balancing/affinity on buggy chipsets.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Auto-disable IRQ balancing/affinity on buggy chipsets.
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 14 Jul 2005 07:08:10 -0400
Delivery-date: Thu, 14 Jul 2005 11:08:33 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID ca90d2903b7b31506430cfb10653cad1c374bd74
# Parent  57dfd651cca4506860ece03f858860b80d1fe9b3

Auto-disable IRQ balancing/affinity on buggy chipsets.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r 57dfd651cca4 -r ca90d2903b7b 
linux-2.6-xen-sparse/arch/xen/i386/kernel/Makefile
--- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/Makefile        Thu Jul 14 
10:37:49 2005
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/Makefile        Thu Jul 14 
11:09:21 2005
@@ -10,12 +10,12 @@
 
 obj-y  := process.o signal.o entry.o traps.o \
                time.o ioport.o ldt.o setup.o \
-               pci-dma.o i386_ksyms.o irq.o
+               pci-dma.o i386_ksyms.o irq.o quirks.o
 
 c-obj-y        := semaphore.o vm86.o \
                ptrace.o sys_i386.o \
                i387.o dmi_scan.o bootflag.o \
-               doublefault.o quirks.o
+               doublefault.o
 s-obj-y        :=
 
 obj-y                          += cpu/
diff -r 57dfd651cca4 -r ca90d2903b7b xen/arch/x86/irq.c
--- a/xen/arch/x86/irq.c        Thu Jul 14 10:37:49 2005
+++ b/xen/arch/x86/irq.c        Thu Jul 14 11:09:21 2005
@@ -16,7 +16,7 @@
 #include <asm/smpboot.h>
 
 /* opt_noirqbalance: If true, software IRQ balancing/affinity is disabled. */
-static int opt_noirqbalance = 0;
+int opt_noirqbalance = 0;
 boolean_param("noirqbalance", opt_noirqbalance);
 
 irq_desc_t irq_desc[NR_IRQS];
diff -r 57dfd651cca4 -r ca90d2903b7b xen/arch/x86/dom0_ops.c
--- a/xen/arch/x86/dom0_ops.c   Thu Jul 14 10:37:49 2005
+++ b/xen/arch/x86/dom0_ops.c   Thu Jul 14 11:09:21 2005
@@ -18,6 +18,7 @@
 #include <xen/trace.h>
 #include <xen/console.h>
 #include <asm/shadow.h>
+#include <asm/irq.h>
 #include <public/sched_ctl.h>
 
 #include <asm/mtrr.h>
@@ -371,6 +372,23 @@
     }
     break;
 
+    case DOM0_PLATFORM_QUIRK:
+    {
+        extern int opt_noirqbalance;
+        switch ( op->u.platform_quirk.quirk_id )
+        {
+        case QUIRK_NOIRQBALANCING:
+            printk("Platform quirk -- Disabling IRQ balancing/affinity.\n");
+            opt_noirqbalance = 1;
+            setup_ioapic_dest();
+            break;
+        default:
+            ret = -EINVAL;
+            break;
+        }
+    }
+    break;
+
     default:
         ret = -ENOSYS;
 
diff -r 57dfd651cca4 -r ca90d2903b7b xen/include/public/dom0_ops.h
--- a/xen/include/public/dom0_ops.h     Thu Jul 14 10:37:49 2005
+++ b/xen/include/public/dom0_ops.h     Thu Jul 14 11:09:21 2005
@@ -357,7 +357,7 @@
     u64     cpu_time;                 
 } dom0_getvcpucontext_t;
 
-#define DOM0_GETDOMAININFOLIST    38
+#define DOM0_GETDOMAININFOLIST   38
 typedef struct {
     /* IN variables. */
     domid_t               first_domain;
@@ -366,6 +366,13 @@
     /* OUT variables. */
     memory_t              num_domains;
 } dom0_getdomaininfolist_t;
+
+#define DOM0_PLATFORM_QUIRK      39  
+#define QUIRK_NOIRQBALANCING  1
+typedef struct {
+    /* IN variables. */
+    int quirk_id;
+} dom0_platform_quirk_t;
 
 typedef struct {
     u32 cmd;
@@ -400,6 +407,7 @@
         dom0_ioport_permission_t ioport_permission;
         dom0_getvcpucontext_t    getvcpucontext;
         dom0_getdomaininfolist_t getdomaininfolist;
+        dom0_platform_quirk_t    platform_quirk;
     } u;
 } dom0_op_t;
 
diff -r 57dfd651cca4 -r ca90d2903b7b 
linux-2.6-xen-sparse/arch/xen/x86_64/kernel/Makefile
--- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/Makefile      Thu Jul 14 
10:37:49 2005
+++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/Makefile      Thu Jul 14 
11:09:21 2005
@@ -51,7 +51,7 @@
 swiotlb-$(CONFIG_SWIOTLB)      += ../../../ia64/lib/swiotlb.o
 microcode-$(subst m,y,$(CONFIG_MICROCODE))  += ../../../i386/kernel/microcode.o
 intel_cacheinfo-y              += ../../../i386/kernel/cpu/intel_cacheinfo.o
-quirks-y                       += ../../../i386/kernel/quirks.o
+quirks-y                       += ../../i386/kernel/quirks.o
 
 c-link := init_task.o
 s-link := vsyscall.o 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Auto-disable IRQ balancing/affinity on buggy chipsets., Xen patchbot -unstable <=