OpenCloudOS-Kernel/arch/powerpc/platforms
Shrikanth Hegde 760f0f9d85 powerpc/pseries: fix accuracy of stolen time
commit cbecc9fcbbec60136b0180ba0609c829afed5c81 upstream.

powerVM hypervisor updates the VPA fields with stolen time data.
It currently reports enqueue_dispatch_tb and ready_enqueue_tb for
this purpose. In linux these two fields are used to report the stolen time.

The VPA fields are updated at the TB frequency. On powerPC its mostly
set at 512Mhz. Hence this needs a conversion to ns when reporting it
back as rest of the kernel timings are in ns. This conversion is already
handled in tb_to_ns function. So use that function to report accurate
stolen time.

Observed this issue and used an Capped Shared Processor LPAR(SPLPAR) to
simplify the experiments. In all these cases, 100% VP Load is run using
stress-ng workload. Values of stolen time is in percentages as reported
by mpstat. With the patch values are close to expected.

		6.8.rc1		+Patch
12EC/12VP	   0.0		   0.0
12EC/24VP	  25.7		  50.2
12EC/36VP	  37.3		  69.2
12EC/48VP	  38.5		  78.3

Fixes: 0e8a631328 ("powerpc/pseries: Implement CONFIG_PARAVIRT_TIME_ACCOUNTING")
Cc: stable@vger.kernel.org # v6.1+
Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240213052635.231597-1-sshegde@linux.ibm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 09:25:09 +01:00
..
4xx powerpc/4xx: Add missing includes to fix no previous prototype errors 2023-08-18 17:03:15 +10:00
8xx TTY/Serial driver changes for 6.6-rc1 2023-09-01 09:38:00 -07:00
40x powerpc updates for 6.4 2023-04-28 16:24:32 -07:00
44x powerpc/44x: select I2C for CURRITUCK 2024-01-25 15:35:12 -08:00
52xx powerpc: Explicitly include correct DT includes 2023-08-02 22:22:19 +10:00
82xx powerpc/82xx: Select FSL_SOC 2023-09-18 12:23:48 +10:00
83xx powerpc/83xx: Split usb.c 2023-08-18 17:03:14 +10:00
85xx powerpc updates for 6.6 2023-08-31 12:43:10 -07:00
86xx powerpc: address missing-prototypes warnings 2023-08-02 22:22:19 +10:00
512x powerpc/512x: Make mpc512x_select_reset_compat() static 2023-08-18 17:02:40 +10:00
amigaone powerpc: Make generic_calibrate_decr() the default 2023-03-16 08:56:48 +11:00
book3s powerpc/vas: Limit open window failure messages in log bufffer 2023-11-20 11:59:28 +01:00
cell powerpc updates for 6.6 2023-08-31 12:43:10 -07:00
chrp powerpc: Make generic_calibrate_decr() the default 2023-03-16 08:56:48 +11:00
embedded6xx powerpc: Explicitly include correct DT includes 2023-08-02 22:22:19 +10:00
maple powerpc: Explicitly include correct DT includes 2023-08-02 22:22:19 +10:00
microwatt powerpc: Make generic_calibrate_decr() the default 2023-03-16 08:56:48 +11:00
pasemi powerpc: address missing-prototypes warnings 2023-08-02 22:22:19 +10:00
powermac powerpc updates for 6.6 2023-08-31 12:43:10 -07:00
powernv powerpc/powernv: Add a null pointer check in opal_powercap_init() 2024-01-25 15:35:13 -08:00
ps3 powerpc/ps3: refactor strncpy usage 2023-08-18 11:48:42 +10:00
pseries powerpc/pseries: fix accuracy of stolen time 2024-02-23 09:25:09 +01:00
Kconfig powerpc/82xx: Remove CONFIG_8260 and CONFIG_8272 2023-08-18 17:03:14 +10:00
Kconfig.cputype powerpc updates for 6.6 2023-08-31 12:43:10 -07:00
Makefile powerpc: Add Microwatt platform 2021-06-21 21:15:26 +10:00
fsl_uli1575.c powerpc/fsl_uli1575: Mark uli_exclude_device() as static 2023-04-20 10:20:50 +10:00