Patch from Valmont Allows to trigger all processes visibility in /proc via sysctl. --- kernel/sysctl.c.orig 2006-07-12 02:08:36.000000000 +0400 +++ kernel/sysctl.c 2006-07-12 00:19:01.000000000 +0400 @@ -71,6 +71,8 @@ extern int printk_ratelimit_burst; int glob_virt_pids = 1; EXPORT_SYMBOL(glob_virt_pids); #endif +int ve0_proc_all_tasks = 0; +EXPORT_SYMBOL(ve0_proc_all_tasks); /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */ static int maxolduid = 65535; @@ -644,6 +646,14 @@ static ctl_table kern_table[] = { .proc_handler = &proc_dointvec, }, #endif + { + .ctl_name = KERN_VE0_PROC_ALL_TASKS, + .procname = "ve0_proc_all_tasks", + .data = &ve0_proc_all_tasks, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, { .ctl_name = KERN_PANIC_ON_OOPS, .procname = "panic_on_oops", --- ./include/linux/sysctl.h.orig 2006-07-12 16:41:01.114931424 +0400 +++ ./include/linux/sysctl.h 2006-07-11 23:26:19.000000000 +0400 @@ -141,6 +141,7 @@ enum KERN_VCPU_TIMESLICE=203, KERN_VIRT_PIDS=204, /* int: VE pids virtualization */ KERN_VIRT_OSRELEASE=205,/* virtualization of utsname.release */ + KERN_VE0_PROC_ALL_TASKS=206, /* int: show full list of task from ve0 */ }; --- ./include/linux/proc_fs.h.orig 2006-07-12 20:40:24.130991232 +0400 +++ ./include/linux/proc_fs.h 2006-07-12 20:39:20.501664360 +0400 @@ -291,4 +291,6 @@ static inline struct proc_dir_entry *PDE #define GPDE(inode) (*(struct proc_dir_entry **)(&(inode)->i_pipe)) #endif +extern int ve0_proc_all_tasks; + #endif /* _LINUX_PROC_FS_H */ --- fs/proc/base.c.orig 2006-07-12 20:43:51.298496984 +0400 +++ fs/proc/base.c 2006-07-12 20:41:45.646598976 +0400 @@ -1747,6 +1747,8 @@ static int get_tgid_list(int index, unsi int tgid = get_task_pid_ve(p, owner); if (!pid_alive(p)) continue; + if ((!ve0_proc_all_tasks) && (!ve_accessible_strict(get_exec_env(), VE_TASK_INFO(p)->owner_env))) + continue; if (--index >= 0) continue; tgids[nr_tgids] = tgid;