forked from luck/tmp_suning_uos_patched
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: Reassign prev and switch_count when reacquire_kernel_lock() fail sched: Fix vmark regression on big machines
This commit is contained in:
commit
341031caec
@ -99,7 +99,7 @@ int arch_update_cpu_topology(void);
|
||||
| 1*SD_WAKE_AFFINE \
|
||||
| 1*SD_SHARE_CPUPOWER \
|
||||
| 0*SD_POWERSAVINGS_BALANCE \
|
||||
| 0*SD_SHARE_PKG_RESOURCES \
|
||||
| 1*SD_SHARE_PKG_RESOURCES \
|
||||
| 0*SD_SERIALIZE \
|
||||
| 0*SD_PREFER_SIBLING \
|
||||
, \
|
||||
|
@ -5530,8 +5530,11 @@ asmlinkage void __sched schedule(void)
|
||||
|
||||
post_schedule(rq);
|
||||
|
||||
if (unlikely(reacquire_kernel_lock(current) < 0))
|
||||
if (unlikely(reacquire_kernel_lock(current) < 0)) {
|
||||
prev = rq->curr;
|
||||
switch_count = &prev->nivcsw;
|
||||
goto need_resched_nonpreemptible;
|
||||
}
|
||||
|
||||
preempt_enable_no_resched();
|
||||
if (need_resched())
|
||||
|
@ -1508,7 +1508,7 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag
|
||||
* If there's an idle sibling in this domain, make that
|
||||
* the wake_affine target instead of the current cpu.
|
||||
*/
|
||||
if (tmp->flags & SD_PREFER_SIBLING)
|
||||
if (tmp->flags & SD_SHARE_PKG_RESOURCES)
|
||||
target = select_idle_sibling(p, tmp, target);
|
||||
|
||||
if (target >= 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user