The Processor Utilzation of Resource Registers (PURR) provide an estimate of
resources used by a cpu thread. Section 7.6 in Book III of the ISA outlines
how to calculate the percentage of shared resources for threads using the
ratio of the PURR delta and Timebase Register delta for a sampled period.
This calculation is currently done erroneously by the lparstat tool from the
powerpc-utils package. This patch exports the current timebase value after
we sample the PURRs and exposes it to userspace accounting tools via
/proc/ppc64/lparcfg.
Signed-off-by: Tyrel Datwyler <redacted>
---
arch/powerpc/platforms/pseries/lparcfg.c | 1 +
1 file changed, 1 insertion(+)
@@ -475,6 +475,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)splpar_dispatch_data(m);seq_printf(m,"purr=%ld\n",get_purr());+seq_printf(m,"tbr=%ld\n",mftb());}else{/* non SPLPAR case */seq_printf(m,"system_active_processors=%d\n",
Ping? Any objections to this patch? A fix is already upstream in powerpc-utils
to utilize the timebase value if available.
-Tyrel
On 12/08/2018 03:48 PM, Tyrel Datwyler wrote:
quoted hunk
The Processor Utilzation of Resource Registers (PURR) provide an estimate of
resources used by a cpu thread. Section 7.6 in Book III of the ISA outlines
how to calculate the percentage of shared resources for threads using the
ratio of the PURR delta and Timebase Register delta for a sampled period.
This calculation is currently done erroneously by the lparstat tool from the
powerpc-utils package. This patch exports the current timebase value after
we sample the PURRs and exposes it to userspace accounting tools via
/proc/ppc64/lparcfg.
Signed-off-by: Tyrel Datwyler <redacted>
---
arch/powerpc/platforms/pseries/lparcfg.c | 1 +
1 file changed, 1 insertion(+)
@@ -475,6 +475,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)splpar_dispatch_data(m);seq_printf(m,"purr=%ld\n",get_purr());+seq_printf(m,"tbr=%ld\n",mftb());}else{/* non SPLPAR case */seq_printf(m,"system_active_processors=%d\n",
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2019-02-18 02:35:14
Tyrel Datwyler [off-list ref] writes:
Ping? Any objections to this patch? A fix is already upstream in powerpc-utils
to utilize the timebase value if available.
I'm slightly wary of adding things to lparcfg as it's world-readable and
hard to remove things once they're added (because tools rely on it).
But I guess this is fine.
If we ever want to restrict mftb access then we need to remember to also
lock down this file, or reduce the precision it returns.
cheers
On 12/08/2018 03:48 PM, Tyrel Datwyler wrote:
quoted
The Processor Utilzation of Resource Registers (PURR) provide an estimate of
resources used by a cpu thread. Section 7.6 in Book III of the ISA outlines
how to calculate the percentage of shared resources for threads using the
ratio of the PURR delta and Timebase Register delta for a sampled period.
This calculation is currently done erroneously by the lparstat tool from the
powerpc-utils package. This patch exports the current timebase value after
we sample the PURRs and exposes it to userspace accounting tools via
/proc/ppc64/lparcfg.
Signed-off-by: Tyrel Datwyler <redacted>
---
arch/powerpc/platforms/pseries/lparcfg.c | 1 +
1 file changed, 1 insertion(+)
@@ -475,6 +475,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)splpar_dispatch_data(m);seq_printf(m,"purr=%ld\n",get_purr());+seq_printf(m,"tbr=%ld\n",mftb());}else{/* non SPLPAR case */seq_printf(m,"system_active_processors=%d\n",
From: Michael Ellerman <hidden> Date: 2019-02-22 09:56:54
On Sat, 2018-12-08 at 23:48:27 UTC, Tyrel Datwyler wrote:
The Processor Utilzation of Resource Registers (PURR) provide an estimate of
resources used by a cpu thread. Section 7.6 in Book III of the ISA outlines
how to calculate the percentage of shared resources for threads using the
ratio of the PURR delta and Timebase Register delta for a sampled period.
This calculation is currently done erroneously by the lparstat tool from the
powerpc-utils package. This patch exports the current timebase value after
we sample the PURRs and exposes it to userspace accounting tools via
/proc/ppc64/lparcfg.
Signed-off-by: Tyrel Datwyler <redacted>