[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANQmPXhJEDwO97RBRb-XC+s_FMF6WSJjajj9CO4+wr8UqL5=Rg@mail.gmail.com>
Date: Fri, 8 Jun 2012 21:45:43 +0800
From: Chen <hi3766691@...il.com>
To: unlisted-recipients:; (no To-header on input)
Cc: linux-kernel@...r.kernel.org
Subject: Re: [patch] BFS 421: remove global runqueue lock in running tick
Still, you haven't produced any usable patch. LOL
On Fri, Jun 8, 2012 at 9:37 PM, Hillf Danton <dhillf@...il.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@...r.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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists