mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Allow IRQ balancing to be disabled with 'noirqbalance'
boot parameter. Signed-off-by: Keir Fraser <keir@xensource.com>
This commit is contained in:
1 parent
563fb4e94c
commit
08daf6e614
2 files changed
+11
-1
No files matched your search
@@ -1692,6 +1692,11 @@ editing \path{grub.conf}.
|
||||
\item [watchdog ]
|
||||
Enable NMI watchdog which can report certain failures.
|
||||
|
||||
\item [noirqbalance ]
|
||||
Disable software IRQ balancing and affinity. This can be used on
|
||||
systems such as Dell 1850/2850 that have workarounds in hardware for
|
||||
IRQ-routing issues.
|
||||
|
||||
\item [badpage=$<$page number$>$,$<$page number$>$, \ldots ]
|
||||
Specify a list of pages not to be allocated for use
|
||||
because they contain bad bytes. For example, if your
|
||||
|
||||
+6
-1
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
#include <xen/config.h>
|
||||
#include <xen/init.h>
|
||||
#include <xen/errno.h>
|
||||
#include <xen/event.h>
|
||||
#include <xen/irq.h>
|
||||
@@ -14,6 +15,10 @@
|
||||
#include <asm/current.h>
|
||||
#include <asm/smpboot.h>
|
||||
|
||||
/* opt_noirqbalance: If true, software IRQ balancing/affinity is disabled. */
|
||||
static int opt_noirqbalance = 0;
|
||||
boolean_param("noirqbalance", opt_noirqbalance);
|
||||
|
||||
irq_desc_t irq_desc[NR_IRQS];
|
||||
|
||||
static void __do_IRQ_guest(int vector);
|
||||
@@ -240,7 +245,7 @@ int pirq_guest_bind(struct vcpu *v, int irq, int will_share)
|
||||
|
||||
/* Attempt to bind the interrupt target to the correct CPU. */
|
||||
cpu_set(v->processor, cpumask);
|
||||
if ( desc->handler->set_affinity != NULL )
|
||||
if ( !opt_noirqbalance && (desc->handler->set_affinity != NULL) )
|
||||
desc->handler->set_affinity(vector, cpumask);
|
||||
}
|
||||
else if ( !will_share || !action->shareable )
|
||||
|
||||