linux/arch/ia64/kernel
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
..
cpufreq [IA64] Add ACPI based P-state support 2005-08-26 15:09:24 -07:00
acpi-ext.c
acpi.c [ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc... 2005-07-12 17:21:56 -04:00
asm-offsets.c
brl_emu.c
cyclone.c
domain.c [PATCH] fix for ia64 sched-domains code 2005-08-16 08:54:00 -07:00
efi_stub.S
efi.c [PATCH] ia64 uncached alloc 2005-06-21 18:46:18 -07:00
entry.h [IA64] Drop spurious paren in entry.h 2005-06-20 09:34:02 -07:00
entry.S [PATCH] remove sys_set_zone_reclaim() 2005-08-01 10:03:56 -07:00
fsys.S Auto merge with /home/aegl/GIT/linus 2005-06-15 14:06:48 -07:00
gate-data.S
gate.lds.S
gate.S
head.S
ia64_ksyms.c
init_task.c
iosapic.c [IA64] assign_irq_vector() should not panic 2005-07-11 10:30:07 -07:00
irq_ia64.c [IA64] assign_irq_vector() should not panic 2005-07-11 10:30:07 -07:00
irq_lsapic.c
irq.c [PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity 2005-09-07 16:57:15 -07:00
ivt.S [IA64] Speed up lfetch.fault [NULL] 2005-06-28 09:28:16 -07:00
jprobes.S [PATCH] Kprobes/IA64: architecture specific JProbes support 2005-06-23 09:45:22 -07:00
kprobes.c [PATCH] kprobes: fix namespace problem and sparc64 build 2005-07-05 19:19:00 -07:00
machvec.c
Makefile [IA64] Add ACPI based P-state support 2005-08-26 15:09:24 -07:00
mca_asm.S
mca_drv_asm.S
mca_drv.c
mca_drv.h
mca.c [ACPI] Evaluate CPEI Processor Override flag 2005-07-12 00:01:41 -04:00
minstate.h
module.c
numa.c [IA64] fix generic/up builds 2005-07-06 18:18:10 -07:00
pal.S
palinfo.c
patch.c
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon.c [IA64] fix perfmon context load 2005-08-10 16:21:58 -07:00
process.c [IA64] fix nohalt boot option 2005-08-08 15:39:47 -07:00
ptrace.c Auto merge with /home/aegl/GIT/ia64-test 2005-06-28 08:24:49 -07:00
sal.c
salinfo.c [IA64] Initialize some spinlocks 2005-08-16 15:33:26 -07:00
semaphore.c
setup.c Auto merge with /home/aegl/GIT/linus 2005-07-13 12:15:43 -07:00
sigframe.h
signal.c [PATCH] convert signal handling of NODEFER to act like other Unix boxes. 2005-08-29 10:03:11 -07:00
smp.c [IA64] Fix another IA64 preemption problem 2005-06-28 10:01:19 -07:00
smpboot.c [IA64] fix generic/up builds 2005-07-06 18:18:10 -07:00
sys_ia64.c [IA64] Rationalise Region Definitions 2005-08-24 15:35:41 -07:00
time.c
topology.c [IA64] Fix undefined reference to can_cpei_retarget for simulator 2005-07-14 09:21:47 -07:00
traps.c [IA64] Make ia64 die() preempt safe 2005-07-06 15:44:55 -07:00
unaligned.c
uncached.c [IA64] uncached allocator: use generic (not sn2 specific) functions 2005-08-31 14:18:04 -07:00
unwind_decoder.c
unwind_i.h
unwind.c [IA64] unwind.c uses wrong unat from switch_stack 2005-07-27 14:18:08 -07:00
vmlinux.lds.S [PATCH] kprobes/ia64: refuse kprobe on ivt code 2005-06-27 15:23:54 -07:00