Re: sched: current instead rq->current

From: Colin Vidal
Date: Wed Aug 17 2016 - 15:39:50 EST


On Mon, 2016-08-15 at 21:30 +0200, Colin Vidal wrote:
> Hello,
>
> At the beginning of __schedule (kernel/sched/core.c), the current
> task
> is get with rq->curr. I try to to understand why not directly using
> current instead?
>
> Since a runqueue is specific to a CPU, it dosen't make sense to get
> the
> the current task of another CPU's runqueue. Yes?
>
> I try the following of Linus's master branch
>
> -ÂÂÂÂÂÂÂint cpu;
> Â
> -ÂÂÂÂÂÂÂcpu = smp_processor_id();
> -ÂÂÂÂÂÂÂrq = cpu_rq(cpu);
> -ÂÂÂÂÂÂÂprev = rq->curr;
> +ÂÂÂÂÂÂÂrq = cpu_rq(smp_processor_id());
> +ÂÂÂÂÂÂÂprev = current;
>
> and it seems to work (only tested on x86-64), but... To simple?
>
> Thanks!
>
> Colin

I realize that I have forgotten to add scheduler subsystem in CC... So
I do it now. Sorry for double post.

Thanks

Colin