Messages in this thread | | | Date | Fri, 8 Jun 2012 21:45:43 +0800 | Subject | Re: [patch] BFS 421: remove global runqueue lock in running tick | From | Chen <> |
| |
Still, you haven't produced any usable patch. LOL
On Fri, Jun 8, 2012 at 9:37 PM, Hillf Danton <dhillf@gmail.com> wrote: > We simply deschedule current, with no bother grabbing global lock, since IPI, > if triggered by preempt, could not change our result, like no schedule when > preempt enabled. > > preempt_enable_no_resched(); > if (unlikely(need_resched())) > goto need_resched; > > > --- a/kernel/sched/bfs.c Wed Jun 6 21:02:50 2012 > +++ b/kernel/sched/bfs.c Fri Jun 8 21:17:24 2012 > @@ -2784,11 +2784,13 @@ static void task_running_tick(struct rq > } else if (rq->rq_time_slice >= RESCHED_US) > return; > > - /* p->time_slice < RESCHED_US. We only modify task_struct under grq lock */ > + /* > + * With irq disabled, current is descheduled without global lock > + * held and IPI cared. > + */ > p = rq->curr; > - grq_lock(); > - set_tsk_need_resched(p); > - grq_unlock(); > + if (!test_tsk_need_resched(p)) > + set_tsk_need_resched(p); > } > > > -- > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |