]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
Merge commit 'v2.6.38-rc5' into sched/core
authorIngo Molnar <mingo@elte.hu>
Wed, 16 Feb 2011 12:31:51 +0000 (13:31 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 16 Feb 2011 12:31:55 +0000 (13:31 +0100)
Merge reason: Pick up upstream fixes.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
1  2 
kernel/sched_rt.c
kernel/sysctl.c

diff --combined kernel/sched_rt.c
index c381fdc18c64c1f1d5381ed9fa665ba9e82b3f0c,ad6267714c840b2ee53154faaece04b2f2caee8a..4e108f8ecb6af954ae28bbab920d02fa58ccb716
@@@ -625,7 -625,7 +625,7 @@@ static void update_curr_rt(struct rq *r
        struct rt_rq *rt_rq = rt_rq_of_se(rt_se);
        u64 delta_exec;
  
-       if (!task_has_rt_policy(curr))
+       if (curr->sched_class != &rt_sched_class)
                return;
  
        delta_exec = rq->clock_task - curr->se.exec_start;
@@@ -1595,7 -1595,8 +1595,7 @@@ static void rq_offline_rt(struct rq *rq
   * When switch from the rt queue, we bring ourselves to a position
   * that we might want to pull RT tasks from other runqueues.
   */
 -static void switched_from_rt(struct rq *rq, struct task_struct *p,
 -                         int running)
 +static void switched_from_rt(struct rq *rq, struct task_struct *p)
  {
        /*
         * If there are other RT tasks then we will reschedule
         * we may need to handle the pulling of RT tasks
         * now.
         */
 -      if (!rq->rt.rt_nr_running)
 +      if (p->se.on_rq && !rq->rt.rt_nr_running)
                pull_rt_task(rq);
  }
  
@@@ -1623,7 -1624,8 +1623,7 @@@ static inline void init_sched_rt_class(
   * with RT tasks. In this case we try to push them off to
   * other runqueues.
   */
 -static void switched_to_rt(struct rq *rq, struct task_struct *p,
 -                         int running)
 +static void switched_to_rt(struct rq *rq, struct task_struct *p)
  {
        int check_resched = 1;
  
         * If that current running task is also an RT task
         * then see if we can move to another run queue.
         */
 -      if (!running) {
 +      if (p->se.on_rq && rq->curr != p) {
  #ifdef CONFIG_SMP
                if (rq->rt.overloaded && push_rt_task(rq) &&
                    /* Don't resched if we changed runqueues */
   * Priority of the task has changed. This may cause
   * us to initiate a push or pull.
   */
 -static void prio_changed_rt(struct rq *rq, struct task_struct *p,
 -                          int oldprio, int running)
 +static void
 +prio_changed_rt(struct rq *rq, struct task_struct *p, int oldprio)
  {
 -      if (running) {
 +      if (!p->se.on_rq)
 +              return;
 +
 +      if (rq->curr == p) {
  #ifdef CONFIG_SMP
                /*
                 * If our priority decreases while running, we
diff --combined kernel/sysctl.c
index cbfda7e2416e48a913d3a8a5cd2cb91897eb8109,0f1bd83db98523333b9fabde37d200512b20b77e..cb7c830f7faa1f8cc482ee96686512efb27746a8
@@@ -170,7 -170,8 +170,8 @@@ static int proc_taint(struct ctl_table 
  #endif
  
  #ifdef CONFIG_MAGIC_SYSRQ
- static int __sysrq_enabled; /* Note: sysrq code ises it's own private copy */
+ /* Note: sysrq code uses it's own private copy */
+ static int __sysrq_enabled = SYSRQ_DEFAULT_ENABLE;
  
  static int sysrq_sysctl_handler(ctl_table *table, int write,
                                void __user *buffer, size_t *lenp,
@@@ -360,6 -361,13 +361,6 @@@ static struct ctl_table kern_table[] = 
                .mode           = 0644,
                .proc_handler   = sched_rt_handler,
        },
 -      {
 -              .procname       = "sched_compat_yield",
 -              .data           = &sysctl_sched_compat_yield,
 -              .maxlen         = sizeof(unsigned int),
 -              .mode           = 0644,
 -              .proc_handler   = proc_dointvec,
 -      },
  #ifdef CONFIG_SCHED_AUTOGROUP
        {
                .procname       = "sched_autogroup_enabled",