Hugh Dickins
c74df32c72
[PATCH] mm: ptd_alloc take ptlock
...
Second step in pushing down the page_table_lock. Remove the temporary
bridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not
to hold page_table_lock, whether it's on init_mm or a user mm; take
page_table_lock internally to check if a racing task already allocated.
Convert their callers from common code. But avoid coming back to change them
again later: instead of moving the spin_lock(&mm->page_table_lock) down,
switch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which
encapsulate the mapping+locking and unlocking+unmapping together, and in the
end may use alternatives to the mm page_table_lock itself.
These callers all hold mmap_sem (some exclusively, some not), so at no level
can a page table be whipped away from beneath them; and pte_alloc uses the
"atomic" pmd_present to test whether it needs to allocate. It appears that on
all arches we can safely descend without page_table_lock.
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-29 21:40:40 -07:00
..
irq
[PATCH] CHECK_IRQ_PER_CPU() to avoid dead code in __do_IRQ()
2005-09-07 16:57:29 -07:00
power
[PATCH] core remove PageReserved
2005-10-29 21:40:39 -07:00
acct.c
[PATCH] mm: rss = file_rss + anon_rss
2005-10-29 21:40:38 -07:00
audit.c
[PATCH] gfp_t: kernel/*
2005-10-28 08:16:49 -07:00
auditsc.c
[PATCH] gfp_t: kernel/*
2005-10-28 08:16:49 -07:00
capability.c
[PATCH] kernel/capability.c: add kerneldoc
2005-07-27 16:26:06 -07:00
compat.c
[PATCH] kernel: fix-up schedule_timeout() usage
2005-09-10 10:06:37 -07:00
configs.c
cpu.c
cpuset.c
[PATCH] gfp flags annotations - part 1
2005-10-08 15:00:57 -07:00
crash_dump.c
[PATCH] kernel/crash_dump.c: add kerneldoc
2005-07-27 16:26:06 -07:00
dma.c
exec_domain.c
exit.c
[PATCH] mm: update_hiwaters just in time
2005-10-29 21:40:39 -07:00
extable.c
fork.c
[PATCH] mm: ptd_alloc take ptlock
2005-10-29 21:40:40 -07:00
futex.c
[PATCH] futex: remove duplicate code
2005-09-07 16:57:33 -07:00
intermodule.c
[PATCH] introduce and use kzalloc
2005-09-07 16:57:45 -07:00
itimer.c
[PATCH] itimer fixes
2005-07-27 16:25:51 -07:00
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c
[PATCH] gfp_t: kernel/*
2005-10-28 08:16:49 -07:00
kfifo.c
[PATCH] gfp flags annotations - part 1
2005-10-08 15:00:57 -07:00
kmod.c
kprobes.c
[PATCH] kprobes: fix bug when probed on task and isr functions
2005-09-07 16:58:01 -07:00
ksysfs.c
kthread.c
Makefile
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
module.c
[PATCH] use add_taint() for setting tainted bit flags
2005-09-13 08:22:29 -07:00
panic.c
[PATCH] Call emergency_reboot from panic
2005-07-26 14:35:43 -07:00
params.c
[PATCH] Ignore trailing whitespace on kernel parameters correctly
2005-09-28 07:46:41 -07:00
pid.c
posix-cpu-timers.c
[PATCH] Yet more posix-cpu-timer fixes
2005-10-27 09:08:43 -07:00
posix-timers.c
[PATCH] Call exit_itimers from do_exit, not __exit_signal
2005-10-21 15:38:08 -07:00
printk.c
[PATCH] Add printk_clock()
2005-09-21 10:11:54 -07:00
profile.c
ptrace.c
[PATCH] remove duplicated code from proc and ptrace
2005-09-07 16:57:43 -07:00
rcupdate.c
[PATCH] rcu: keep rcu callback event counter
2005-10-17 15:27:58 -07:00
resource.c
[PATCH] introduce and use kzalloc
2005-09-07 16:57:45 -07:00
sched.c
[PATCH] mm: update_hiwaters just in time
2005-10-29 21:40:39 -07:00
seccomp.c
signal.c
[PATCH] fix ->signal->live leak in copy_process()
2005-10-29 10:28:13 -07:00
softirq.c
[PATCH] x86-64: Some cleanup and optimization to the processor data area.
2005-09-12 10:49:58 -07:00
softlockup.c
[PATCH] detect soft lockups
2005-09-07 16:57:17 -07:00
spinlock.c
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
stop_machine.c
sys.c
[PATCH] reboot: comment and factor the main reboot functions
2005-09-22 22:17:33 -07:00
sys_ni.c
[PATCH] remove sys_set_zone_reclaim()
2005-08-01 10:03:56 -07:00
sysctl.c
[NET]: Fix sparse warnings
2005-08-29 16:01:32 -07:00
time.c
[PATCH] missing exports of do_settimeofday() variants
2005-10-29 10:35:07 -07:00
timer.c
[PATCH] TIMERS: add missing compensation for HZ == 250
2005-10-29 21:40:35 -07:00
uid16.c
user.c
wait.c
workqueue.c
[PATCH] introduce and use kzalloc
2005-09-07 16:57:45 -07:00