diff -urNpd linux-2.6.32.39-vs2.3.0.36.29.6.failed/fs/proc/array.c linux-2.6.32.39-vs2.3.0.36.29.6/fs/proc/array.c --- linux-2.6.32.39-vs2.3.0.36.29.6.failed/fs/proc/array.c 2011-04-23 11:08:10.000000000 -0500 +++ linux-2.6.32.39-vs2.3.0.36.29.6/fs/proc/array.c 2011-04-23 11:26:09.000000000 -0500 @@ -379,6 +379,7 @@ int proc_pid_status(struct seq_file *m, task_sig(m, task); task_cap(m, task); cpuset_task_status_allowed(m, task); + task_vs_id(m, task); task_context_switch_counts(m, task); return 0; } diff -urNpd linux-2.6.32.39-vs2.3.0.36.29.6.failed/fs/proc/base.c linux-2.6.32.39-vs2.3.0.36.29.6/fs/proc/base.c --- linux-2.6.32.39-vs2.3.0.36.29.6.failed/fs/proc/base.c 2011-04-23 11:08:10.000000000 -0500 +++ linux-2.6.32.39-vs2.3.0.36.29.6/fs/proc/base.c 2011-04-23 11:23:48.000000000 -0500 @@ -2837,7 +2837,7 @@ int proc_pid_readdir(struct file * filp, goto out_no_task; nr = filp->f_pos - FIRST_PROCESS_ENTRY; - reaper = get_proc_task(filp->f_path.dentry->d_inode); + reaper = get_proc_task_real(filp->f_path.dentry->d_inode); if (!reaper) goto out_no_task; diff -urNpd linux-2.6.32.39-vs2.3.0.36.29.6.failed/kernel/sched.c linux-2.6.32.39-vs2.3.0.36.29.6/kernel/sched.c --- linux-2.6.32.39-vs2.3.0.36.29.6.failed/kernel/sched.c 2011-04-23 11:08:10.000000000 -0500 +++ linux-2.6.32.39-vs2.3.0.36.29.6/kernel/sched.c 2011-04-23 11:26:09.000000000 -0500 @@ -9949,6 +9949,10 @@ void __init sched_init(void) global_rt_period(), global_rt_runtime()); #endif /* CONFIG_RT_GROUP_SCHED */ +#ifdef CONFIG_FAIR_GROUP_SCHED + init_cfs_bandwidth(&init_task_group); +#endif + #ifdef CONFIG_CGROUP_SCHED list_add(&init_task_group.list, &task_groups); INIT_LIST_HEAD(&init_task_group.children); diff -urNpd linux-2.6.32.39-vs2.3.0.36.29.6.failed/kernel/sched_fair.c linux-2.6.32.39-vs2.3.0.36.29.6/kernel/sched_fair.c --- linux-2.6.32.39-vs2.3.0.36.29.6.failed/kernel/sched_fair.c 2011-04-23 11:08:10.000000000 -0500 +++ linux-2.6.32.39-vs2.3.0.36.29.6/kernel/sched_fair.c 2011-04-23 11:26:09.000000000 -0500 @@ -793,14 +793,25 @@ __update_curr(struct cfs_rq *cfs_rq, str update_min_vruntime(cfs_rq); } -static void update_curr(struct cfs_rq *cfs_rq) +static void update_curr_task(struct sched_entity *curr, + unsigned long delta_exec) +{ + struct task_struct *curtask = task_of(curr); + + trace_sched_stat_runtime(curtask, delta_exec, curr->vruntime); + cpuacct_charge(curtask, delta_exec); + account_group_exec_runtime(curtask, delta_exec); +} + +static int update_curr_common(struct cfs_rq *cfs_rq, unsigned long *delta) { struct sched_entity *curr = cfs_rq->curr; - u64 now = rq_of(cfs_rq)->clock_task; + struct rq *rq = rq_of(cfs_rq); + u64 now = rq->clock_task; unsigned long delta_exec; if (unlikely(!curr)) - return; + return 1; /* * Get the amount of time the current task was running diff -urNpd linux-2.6.32.39-vs2.3.0.36.29.6.failed/Makefile linux-2.6.32.39-vs2.3.0.36.29.6/Makefile --- linux-2.6.32.39-vs2.3.0.36.29.6.failed/Makefile 2011-04-23 11:08:10.000000000 -0500 +++ linux-2.6.32.39-vs2.3.0.36.29.6/Makefile 2011-04-23 11:26:09.000000000 -0500 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 32 -EXTRAVERSION = .39 +EXTRAVERSION = .39-vs2.3.0.36.29.6 NAME = Man-Eating Seals of Antiquity # *DOCUMENTATION*