Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1198823 > unrolled thread

Re: [PATCH 04/10] nohz: Remove useless argument on tick_nohz_task_switch()

Started byPeter Zijlstra <peterz@infradead.org>
First post2015-08-03 14:50 +0200
Last post2015-08-03 15:10 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 04/10] nohz: Remove useless argument on  tick_nohz_task_switch() Peter Zijlstra <peterz@infradead.org> - 2015-08-03 14:50 +0200
    Re: [PATCH 04/10] nohz: Remove useless argument on  tick_nohz_task_switch() Frederic Weisbecker <fweisbec@gmail.com> - 2015-08-03 15:00 +0200
      Re: [PATCH 04/10] nohz: Remove useless argument on  tick_nohz_task_switch() Peter Zijlstra <peterz@infradead.org> - 2015-08-03 15:10 +0200

#1198823 — Re: [PATCH 04/10] nohz: Remove useless argument on tick_nohz_task_switch()

FromPeter Zijlstra <peterz@infradead.org>
Date2015-08-03 14:50 +0200
SubjectRe: [PATCH 04/10] nohz: Remove useless argument on tick_nohz_task_switch()
Message-ID<pTnlL-3kJ-21@gated-at.bofh.it>
On Thu, Jul 23, 2015 at 06:42:09PM +0200, Frederic Weisbecker wrote:
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 78b4bad10..4d34035 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -2489,7 +2489,7 @@ static struct rq *finish_task_switch(struct task_struct *prev)
>  		put_task_struct(prev);
>  	}
>  
> -	tick_nohz_task_switch(current);
> +	tick_nohz_task_switch();
>  	return rq;
>  }

OK, so I just noticed this one. Please explain? WTF does it make sense
to have per task tick state?

If we have >1 tasks, we need the tick. If we have 1 task, per-task ==
per-cpu.

So what gives?
--
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/

[toc] | [next] | [standalone]


#1198833

FromFrederic Weisbecker <fweisbec@gmail.com>
Date2015-08-03 15:00 +0200
Message-ID<pTnvr-3w4-9@gated-at.bofh.it>
In reply to#1198823
On Mon, Aug 03, 2015 at 02:39:59PM +0200, Peter Zijlstra wrote:
> On Thu, Jul 23, 2015 at 06:42:09PM +0200, Frederic Weisbecker wrote:
> > diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> > index 78b4bad10..4d34035 100644
> > --- a/kernel/sched/core.c
> > +++ b/kernel/sched/core.c
> > @@ -2489,7 +2489,7 @@ static struct rq *finish_task_switch(struct task_struct *prev)
> >  		put_task_struct(prev);
> >  	}
> >  
> > -	tick_nohz_task_switch(current);
> > +	tick_nohz_task_switch();
> >  	return rq;
> >  }
> 
> OK, so I just noticed this one. Please explain? WTF does it make sense
> to have per task tick state?
> 
> If we have >1 tasks, we need the tick. If we have 1 task, per-task ==
> per-cpu.
> 
> So what gives?

tick_nohz_task_switch() is removed in the end of the patchset. There is no
more per task dependency after this specific set.

Now we just had a talk with Chris about Posix cpu timers whose tick dependency
turned from per-task/per-process to global dependency. When a posix timer is
queued somewhere, we keep the tick everywhere (still talking about this patchset,
not linus tree).

Since some nohz full users may still want to run posix timers on housekeepers,
I'll turn it to a per task dependency again. But this context switch call will
still be removed and the scheduler tick dependency stays a per-cpu dependency
and not a task one.
--
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/

[toc] | [prev] | [next] | [standalone]


#1198838

FromPeter Zijlstra <peterz@infradead.org>
Date2015-08-03 15:10 +0200
Message-ID<pTnF8-3WH-13@gated-at.bofh.it>
In reply to#1198833
On Mon, Aug 03, 2015 at 02:49:54PM +0200, Frederic Weisbecker wrote:
> On Mon, Aug 03, 2015 at 02:39:59PM +0200, Peter Zijlstra wrote:
> > On Thu, Jul 23, 2015 at 06:42:09PM +0200, Frederic Weisbecker wrote:
> > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> > > index 78b4bad10..4d34035 100644
> > > --- a/kernel/sched/core.c
> > > +++ b/kernel/sched/core.c
> > > @@ -2489,7 +2489,7 @@ static struct rq *finish_task_switch(struct task_struct *prev)
> > >  		put_task_struct(prev);
> > >  	}
> > >  
> > > -	tick_nohz_task_switch(current);
> > > +	tick_nohz_task_switch();
> > >  	return rq;
> > >  }
> > 
> > OK, so I just noticed this one. Please explain? WTF does it make sense
> > to have per task tick state?
> > 
> > If we have >1 tasks, we need the tick. If we have 1 task, per-task ==
> > per-cpu.
> > 
> > So what gives?
> 
> tick_nohz_task_switch() is removed in the end of the patchset. There is no
> more per task dependency after this specific set.

OK, I'll keep reading ;-)
--
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/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web