提交 f061d83a 编写于 作者: L Linus Torvalds

Merge branch 'sched-fixes-for-linus' of...

Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  sched: Fix missing kernel-doc notation
  Revert "x86, timers: Check for pending timers after (device) interrupts"
  sched: Update the clock of runqueue select_task_rq() selected
...@@ -244,7 +244,6 @@ unsigned int __irq_entry do_IRQ(struct pt_regs *regs) ...@@ -244,7 +244,6 @@ unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
__func__, smp_processor_id(), vector, irq); __func__, smp_processor_id(), vector, irq);
} }
run_local_timers();
irq_exit(); irq_exit();
set_irq_regs(old_regs); set_irq_regs(old_regs);
...@@ -269,7 +268,6 @@ void smp_generic_interrupt(struct pt_regs *regs) ...@@ -269,7 +268,6 @@ void smp_generic_interrupt(struct pt_regs *regs)
if (generic_interrupt_extension) if (generic_interrupt_extension)
generic_interrupt_extension(); generic_interrupt_extension();
run_local_timers();
irq_exit(); irq_exit();
set_irq_regs(old_regs); set_irq_regs(old_regs);
......
...@@ -198,7 +198,6 @@ void smp_reschedule_interrupt(struct pt_regs *regs) ...@@ -198,7 +198,6 @@ void smp_reschedule_interrupt(struct pt_regs *regs)
{ {
ack_APIC_irq(); ack_APIC_irq();
inc_irq_stat(irq_resched_count); inc_irq_stat(irq_resched_count);
run_local_timers();
/* /*
* KVM uses this interrupt to force a cpu out of guest mode * KVM uses this interrupt to force a cpu out of guest mode
*/ */
......
...@@ -676,6 +676,7 @@ inline void update_rq_clock(struct rq *rq) ...@@ -676,6 +676,7 @@ inline void update_rq_clock(struct rq *rq)
/** /**
* runqueue_is_locked * runqueue_is_locked
* @cpu: the processor in question.
* *
* Returns true if the current cpu runqueue is locked. * Returns true if the current cpu runqueue is locked.
* This interface allows printk to be called with the runqueue lock * This interface allows printk to be called with the runqueue lock
...@@ -2311,7 +2312,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, ...@@ -2311,7 +2312,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
{ {
int cpu, orig_cpu, this_cpu, success = 0; int cpu, orig_cpu, this_cpu, success = 0;
unsigned long flags; unsigned long flags;
struct rq *rq; struct rq *rq, *orig_rq;
if (!sched_feat(SYNC_WAKEUPS)) if (!sched_feat(SYNC_WAKEUPS))
wake_flags &= ~WF_SYNC; wake_flags &= ~WF_SYNC;
...@@ -2319,7 +2320,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, ...@@ -2319,7 +2320,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
this_cpu = get_cpu(); this_cpu = get_cpu();
smp_wmb(); smp_wmb();
rq = task_rq_lock(p, &flags); rq = orig_rq = task_rq_lock(p, &flags);
update_rq_clock(rq); update_rq_clock(rq);
if (!(p->state & state)) if (!(p->state & state))
goto out; goto out;
...@@ -2350,6 +2351,10 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, ...@@ -2350,6 +2351,10 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
set_task_cpu(p, cpu); set_task_cpu(p, cpu);
rq = task_rq_lock(p, &flags); rq = task_rq_lock(p, &flags);
if (rq != orig_rq)
update_rq_clock(rq);
WARN_ON(p->state != TASK_WAKING); WARN_ON(p->state != TASK_WAKING);
cpu = task_cpu(p); cpu = task_cpu(p);
...@@ -3656,6 +3661,7 @@ static void update_group_power(struct sched_domain *sd, int cpu) ...@@ -3656,6 +3661,7 @@ static void update_group_power(struct sched_domain *sd, int cpu)
/** /**
* update_sg_lb_stats - Update sched_group's statistics for load balancing. * update_sg_lb_stats - Update sched_group's statistics for load balancing.
* @sd: The sched_domain whose statistics are to be updated.
* @group: sched_group whose statistics are to be updated. * @group: sched_group whose statistics are to be updated.
* @this_cpu: Cpu for which load balance is currently performed. * @this_cpu: Cpu for which load balance is currently performed.
* @idle: Idle status of this_cpu * @idle: Idle status of this_cpu
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册