Paul Jackson
c61afb181c
[PATCH] cpuset memory spread slab cache optimizations
...
The hooks in the slab cache allocator code path for support of NUMA
mempolicies and cpuset memory spreading are in an important code path. Many
systems will use neither feature.
This patch optimizes those hooks down to a single check of some bits in the
current tasks task_struct flags. For non NUMA systems, this hook and related
code is already ifdef'd out.
The optimization is done by using another task flag, set if the task is using
a non-default NUMA mempolicy. Taking this flag bit along with the
PF_SPREAD_PAGE and PF_SPREAD_SLAB flag bits added earlier in this 'cpuset
memory spreading' patch set, one can check for the combination of any of these
special case memory placement mechanisms with a single test of the current
tasks task_struct flags.
This patch also tightens up the code, to save a few bytes of kernel text
space, and moves some of it out of line. Due to the nested inlines called
from multiple places, we were ending up with three copies of this code, which
once we get off the main code path (for local node allocation) seems a bit
wasteful of instruction memory.
Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-24 07:33:23 -08:00
..
irq
power
[PATCH] sem2mutex: kernel/
2006-03-23 07:38:10 -08:00
.gitignore
acct.c
[PATCH] move capable() to capability.h
2006-01-11 18:42:13 -08:00
audit.c
[PATCH] EDAC: atomic scrub operations
2006-01-18 19:20:30 -08:00
auditsc.c
Merge ../powerpc-merge
2006-02-24 14:05:47 +11:00
capability.c
[PATCH] move capable() to capability.h
2006-01-11 18:42:13 -08:00
compat.c
[PATCH] remove bogus asm/bug.h includes.
2006-02-07 20:56:35 -05:00
configs.c
cpu.c
cpuset.c
[PATCH] cpuset memory spread basic implementation
2006-03-24 07:33:22 -08:00
dma.c
exec_domain.c
exit.c
[PATCH] sem2mutex: tty
2006-03-23 07:38:11 -08:00
extable.c
fork.c
[PATCH] cpuset memory spread slab cache optimizations
2006-03-24 07:33:23 -08:00
futex.c
hrtimer.c
[PATCH] fix next_timer_interrupt() for hrtimer
2006-03-06 18:40:44 -08:00
intermodule.c
[PATCH] missing license tag in intermodule
2006-02-05 11:06:52 -08:00
itimer.c
[PATCH] hrtimers: fix oldvalue return in setitimer
2006-02-01 08:53:12 -08:00
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c
[PATCH] move capable() to capability.h
2006-01-11 18:42:13 -08:00
kfifo.c
kmod.c
kprobes.c
[PATCH] sem2mutex: kprobes
2006-03-23 07:38:12 -08:00
ksysfs.c
[PATCH] kobject: fix build error if CONFIG_SYSFS=n
2006-03-20 13:42:57 -08:00
kthread.c
[PATCH] sem2mutex: kernel/
2006-03-23 07:38:10 -08:00
Makefile
[PATCH] relay: migrate from relayfs to a generic relay API
2006-03-23 19:56:55 +01:00
module.c
[PATCH] kernel/module.c Semaphore to Mutex Conversion for module_mutex
2006-03-23 07:38:14 -08:00
mutex-debug.c
[PATCH] fix/simplify mutex debugging code
2006-01-11 08:14:16 -08:00
mutex-debug.h
mutex.c
[PATCH] mutex: trivial whitespace cleanups
2006-01-10 14:27:59 -08:00
mutex.h
panic.c
[PATCH] pause_on_oops command line option
2006-03-23 07:38:16 -08:00
params.c
[PATCH] fix module sysfs files reference counting
2006-03-20 13:42:58 -08:00
pid.c
posix-cpu-timers.c
[PATCH] hrtimer: switch clock_nanosleep to hrtimer nanosleep API
2006-01-10 08:01:38 -08:00
posix-timers.c
[PATCH] sem2mutex: kernel/
2006-03-23 07:38:10 -08:00
printk.c
correct email address of Manfred Spraul
2006-01-15 02:43:54 +01:00
profile.c
[PATCH] sem2mutex: kernel/
2006-03-23 07:38:10 -08:00
ptrace.c
[PATCH] fix zap_thread's ptrace related problems
2006-02-15 11:05:43 -08:00
rcupdate.c
[PATCH] rcu_process_callbacks: don't cli() while testing ->nxtlist
2006-03-24 07:33:20 -08:00
rcutorture.c
[PATCH] rcutorture: tag success/failure line with module parameters
2006-03-24 07:33:22 -08:00
relay.c
[PATCH] relay: consolidate sendfile() and read() code
2006-03-23 19:58:45 +01:00
resource.c
[PATCH] kernel/resource.c: __check_region(): remove pointless __deprecated
2006-01-10 08:02:02 -08:00
sched.c
[PATCH] make bug messages more consistent
2006-03-23 07:38:16 -08:00
seccomp.c
signal.c
[PATCH] sigprocmask: kill unneeded temp var
2006-03-23 07:38:15 -08:00
softirq.c
[PATCH] on_each_cpu(): disable local interrupts
2006-03-22 07:53:59 -08:00
softlockup.c
spinlock.c
[PATCH] BUILD_LOCK_OPS: cleanup preempt_disable() usage
2006-03-23 07:38:16 -08:00
stop_machine.c
sys.c
[PATCH] sem2mutex: tty
2006-03-23 07:38:11 -08:00
sys_ni.c
[PATCH] Fix compile for CONFIG_SYSVIPC=n or CONFIG_SYSCTL=n
2006-02-20 20:00:11 -08:00
sysctl.c
[PATCH] Range checking in do_proc_dointvec_(userhz_)jiffies_conv
2006-03-24 07:33:20 -08:00
time.c
[PATCH] Normalize timespec for negative values in ns_to_timespec
2006-02-03 08:32:06 -08:00
timer.c
[PATCH] tvec_bases too large for per-cpu data
2006-03-24 07:33:21 -08:00
uid16.c
[PATCH] move capable() to capability.h
2006-01-11 18:42:13 -08:00
user.c
[PATCH] free_uid() locking improvement
2006-03-24 07:33:20 -08:00
wait.c
workqueue.c
[SCSI] add execute_in_process_context() API
2006-02-27 23:34:40 -06:00