Re: [PATCH V3 4/4] Documentation: amd-pstate: Add tbench and gitsource test introduction

From: Huang Rui
Date: Mon Oct 17 2022 - 01:28:29 EST


On Wed, Sep 14, 2022 at 02:11:05PM +0800, Meng, Li (Jassmine) wrote:
> Introduce tbench and gitsource test cases design and implementation.
> Monitor cpus changes about performance and power consumption etc.
>
> Signed-off-by: Meng Li <li.meng@xxxxxxx>
> ---
> Documentation/admin-guide/pm/amd-pstate.rst | 192 ++++++++++++++++++--
> 1 file changed, 173 insertions(+), 19 deletions(-)
>
> diff --git a/Documentation/admin-guide/pm/amd-pstate.rst b/Documentation/admin-guide/pm/amd-pstate.rst
> index 8f3d30c5a0d8..6dda74ad717c 100644
> --- a/Documentation/admin-guide/pm/amd-pstate.rst
> +++ b/Documentation/admin-guide/pm/amd-pstate.rst
> @@ -409,37 +409,55 @@ Unit Tests for amd-pstate
>
> 1. Test case decriptions
>
> + 1). basic tests

basic -> Basic

> +
> + Test prerequisite and basic functions for the ``amd-pstate`` driver.
> +
> +---------+--------------------------------+------------------------------------------------------------------------------------+
> | Index | Functions | Description |
> +=========+================================+====================================================================================+
> - | 0 | amd_pstate_ut_acpi_cpc_valid || Check whether the _CPC object is present in SBIOS. |
> + | 1 | amd_pstate_ut_acpi_cpc_valid || Check whether the _CPC object is present in SBIOS. |
> | | || |
> | | || The detail refer to `Processor Support <processor_support_>`_. |
> +---------+--------------------------------+------------------------------------------------------------------------------------+
> - | 1 | amd_pstate_ut_check_enabled || Check whether AMD P-State is enabled. |
> + | 2 | amd_pstate_ut_check_enabled || Check whether AMD P-State is enabled. |
> | | || |
> | | || AMD P-States and ACPI hardware P-States always can be supported in one processor. |
> | | | But AMD P-States has the higher priority and if it is enabled with |
> | | | :c:macro:`MSR_AMD_CPPC_ENABLE` or ``cppc_set_enable``, it will respond to the |
> | | | request from AMD P-States. |
> +---------+--------------------------------+------------------------------------------------------------------------------------+
> - | 2 | amd_pstate_ut_check_perf || Check if the each performance values are reasonable. |
> + | 3 | amd_pstate_ut_check_perf || Check if the each performance values are reasonable. |
> | | || highest_perf >= nominal_perf > lowest_nonlinear_perf > lowest_perf > 0. |
> +---------+--------------------------------+------------------------------------------------------------------------------------+
> - | 3 | amd_pstate_ut_check_freq || Check if the each frequency values and max freq when set support boost mode |
> + | 4 | amd_pstate_ut_check_freq || Check if the each frequency values and max freq when set support boost mode |
> | | | are reasonable. |
> | | || max_freq >= nominal_freq > lowest_nonlinear_freq > min_freq > 0 |
> | | || If boost is not active but supported, this maximum frequency will be larger than |
> | | | the one in ``cpuinfo``. |
> +---------+--------------------------------+------------------------------------------------------------------------------------+
>
> + 2). Tbench test
> +
> + Test and monitor the cpu changes when running tbench benchmark under the specified governor.
> + These changes include desire performance, frequency, load, performance, energy etc.
> + The specified governor is ondemand or schedutil.
> + Tbench can also be tested on the acpi-cpufreq kernel driver for comparison.

let's align the same format in this document.

acpi-cpufreq -> ``acpi-cpufreq``
amd-pstate-ut -> ``amd-pstate-ut``

Others look good for me.

Thanks,
Ray

> +
> + 3). Gitsource test
> +
> + Test and monitor the cpu changes when running gitsource benchmark under the specified governor.
> + These changes include desire performance, frequency, load, time, energy etc.
> + The specified governor is ondemand or schedutil.
> + Gitsource can also be tested on the acpi-cpufreq kernel driver for comparison.
> +
> #. How to execute the tests
>
> We use test module in the kselftest frameworks to implement it.
> We create amd-pstate-ut module and tie it into kselftest.(for
> details refer to Linux Kernel Selftests [4]_).
>
> - 1. Build
> + 1). Build
>
> + open the :c:macro:`CONFIG_X86_AMD_PSTATE` configuration option.
> + set the :c:macro:`CONFIG_X86_AMD_PSTATE_UT` configuration option to M.
> @@ -449,23 +467,159 @@ Unit Tests for amd-pstate
> $ cd linux
> $ make -C tools/testing/selftests
>
> - #. Installation & Steps ::
> + + make perf ::
> +
> + $ cd tools/perf/
> + $ make
> +
> +
> + 2). Installation & Steps ::
>
> $ make -C tools/testing/selftests install INSTALL_PATH=~/kselftest
> + $ cp tools/perf/perf /user/bin/perf
> $ sudo ./kselftest/run_kselftest.sh -c amd-pstate
> - TAP version 13
> - 1..1
> - # selftests: amd-pstate: amd-pstate-ut.sh
> - # amd-pstate-ut: ok
> - ok 1 selftests: amd-pstate: amd-pstate-ut.sh
> -
> - #. Results ::
> -
> - $ dmesg | grep "amd_pstate_ut" | tee log.txt
> - [12977.570663] amd_pstate_ut: 1 amd_pstate_ut_acpi_cpc_valid success!
> - [12977.570673] amd_pstate_ut: 2 amd_pstate_ut_check_enabled success!
> - [12977.571207] amd_pstate_ut: 3 amd_pstate_ut_check_perf success!
> - [12977.571212] amd_pstate_ut: 4 amd_pstate_ut_check_freq success!
> +
> + 3). Specified test case ::
> +
> + $ cd ~/kselftest/amd-pstate
> + $ sudo ./run.sh -t basic
> + $ sudo ./run.sh -t tbench
> + $ sudo ./run.sh -t tbench -m acpi-cpufreq
> + $ sudo ./run.sh -t gitsource
> + $ sudo ./run.sh -t gitsource -m acpi-cpufreq
> + $ ./run.sh --help
> + ./run.sh: illegal option -- -
> + Usage: ./run.sh [OPTION...]
> + [-h <help>]
> + [-o <output-file-for-dump>]
> + [-c <all: All testing,
> + basic: Basic testing,
> + tbench: Tbench testing,
> + gitsource: Gitsource testing.>]
> + [-t <tbench time limit>]
> + [-p <tbench process number>]
> + [-l <loop times for tbench>]
> + [-i <amd tracer interval>]
> + [-m <comparative test: acpi-cpufreq>]
> +
> +
> + 4). Results
> +
> + + basic
> +
> + When you finish test, you will get the following log info ::
> +
> + $ dmesg | grep "amd_pstate_ut" | tee log.txt
> + [12977.570663] amd_pstate_ut: 1 amd_pstate_ut_acpi_cpc_valid success!
> + [12977.570673] amd_pstate_ut: 2 amd_pstate_ut_check_enabled success!
> + [12977.571207] amd_pstate_ut: 3 amd_pstate_ut_check_perf success!
> + [12977.571212] amd_pstate_ut: 4 amd_pstate_ut_check_freq success!
> +
> + + tbench
> +
> + When you finish test, you will get selftest.tbench.csv and png images.
> + The selftest.tbench.csv file contains the raw data and the drop of the comparative test.
> + The png images shows the performance, energy and performan per watt of each test.
> + Open selftest.tbench.csv :
> +
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + Governor | Round | Des-perf | Freq | Load | Performance | Energy | Performance Per Watt |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + Unit | | | GHz | | MB/s | J | MB/J |
> + +=================================================+==============+==========+=========+==========+=============+=========+======================+
> + + amd-pstate-ondemand | 1 | | | | 2504.05 | 1563.67 | 158.5378 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand | 2 | | | | 2243.64 | 1430.32 | 155.2941 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand | 3 | | | | 2183.88 | 1401.32 | 154.2860 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand | Average | | | | 2310.52 | 1465.1 | 156.1268 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | 1 | 165.329 | 1.62257 | 99.798 | 2136.54 | 1395.26 | 151.5971 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | 2 | 166 | 1.49761 | 99.9993 | 2100.56 | 1380.5 | 150.6377 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | 3 | 166 | 1.47806 | 99.9993 | 2084.12 | 1375.76 | 149.9737 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | Average | 165.776 | 1.53275 | 99.9322 | 2107.07 | 1383.84 | 150.7399 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | 1 | | | | 2529.9 | 1564.4 | 160.0997 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | 2 | | | | 2249.76 | 1432.97 | 155.4297 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | 3 | | | | 2181.46 | 1406.88 | 153.5060 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | Average | | | | 2320.37 | 1468.08 | 156.4741 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | 1 | | | | 2137.64 | 1385.24 | 152.7723 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | 2 | | | | 2107.05 | 1372.23 | 152.0138 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | 3 | | | | 2085.86 | 1365.35 | 151.2433 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | Average | | | | 2110.18 | 1374.27 | 152.0136 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand VS acpi-cpufreq-schedutil | Comprison(%) | | | | -9.0584 | -6.3899 | -2.8506 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand VS amd-pstate-schedutil | Comprison(%) | | | | 8.8053 | -5.5463 | -3.4503 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand VS amd-pstate-ondemand | Comprison(%) | | | | -0.4245 | -0.2029 | -0.2219 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil VS amd-pstate-schedutil | Comprison(%) | | | | -0.1473 | 0.6963 | -0.8378 |
> + +-------------------------------------------------+--------------+----------+---------+----------+-------------+---------+----------------------+
> +
> + + gitsource
> +
> + When you finish test, you will get selftest.gitsource.csv and png images.
> + The selftest.gitsource.csv file contains the raw data and the drop of the comparative test.
> + The png images shows the performance, energy and performan per watt of each test.
> + Open selftest.gitsource.csv :
> +
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + Governor | Round | Des-perf | Freq | Load | Time | Energy | Performance Per Watt |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + Unit | | | GHz | | s | J | 1/J |
> + +=================================================+==============+==========+==========+==========+=============+=========+======================+
> + + amd-pstate-ondemand | 1 | 50.119 | 2.10509 | 23.3076 | 475.69 | 865.78 | 0.001155027 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand | 2 | 94.8006 | 1.98771 | 56.6533 | 467.1 | 839.67 | 0.001190944 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand | 3 | 76.6091 | 2.53251 | 43.7791 | 467.69 | 855.85 | 0.001168429 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand | Average | 73.8429 | 2.20844 | 41.2467 | 470.16 | 853.767 | 0.001171279 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | 1 | 165.919 | 1.62319 | 98.3868 | 464.17 | 866.8 | 0.001153668 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | 2 | 165.97 | 1.31309 | 99.5712 | 480.15 | 880.4 | 0.001135847 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | 3 | 165.973 | 1.28448 | 99.9252 | 481.79 | 867.02 | 0.001153375 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-schedutil | Average | 165.954 | 1.40692 | 99.2944 | 475.37 | 871.407 | 0.001147569 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | 1 | | | | 2379.62 | 742.96 | 0.001345967 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | 2 | | | | 441.74 | 817.49 | 0.001223256 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | 3 | | | | 455.48 | 820.01 | 0.001219497 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand | Average | | | | 425.613 | 793.487 | 0.001260260 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | 1 | | | | 459.69 | 838.54 | 0.001192548 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | 2 | | | | 466.55 | 830.89 | 0.001203528 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | 3 | | | | 470.38 | 837.32 | 0.001194286 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil | Average | | | | 465.54 | 835.583 | 0.001196769 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand VS acpi-cpufreq-schedutil | Comprison(%) | | | | 9.3810 | 5.3051 | -5.0379 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + amd-pstate-ondemand VS amd-pstate-schedutil | Comprison(%) | 124.7392 | -36.2934 | 140.7329 | 1.1081 | 2.0661 | -2.0242 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-ondemand VS amd-pstate-ondemand | Comprison(%) | | | | 10.4665 | 7.5968 | -7.0605 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
> + + acpi-cpufreq-schedutil VS amd-pstate-schedutil | Comprison(%) | | | | 2.1115 | 4.2873 | -4.1110 |
> + +-------------------------------------------------+--------------+----------+----------+----------+-------------+---------+----------------------+
>
> Reference
> ===========
> --
> 2.34.1
>