Messages in this thread Patch in this message | | | Date | Fri, 7 May 2010 18:43:10 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [PATCH 4/4] futex: Add FUTEX_LOCK with optional adaptive spinning |
| |
On Fri, 7 May 2010, Peter Zijlstra wrote:
> On Fri, 2010-05-07 at 18:30 +0200, Thomas Gleixner wrote: > > > Please keep the code as near mutex_spin_on_owner() as possible. > > > > There is no reason why we can't make that unconditional. > > > Sure, but lets do that in a separate series.
Sure. I'm not touching mutex_spin_on_owner() now. It's just for testing now.
Thanks,
tglx --- Index: linux-2.6-tip/kernel/sched.c =================================================================== --- linux-2.6-tip.orig/kernel/sched.c +++ linux-2.6-tip/kernel/sched.c @@ -841,6 +841,10 @@ static inline int task_running(struct rq static inline void prepare_lock_switch(struct rq *rq, struct task_struct *next) { +#ifdef CONFIG_SMP + next->oncpu = 1; + prev->oncpu = 0; +#endif } static inline void finish_lock_switch(struct rq *rq, struct task_struct *prev) @@ -2628,7 +2632,7 @@ void sched_fork(struct task_struct *p, i if (likely(sched_info_on())) memset(&p->sched_info, 0, sizeof(p->sched_info)); #endif -#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW) +#if defined(CONFIG_SMP) p->oncpu = 0; #endif #ifdef CONFIG_PREEMPT @@ -5250,7 +5254,7 @@ void __cpuinit init_idle(struct task_str __set_task_cpu(idle, cpu); rq->curr = rq->idle = idle; -#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW) +#if defined(CONFIG_SMP) idle->oncpu = 1; #endif raw_spin_unlock_irqrestore(&rq->lock, flags); Index: linux-2.6-tip/include/linux/sched.h =================================================================== --- linux-2.6-tip.orig/include/linux/sched.h +++ linux-2.6-tip/include/linux/sched.h @@ -1178,10 +1178,8 @@ struct task_struct { int lock_depth; /* BKL lock depth */ #ifdef CONFIG_SMP -#ifdef __ARCH_WANT_UNLOCKED_CTXSW int oncpu; #endif -#endif int prio, static_prio, normal_prio; unsigned int rt_priority;
| |