Paul Menage
cc31edceee
cgroups: convert tasks file to use a seq_file with shared pid array
...
Rather than pre-generating the entire text for the "tasks" file each
time the file is opened, we instead just generate/update the array of
process ids and use a seq_file to report these to userspace. All open
file handles on the same "tasks" file can share a pid array, which may
be updated any time that no thread is actively reading the array. By
sharing the array, the potential for userspace to DoS the system by
opening many handles on the same "tasks" file is removed.
[Based on a patch by Lai Jiangshan, extended to use seq_file]
Signed-off-by: Paul Menage <menage@google.com>
Reviewed-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Serge Hallyn <serue@us.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-20 08:52:38 -07:00
..
irq
Merge branch 'linus' into x86/core
2008-08-14 14:58:01 +02:00
power
container freezer: skip frozen cgroups during power management resume
2008-10-20 08:52:34 -07:00
time
Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-10-16 15:17:40 -07:00
trace
hrtimer: prevent migration of per CPU hrtimers
2008-09-29 17:09:14 +02:00
.gitignore
acct.c
tty: Fix abusers of current->sighand->tty
2008-10-13 09:51:42 -07:00
audit.c
[PATCH] Fix the bug of using AUDIT_STATUS_RATE_LIMIT when set fail, no error output.
2008-08-01 12:15:16 -04:00
audit.h
audit_tree.c
auditfilter.c
Re: [PATCH] the loginuid field should be output in all AUDIT_CONFIG_CHANGE audit messages
2008-08-01 12:15:03 -04:00
auditsc.c
tty: Fix abusers of current->sighand->tty
2008-10-13 09:51:42 -07:00
backtracetest.c
backtrace: replace timer with tasklet + completions
2008-06-27 18:09:16 +02:00
bounds.c
capability.c
security: Fix setting of PF_SUPERPRIV by __capable()
2008-08-14 22:59:43 +10:00
cgroup.c
cgroups: convert tasks file to use a seq_file with shared pid array
2008-10-20 08:52:38 -07:00
cgroup_debug.c
cgroups: fix probable race with put_css_set[_taskexit] and find_css_set
2008-10-20 08:52:38 -07:00
cgroup_freezer.c
container freezer: rename check_if_frozen()
2008-10-20 08:52:34 -07:00
compat.c
compat: generic compat get/settimeofday
2008-10-16 11:21:33 -07:00
configs.c
kernel/configs.c: remove useless comments
2008-10-20 08:52:34 -07:00
cpu.c
Merge branches 'sched/devel', 'sched/cpu-hotplug', 'sched/cpusets' and 'sched/urgent' into sched/core
2008-10-08 11:31:02 +02:00
cpuset.c
cpusets: scan_for_empty_cpusets(), cpuset doesn't seem to be so const
2008-10-03 13:39:50 +02:00
delayacct.c
per-task-delay-accounting: update taskstats for memory reclaim delay
2008-07-25 10:53:47 -07:00
dma-coherent.c
dma-coherent: export dma_[alloc|release]_from_coherent methods
2008-08-22 08:34:53 +02:00
dma.c
kernel/dma.c: remove a CVS keyword
2008-10-16 11:21:30 -07:00
exec_domain.c
[PATCH] kill altroot
2008-07-26 20:53:20 -04:00
exit.c
memrlimit: cgroup mm owner callback changes to add task info
2008-10-16 11:21:28 -07:00
extable.c
fork.c
tty: Add a kref count
2008-10-13 09:51:40 -07:00
freezer.c
container freezer: implement freezer cgroup subsystem
2008-10-20 08:52:34 -07:00
futex.c
futex_compat.c
hrtimer.c
hrtimer: prevent migration of per CPU hrtimers
2008-09-29 17:09:14 +02:00
itimer.c
kallsyms.c
kernel/kallsyms.c: fix double return
2008-10-16 11:21:32 -07:00
Kconfig.freezer
container freezer: implement freezer cgroup subsystem
2008-10-20 08:52:34 -07:00
Kconfig.hz
sched: fix SCHED_HRTICK dependency
2008-07-28 14:37:38 +02:00
Kconfig.preempt
kexec.c
kexec: fix segmentation fault in kimage_add_entry
2008-09-23 08:09:14 -07:00
kfifo.c
kgdb.c
kgdb: call touch_softlockup_watchdog on resume
2008-10-06 13:50:59 -05:00
kmod.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
2008-10-16 12:38:34 -07:00
kprobes.c
make kprobes.c:kretprobe_table_lock() static
2008-10-16 11:21:52 -07:00
ksysfs.c
profiling: dynamically enable readprofile at runtime
2008-10-16 11:21:31 -07:00
kthread.c
tracehook: wait_task_inactive
2008-07-26 12:00:09 -07:00
latencytop.c
lockdep.c
lockdep: fix invalid list_del_rcu in zap_class
2008-08-27 08:40:36 +02:00
lockdep_internals.h
lockdep: build fix
2008-08-13 12:55:10 +02:00
lockdep_proc.c
lockstat: fix numerical output rounding error
2008-08-26 10:37:46 +02:00
Makefile
container freezer: implement freezer cgroup subsystem
2008-10-20 08:52:34 -07:00
marker.c
markers: fix markers read barrier for multiple probes
2008-07-30 09:41:45 -07:00
module.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
2008-10-17 09:50:12 -07:00
mutex-debug.c
mutex-debug.h
mutex.c
locking: fix mutex @key parameter kernel-doc notation
2008-07-28 18:12:36 +02:00
mutex.h
notifier.c
ns_cgroup.c
cgroup_clone: use pid of newly created task for new cgroup
2008-07-25 10:53:37 -07:00
nsproxy.c
removed unused #include <linux/version.h>'s
2008-08-23 12:14:12 -07:00
panic.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
2008-10-17 09:50:12 -07:00
params.c
pid.c
pidns: remove now unused find_pid function.
2008-07-25 10:53:45 -07:00
pid_namespace.c
pid_ns: (BUG 11391) change ->child_reaper when init->group_leader exits
2008-09-02 19:21:38 -07:00
pm_qos_params.c
pm_qos_requirement might sleep
2008-09-02 19:21:40 -07:00
posix-cpu-timers.c
posix-timers.c
fix error-path NULL deref in alloc_posix_timer()
2008-10-02 15:53:13 -07:00
printk.c
Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-10-16 15:17:40 -07:00
profile.c
profiling: dynamically enable readprofile at runtime
2008-10-16 11:21:31 -07:00
ptrace.c
security: Fix setting of PF_SUPERPRIV by __capable()
2008-08-14 22:59:43 +10:00
rcuclassic.c
rcu: RCU-based detection of stalled CPUs for Classic RCU, fix
2008-10-03 10:41:00 +02:00
rcupdate.c
rcu: fix synchronize_rcu() so that kernel-doc works
2008-08-21 09:31:44 +02:00
rcupreempt.c
rcu: remove redundant ACCESS_ONCE definition from rcupreempt.c
2008-08-18 09:45:22 +02:00
rcupreempt_trace.c
rcu: trace fix possible mem-leak
2008-08-15 17:54:40 +02:00
rcutorture.c
relay.c
relay: fix "full buffer with exactly full last subbuffer" accounting problem
2008-08-05 14:33:46 -07:00
res_counter.c
cgroup files: convert res_counter_write() to be a cgroups write_string() handler
2008-07-25 10:53:36 -07:00
resource.c
Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-10-16 15:17:40 -07:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
sysdev: Pass the attribute to the low level sysdev show/store function
2008-07-21 21:55:02 -07:00
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
sched debug: add name to sched_domain sysctl entries
2008-10-09 17:13:06 +02:00
sched_clock.c
sched_clock: prevent scd->clock from moving backwards
2008-10-10 11:17:04 +02:00
sched_cpupri.c
sched_cpupri.h
sched_debug.c
[PATCH] signal, procfs: some lock_task_sighand() users do not need rcu_read_lock()
2008-10-10 04:18:57 +04:00
sched_fair.c
sched: sync wakeups vs avg_overlap
2008-10-08 12:20:26 +02:00
sched_features.h
sched: turn off WAKEUP_OVERLAP
2008-09-22 16:29:00 +02:00
sched_idletask.c
sched: wakeup preempt when small overlap
2008-09-22 16:28:32 +02:00
sched_rt.c
sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq
2008-10-04 14:31:54 +02:00
sched_stats.h
sched: fix accounting in task delay accounting & migration
2008-07-04 12:50:23 +02:00
seccomp.c
semaphore.c
semaphore: __down_common: use signal_pending_state()
2008-08-05 14:33:47 -07:00
signal.c
tracehook: fix SA_NOCLDWAIT
2008-08-19 20:37:07 -07:00
smp.c
smp: have smp_call_function_single() detect invalid CPUs
2008-08-25 17:45:48 -07:00
softirq.c
softirq: Add support for triggering softirq work on softirqs.
2008-10-17 08:46:56 +02:00
softlockup.c
Make the taint flags reliable
2008-10-16 11:21:31 -07:00
spinlock.c
lockdep: spin_lock_nest_lock(), checkpatch fixes
2008-08-13 13:56:51 +02:00
srcu.c
stacktrace.c
stacktrace: fix modular build, export print_stack_trace and save_stack_trace
2008-06-30 09:20:55 +02:00
stop_machine.c
stop_machine: remove unused variable
2008-08-12 17:52:55 +10:00
sys.c
kernel/sys.c: improve code generation
2008-10-16 11:21:31 -07:00
sys_ni.c
Configure out AIO support
2008-10-16 11:21:51 -07:00
sysctl.c
vmscan: unevictable LRU scan sysctl
2008-10-20 08:52:31 -07:00
sysctl_check.c
sysctl: check for bogus modes
2008-07-25 10:53:45 -07:00
taskstats.c
taskstats: remove initialization of static per-cpu variable
2008-07-25 10:53:47 -07:00
test_kprobes.c
time.c
timeconst.pl
timer.c
printk: robustify printk
2008-08-11 13:46:53 +02:00
tsacct.c
task IO accounting: move all IO statistics in struct task_io_accounting
2008-07-27 16:12:28 -07:00
uid16.c
user.c
sched: rt-bandwidth for user grouping interface
2008-08-19 13:10:09 +02:00
user_namespace.c
removed unused #include <linux/version.h>'s
2008-08-23 12:14:12 -07:00
utsname.c
removed unused #include <linux/version.h>'s
2008-08-23 12:14:12 -07:00
utsname_sysctl.c
sysctl: simplify ->strategy
2008-10-16 11:21:47 -07:00
wait.c
wait: kill is_sync_wait()
2008-10-16 11:21:31 -07:00
workqueue.c
Remove Andrew Morton's old email accounts
2008-10-16 11:21:32 -07:00