LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
To: Shrikanth Hegde <sshegde@linux.ibm.com>,
	maddy@linux.ibm.com, linuxppc-dev@lists.ozlabs.org,
	christophe.leroy@csgroup.eu
Cc: frederic@kernel.org
Subject: Re: [PATCH] powerpc/vtime: Initialize starttime at boot for native accounting
Date: Thu, 4 Jun 2026 16:51:14 +0200	[thread overview]
Message-ID: <e69ad352-6835-414b-845b-03f45fdd9a45@kernel.org> (raw)
In-Reply-To: <20260604132429.297665-1-sshegde@linux.ibm.com>



Le 04/06/2026 à 15:24, Shrikanth Hegde a écrit :
> It was observed that /proc/stat had very large value for one ore more
> CPUs. It was more visible after recent code simplifications around
> cpustats.
> 
> System has 240 CPUs.
> 
> cat /proc/uptime;
> 194.18 46500.55
> cat /proc/stat
> cpu  5966 39 837032887 4650070 164 185 100 0 0 0
> cpu0 108 0 837030890 19109 24 4 23 0 0 0
> 
> Since uptime is 194s, system time of each CPU can't be more than 19400.
> Sum of system time  of all CPUs can't be more than 19400*240 4656000.
> In fact huge value is close to mftb(). Note mftb doesn't reset on powerVM
> when the LPAR restart. It only resets when whole system resets. The same
> issue exists for kexec too.
> 
> This happens since starttime is not setup at init time. Once it is set
> then subsequent vtime_delta will return the right delta.
> 
> Fix it by initializing the starttime during CPU initialization. This
> fixes the large times seen.
> 
> cat /proc/uptime; cat /proc/stat
> 15.78 3694.63
> cpu  6035 35 1347 369479 23 144 49 0 0 0
> cpu0 19 0 38 1508 0 1 14 0 0 0
> 
> Now, system time is reported as expected.
> 
> Suggested-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
> Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>

Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>

> ---
> 
> Christophe, I have taken the patch as is from the discussion we had.
> Let me know if i should send it with your signed-off-by tag. I have just
> written the changelog. I sent it like this since tag was not there.

Suggested-by is fine for me.

> 
> discussion thread:
> https://lore.kernel.org/all/cd10be19-e0bc-4e0c-8dac-4f1c05d0de8f@kernel.org/
> 
> Also, does this warrant Fixes tag? I found these two likely candidates.
> Likely this issues exists since beginning.
> c223c90386bc powerpc32: provide VIRT_CPU_ACCOUNTING

You say system has 240 CPU so I suppose this is not ppc32. That commit 
wsa not supposed to change anything for ppc64, did you identify anything 
special in that commit related to ppc64 ?

> b38a181c11d0 powerpc/time: isolate scaled cputime accounting in dedicated functions.

This one is also pure code re-organisation, unless you've been able to 
spot a particular issue ?

> 
>   arch/powerpc/kernel/time.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
> index 3460d1a5a97c..11145c40183d 100644
> --- a/arch/powerpc/kernel/time.c
> +++ b/arch/powerpc/kernel/time.c
> @@ -377,7 +377,6 @@ void vtime_task_switch(struct task_struct *prev)
>   	}
>   }
>   
> -#ifdef CONFIG_NO_HZ_COMMON
>   /**
>    * vtime_reset - Fast forward vtime entry clocks
>    *
> @@ -394,6 +393,7 @@ void vtime_reset(void)
>   #endif
>   }
>   
> +#ifdef CONFIG_NO_HZ_COMMON
>   /**
>    * vtime_dyntick_start - Inform vtime about entry to idle-dynticks
>    *
> @@ -933,6 +933,7 @@ static void __init set_decrementer_max(void)
>   static void __init init_decrementer_clockevent(void)
>   {
>   	register_decrementer_clockevent(smp_processor_id());
> +	vtime_reset();
>   }
>   
>   void secondary_cpu_time_init(void)
> @@ -948,6 +949,7 @@ void secondary_cpu_time_init(void)
>   	/* FIME: Should make unrelated change to move snapshot_timebase
>   	 * call here ! */
>   	register_decrementer_clockevent(smp_processor_id());
> +	vtime_reset();
>   }
>   
>   /*



  reply	other threads:[~2026-06-04 14:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-04 13:24 [PATCH] powerpc/vtime: Initialize starttime at boot for native accounting Shrikanth Hegde
2026-06-04 14:51 ` Christophe Leroy (CS GROUP) [this message]
2026-06-04 15:12   ` Christophe Leroy (CS GROUP)
2026-06-05  3:03     ` Shrikanth Hegde
2026-06-05  5:32       ` Christophe Leroy (CS GROUP)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e69ad352-6835-414b-845b-03f45fdd9a45@kernel.org \
    --to=chleroy@kernel.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=frederic@kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maddy@linux.ibm.com \
    --cc=sshegde@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox