linux/include
Christoph Lameter 15316ba81a [PATCH] add schedule_on_each_cpu()
swap migration's isolate_lru_page() currently uses an IPI to notify other
processors that the lru caches need to be drained if the page cannot be
found on the LRU.  The IPI interrupt may interrupt a processor that is just
processing lru requests and cause a race condition.

This patch introduces a new function run_on_each_cpu() that uses the
keventd() to run the LRU draining on each processor.  Processors disable
preemption when dealing the LRU caches (these are per processor) and thus
executing LRU draining from another process is safe.

Thanks to Lee Schermerhorn <lee.schermerhorn@hp.com> for finding this race
condition.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-08 20:12:40 -08:00
..
acpi [ACPI] increase owner_id limit to 64 from 32 2005-12-21 04:52:16 -05:00
asm-alpha [PATCH] Alpha: convert to generic irq framework (alpha part) 2006-01-06 08:33:40 -08:00
asm-arm [ARM] byteorder.h needs linux/compiler.h 2006-01-07 16:55:50 +00:00
asm-arm26 [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-cris [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-frv [PATCH] frv: improve signal handling 2006-01-06 08:33:33 -08:00
asm-generic [PATCH] asm-generic/atomic.h needs types.h 2006-01-08 20:12:38 -08:00
asm-h8300 [PATCH] m68knommu: remove enable_irq_nosync() 2006-01-06 08:33:44 -08:00
asm-i386 [PATCH] mpspec: remove unneeded packed attribute 2006-01-06 08:33:39 -08:00
asm-ia64 [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-m32r [PATCH] m32r: Remove unnecessary icu_data_t definitions 2006-01-06 08:33:44 -08:00
asm-m68k [PATCH] m68knommu: remove enable_irq_nosync() 2006-01-06 08:33:44 -08:00
asm-m68knommu [PATCH] m68knommu: remove enable_irq_nosync() 2006-01-06 08:33:44 -08:00
asm-mips [PATCH] mips: remove include/asm-mips/riscos-syscall.h 2006-01-06 08:33:33 -08:00
asm-parisc [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-powerpc [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-ppc [PATCH] ppc32: Allows compilation of a MPC52xx kernel without PCI 2006-01-06 08:33:31 -08:00
asm-s390 [PATCH] s390: cleanup Kconfig 2006-01-06 08:33:53 -08:00
asm-sh [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-sh64 [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-sparc [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-sparc64 [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-um [PATCH] uml: eliminate anonymous union and clean up symlink lossage 2005-11-22 09:13:41 -08:00
asm-v850 [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
asm-x86_64 [PATCH] cpu hotplug/x86_64: disable interrupt in play_dead 2006-01-06 08:33:39 -08:00
asm-xtensa [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux [PATCH] add schedule_on_each_cpu() 2006-01-08 20:12:40 -08:00
math-emu
media Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6 2006-01-06 15:25:08 -08:00
mtd [MTD] user-abi: Clean up trailing white spaces 2005-11-07 14:43:11 +01:00
net [IPV4]: make ip_fragment() static 2006-01-07 13:23:39 -08:00
pcmcia [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback 2006-01-06 00:03:24 +01:00
rdma [IB] uverbs: have kernel return QP capabilities 2005-11-10 10:22:50 -08:00
rxrpc
scsi Merge branch 'post-2.6.15' of git://brick.kernel.dk/data/git/linux-2.6-block 2006-01-06 09:01:25 -08:00
sound [ALSA] Revert the nested-device patch 2006-01-04 10:13:48 +01:00
video