Ashok Raj 54d5d42404 [PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity
When handling writes to /proc/irq, current code is re-programming rte
entries directly. This is not recommended and could potentially cause
chipset's to lockup, or cause missing interrupts.

CONFIG_IRQ_BALANCE does this correctly, where it re-programs only when the
interrupt is pending. The same needs to be done for /proc/irq handling as well.
Otherwise user space irq balancers are really not doing the right thing.

- Changed pending_irq_balance_cpumask to pending_irq_migrate_cpumask for
  lack of a generic name.
- added move_irq out of IRQ_BALANCE, and added this same to X86_64
- Added new proc handler for write, so we can do deferred write at irq
  handling time.
- Display of /proc/irq/XX/smp_affinity used to display CPU_MASKALL, instead
  it now shows only active cpu masks, or exactly what was set.
- Provided a common move_irq implementation, instead of duplicating
  when using generic irq framework.

Tested on i386/x86_64 and ia64 with CONFIG_PCI_MSI turned on and off.
Tested UP builds as well.

MSI testing: tbd: I have cards, need to look for a x-over cable, although I
did test an earlier version of this patch.  Will test in a couple days.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Acked-by: Zwane Mwaikambo <zwane@holomorphy.com>
Grudgingly-acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Coywolf Qi Hunt <coywolf@lovecn.org>
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-07 16:57:15 -07:00
..
2005-06-28 21:20:31 -07:00
2005-09-03 16:45:02 +01:00
2005-07-07 16:50:16 +02:00
2005-08-29 15:59:42 -04:00
2005-06-23 09:45:26 -07:00
2005-07-10 15:45:11 -07:00
2005-06-25 16:24:24 -07:00
2005-09-05 00:06:09 -07:00
2005-06-24 00:06:41 -07:00
2005-07-12 16:01:01 -07:00
2005-07-13 11:25:24 -07:00
2005-07-12 12:08:43 -07:00
2005-08-19 18:02:56 -07:00
2005-07-07 18:23:46 -07:00
2005-07-12 16:01:03 -07:00
2005-07-12 12:08:43 -07:00
2005-09-05 09:14:13 -07:00
2005-09-05 09:26:56 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 16:01:32 -07:00
2005-07-05 15:03:46 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 15:32:25 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 15:49:46 -07:00
2005-08-15 09:50:31 -07:00
2005-08-29 15:43:19 -07:00
2005-06-25 16:24:55 -07:00
2005-06-23 09:45:18 -07:00
2005-08-03 09:12:05 -07:00
2005-07-12 16:00:58 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 16:01:35 -07:00
2005-06-24 00:06:28 -07:00
2005-06-23 09:45:04 -07:00
2005-08-16 21:06:24 -07:00
2005-08-28 20:28:25 -04:00
2005-06-27 15:11:43 -07:00
2005-07-26 14:35:41 -07:00
2005-06-24 00:06:41 -07:00
2005-07-12 20:38:38 -07:00
2005-06-27 15:11:44 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 16:01:54 -07:00
2005-08-29 16:01:32 -07:00
2005-06-25 16:24:32 -07:00
2005-09-05 00:05:45 -07:00
2005-07-27 16:26:04 -07:00
2005-06-23 20:49:30 -07:00
2005-06-25 16:24:42 -07:00
2005-06-23 09:45:35 -07:00
2005-07-12 11:52:57 -07:00
2005-07-12 12:08:43 -07:00