public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] docs/scheduler: Change unit of cpu_time and rq_time to nanoseconds
       [not found] <1649410266-32360-1-git-send-email-brookxu.cn@gmail.com>
@ 2022-04-08 12:45 ` Matthew Wilcox
  2022-04-08 13:43   ` Peter Zijlstra
  0 siblings, 1 reply; 3+ messages in thread
From: Matthew Wilcox @ 2022-04-08 12:45 UTC (permalink / raw)
  To: brookxu.cn
  Cc: corbet, linux-doc, linux-kernel, Ingo Molnar, Peter Zijlstra,
	Juri Lelli, Vincent Guittot, Dietmar Eggemann, Steven Rostedt,
	Ben Segall, Mel Gorman, Daniel Bristot de Oliveira

On Fri, Apr 08, 2022 at 05:31:06PM +0800, brookxu.cn wrote:
> From: Chunguang Xu <brookxu@tencent.com>
> 
> In the current implementation, cpu_time and rq_time should be
> in nanoseconds, so this document needs to be modified.

I agree that this is wrong, but we shouldn't be changing the units
of measurement reported to userspace without changing the schedstats
version.  I suspect this was an inadvertent change, and we should be
converting from sched_clock() time (~= ns) to jiffies in show_schedstat().
Adding scheduler experts.

> Signed-off-by: Chunguang Xu <brookxu@tencent.com>
> ---
>  Documentation/scheduler/sched-stats.rst | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/scheduler/sched-stats.rst b/Documentation/scheduler/sched-stats.rst
> index dd9b99a..9078a27 100644
> --- a/Documentation/scheduler/sched-stats.rst
> +++ b/Documentation/scheduler/sched-stats.rst
> @@ -56,9 +56,9 @@ Next two are try_to_wake_up() statistics:
>  
>  Next three are statistics describing scheduling latency:
>  
> -     7) sum of all time spent running by tasks on this processor (in jiffies)
> +     7) sum of all time spent running by tasks on this processor (in nanoseconds)
>       8) sum of all time spent waiting to run by tasks on this processor (in
> -        jiffies)
> +        nanoseconds)
>       9) # of timeslices run on this cpu
>  
>  
> -- 
> 1.8.3.1
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] docs/scheduler: Change unit of cpu_time and rq_time to nanoseconds
  2022-04-08 12:45 ` [PATCH] docs/scheduler: Change unit of cpu_time and rq_time to nanoseconds Matthew Wilcox
@ 2022-04-08 13:43   ` Peter Zijlstra
  2022-04-16  8:36     ` Jonathan Corbet
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Zijlstra @ 2022-04-08 13:43 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: brookxu.cn, corbet, linux-doc, linux-kernel, Ingo Molnar,
	Juri Lelli, Vincent Guittot, Dietmar Eggemann, Steven Rostedt,
	Ben Segall, Mel Gorman, Daniel Bristot de Oliveira

On Fri, Apr 08, 2022 at 01:45:35PM +0100, Matthew Wilcox wrote:
> On Fri, Apr 08, 2022 at 05:31:06PM +0800, brookxu.cn wrote:
> > From: Chunguang Xu <brookxu@tencent.com>
> > 
> > In the current implementation, cpu_time and rq_time should be
> > in nanoseconds, so this document needs to be modified.
> 
> I agree that this is wrong, but we shouldn't be changing the units
> of measurement reported to userspace without changing the schedstats
> version.  I suspect this was an inadvertent change, and we should be
> converting from sched_clock() time (~= ns) to jiffies in show_schedstat().
> Adding scheduler experts.

Seems to have happend at 425e0968a25f ("sched: move code into
kernel/sched_stats.h").

Before that we have:

-static inline void
-rq_sched_info_depart(struct rq *rq, unsigned long delta_jiffies)
-{
-       if (rq)
-               rq->rq_sched_info.cpu_time += delta_jiffies;
-}

-static inline void sched_info_depart(struct task_struct *t)
-{
-       unsigned long delta_jiffies = jiffies - t->sched_info.last_arrival;
-
-       t->sched_info.cpu_time += delta_jiffies;
-       rq_sched_info_depart(task_rq(t), delta_jiffies);
-}

afterwards we have:

+static inline void sched_info_depart(struct task_struct *t)
+{
+       unsigned long long delta = sched_clock() - t->sched_info.last_arrival;
+
+       t->sched_info.cpu_time += delta;
+       rq_sched_info_depart(task_rq(t), delta);
+}

And that's 15 years and at least one SCHEDSTAT_VERSION ago (although
this change itself didn't bump the version).

So I'm thinking we can update the documentation and forget about this.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] docs/scheduler: Change unit of cpu_time and rq_time to nanoseconds
  2022-04-08 13:43   ` Peter Zijlstra
@ 2022-04-16  8:36     ` Jonathan Corbet
  0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Corbet @ 2022-04-16  8:36 UTC (permalink / raw)
  To: Peter Zijlstra, Matthew Wilcox
  Cc: brookxu.cn, linux-doc, linux-kernel, Ingo Molnar, Juri Lelli,
	Vincent Guittot, Dietmar Eggemann, Steven Rostedt, Ben Segall,
	Mel Gorman, Daniel Bristot de Oliveira

Peter Zijlstra <peterz@infradead.org> writes:

> And that's 15 years and at least one SCHEDSTAT_VERSION ago (although
> this change itself didn't bump the version).
>
> So I'm thinking we can update the documentation and forget about this.

OK, I've applied the patch, thanks.

jon

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-04-16  8:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1649410266-32360-1-git-send-email-brookxu.cn@gmail.com>
2022-04-08 12:45 ` [PATCH] docs/scheduler: Change unit of cpu_time and rq_time to nanoseconds Matthew Wilcox
2022-04-08 13:43   ` Peter Zijlstra
2022-04-16  8:36     ` Jonathan Corbet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox