https://github.com/torvalds/linux
Revision 90d8b7e6129e8f4e5b3bc1a2cfbe585372ce8646 authored by Adam Litke on 15 November 2007, 00:59:42 UTC, committed by Linus Torvalds on 15 November 2007, 02:45:40 UTC
When a MAP_SHARED mmap of a hugetlbfs file succeeds, huge pages are reserved to guarantee no problems will occur later when instantiating pages. If quotas are in force, page instantiation could fail due to a race with another process or an oversized (but approved) shared mapping. To prevent these scenarios, debit the quota for the full reservation amount up front and credit the unused quota when the reservation is released. Signed-off-by: Adam Litke <agl@us.ibm.com> Cc: Ken Chen <kenchen@google.com> Cc: Andy Whitcroft <apw@shadowen.org> Cc: Dave Hansen <haveblue@us.ibm.com> Cc: David Gibson <hermes@gibson.dropbear.id.au> Cc: William Lee Irwin III <wli@holomorphy.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 9a119c0
Tip revision: 90d8b7e6129e8f4e5b3bc1a2cfbe585372ce8646 authored by Adam Litke on 15 November 2007, 00:59:42 UTC
hugetlb: enforce quotas during reservation for shared mappings
hugetlb: enforce quotas during reservation for shared mappings
Tip revision: 90d8b7e
File | Mode | Size |
---|---|---|
irq | ||
power | ||
time | ||
.gitignore | -rw-r--r-- | 51 bytes |
Kconfig.hz | -rw-r--r-- | 1.6 KB |
Kconfig.instrumentation | -rw-r--r-- | 1.5 KB |
Kconfig.preempt | -rw-r--r-- | 2.3 KB |
Makefile | -rw-r--r-- | 3.2 KB |
acct.c | -rw-r--r-- | 15.6 KB |
audit.c | -rw-r--r-- | 37.9 KB |
audit.h | -rw-r--r-- | 5.9 KB |
audit_tree.c | -rw-r--r-- | 20.5 KB |
auditfilter.c | -rw-r--r-- | 45.6 KB |
auditsc.c | -rw-r--r-- | 57.0 KB |
capability.c | -rw-r--r-- | 6.1 KB |
cgroup.c | -rw-r--r-- | 71.5 KB |
cgroup_debug.c | -rw-r--r-- | 1.9 KB |
compat.c | -rw-r--r-- | 26.6 KB |
configs.c | -rw-r--r-- | 3.1 KB |
cpu.c | -rw-r--r-- | 8.2 KB |
cpu_acct.c | -rw-r--r-- | 4.2 KB |
cpuset.c | -rw-r--r-- | 67.2 KB |
delayacct.c | -rw-r--r-- | 4.4 KB |
dma.c | -rw-r--r-- | 3.7 KB |
exec_domain.c | -rw-r--r-- | 4.3 KB |
exit.c | -rw-r--r-- | 44.7 KB |
extable.c | -rw-r--r-- | 2.0 KB |
fork.c | -rw-r--r-- | 42.1 KB |
futex.c | -rw-r--r-- | 49.7 KB |
futex_compat.c | -rw-r--r-- | 4.2 KB |
hrtimer.c | -rw-r--r-- | 35.7 KB |
itimer.c | -rw-r--r-- | 7.8 KB |
kallsyms.c | -rw-r--r-- | 11.9 KB |
kexec.c | -rw-r--r-- | 35.3 KB |
kfifo.c | -rw-r--r-- | 5.1 KB |
kmod.c | -rw-r--r-- | 14.2 KB |
kprobes.c | -rw-r--r-- | 25.8 KB |
ksysfs.c | -rw-r--r-- | 3.4 KB |
kthread.c | -rw-r--r-- | 6.7 KB |
latency.c | -rw-r--r-- | 8.4 KB |
lockdep.c | -rw-r--r-- | 78.5 KB |
lockdep_internals.h | -rw-r--r-- | 2.4 KB |
lockdep_proc.c | -rw-r--r-- | 17.0 KB |
marker.c | -rw-r--r-- | 13.4 KB |
module.c | -rw-r--r-- | 66.4 KB |
mutex-debug.c | -rw-r--r-- | 3.1 KB |
mutex-debug.h | -rw-r--r-- | 1.7 KB |
mutex.c | -rw-r--r-- | 9.7 KB |
mutex.h | -rw-r--r-- | 1.1 KB |
notifier.c | -rw-r--r-- | 15.8 KB |
ns_cgroup.c | -rw-r--r-- | 2.2 KB |
nsproxy.c | -rw-r--r-- | 5.1 KB |
panic.c | -rw-r--r-- | 6.7 KB |
params.c | -rw-r--r-- | 17.7 KB |
pid.c | -rw-r--r-- | 16.6 KB |
posix-cpu-timers.c | -rw-r--r-- | 42.6 KB |
posix-timers.c | -rw-r--r-- | 29.3 KB |
printk.c | -rw-r--r-- | 31.9 KB |
profile.c | -rw-r--r-- | 16.0 KB |
ptrace.c | -rw-r--r-- | 11.9 KB |
rcupdate.c | -rw-r--r-- | 17.6 KB |
rcutorture.c | -rw-r--r-- | 26.6 KB |
relay.c | -rw-r--r-- | 29.0 KB |
resource.c | -rw-r--r-- | 16.1 KB |
rtmutex-debug.c | -rw-r--r-- | 5.6 KB |
rtmutex-debug.h | -rw-r--r-- | 1.4 KB |
rtmutex-tester.c | -rw-r--r-- | 9.0 KB |
rtmutex.c | -rw-r--r-- | 25.8 KB |
rtmutex.h | -rw-r--r-- | 1.1 KB |
rtmutex_common.h | -rw-r--r-- | 3.3 KB |
rwsem.c | -rw-r--r-- | 2.6 KB |
sched.c | -rw-r--r-- | 178.2 KB |
sched_debug.c | -rw-r--r-- | 9.1 KB |
sched_fair.c | -rw-r--r-- | 26.8 KB |
sched_idletask.c | -rw-r--r-- | 1.9 KB |
sched_rt.c | -rw-r--r-- | 5.8 KB |
sched_stats.h | -rw-r--r-- | 7.1 KB |
seccomp.c | -rw-r--r-- | 1.6 KB |
signal.c | -rw-r--r-- | 64.9 KB |
softirq.c | -rw-r--r-- | 14.5 KB |
softlockup.c | -rw-r--r-- | 5.1 KB |
spinlock.c | -rw-r--r-- | 11.1 KB |
srcu.c | -rw-r--r-- | 8.5 KB |
stacktrace.c | -rw-r--r-- | 462 bytes |
stop_machine.c | -rw-r--r-- | 4.9 KB |
sys.c | -rw-r--r-- | 43.2 KB |
sys_ni.c | -rw-r--r-- | 4.4 KB |
sysctl.c | -rw-r--r-- | 62.3 KB |
sysctl_check.c | -rw-r--r-- | 51.5 KB |
taskstats.c | -rw-r--r-- | 13.6 KB |
time.c | -rw-r--r-- | 16.8 KB |
timer.c | -rw-r--r-- | 36.0 KB |
tsacct.c | -rw-r--r-- | 3.9 KB |
uid16.c | -rw-r--r-- | 5.1 KB |
user.c | -rw-r--r-- | 11.4 KB |
user_namespace.c | -rw-r--r-- | 1.8 KB |
utsname.c | -rw-r--r-- | 1.5 KB |
utsname_sysctl.c | -rw-r--r-- | 3.3 KB |
wait.c | -rw-r--r-- | 7.3 KB |
workqueue.c | -rw-r--r-- | 21.8 KB |
Computing file changes ...