Sat, 23 Apr 2011 22:04:55 -0500
applying patch-2.6.32.28-vs2.3.0.36.29.6.diff to 2.6.32.39 generated the
following rejects:
fs/proc/array.c
* removal of CONFIG_S390 (from patch context)
fs/proc/base.c
* reaper variable initialization delayed until after validity check(s)
kernel/sched.c
* removal of USER_SCHED (from patch context)
kernel/sched_fair.c
* clock => clock_task (due to addition of IRQ_TIME_ACCOUNTING)
kernel/user.c
* removal of USER_SCHED (and this file)
the attached patch applies the failed patches.
instructions
1. apply patch-2.6.32.28-vs2.3.0.36.29.6.diff to 2.6.32.39
2. apply attached patch-2.6.32.28-39-vs2.3.0.36.29.6-fixes.diff to
2.6.32.39-vs2.3.0.36.29.6
tests
1. compile
2. testme.sh
3. testfs.sh (ext[234])
4. cgroups (cpu.shares)
corey
--
undefined@pobox.com
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*