Message ID | 20220817034630.1172065-1-li.meng@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | Add unit test module for AMD P-State driver | expand |
On 8/16/22 9:46 PM, Meng Li wrote: > Hi all: > > According to shuah's review comments, update the patches based on > https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/log/?h=next > > AMD P-State unit test(amd-pstate-ut) is a kernel module for testing the > functions of amd-pstate driver. > It could import as a module to launch some test tasks. > 1) It can help all users to verify their processor support (SBIOS/ > Firmware or Hardware). > 2) Kernel can have a basic function test to avoid the kernel regression > during the update. > 3) We can introduce more functional or performance tests to align the > together, it will benefit power and performance scale optimization. > > We upstream out AMD P-state driver into Linux kernel and use this unit > test module to verify the required conditions and basic functions of > amd-pstate before integration test. > > We use test module in the kselftest frameworks to implement it. > We create amd-pstate-ut module and tie it into kselftest. > > For example: The test case aput_acpi_cpc is used to check whether the > _CPC object is exist in SBIOS. > The amd-pstate initialization will fail if the _CPC in ACPI SBIOS is not > existed at the detected processor, so it is a necessary condition. > > At present, it only implements the basic framework and some simple test > cases. > > TODO : 1) we will add more test cases to improve the depth and coverage > of the test. E.X. use the script to trigger the tbench, gitsource, > kernbench, netperf, speedometer, and etc. testing and monitor the cpu > frequency and performance goals change, power consumption at runtime. > > Please check the documentation amd-pstate.rst for details of the test > steps. > > See patch series in below git repo: > V1: https://lore.kernel.org/linux-pm/20220323071502.2674156-1-li.meng@amd.com/ > V2: https://lore.kernel.org/lkml/20220413090510.4039589-1-li.meng@amd.com/ > V3: https://lore.kernel.org/lkml/20220421074152.599419-1-li.meng@amd.com/ > V4: https://lore.kernel.org/lkml/20220427135315.3447550-1-li.meng@amd.com/ > V5: https://lore.kernel.org/lkml/20220505022913.329259-1-li.meng@amd.com/ > V6: https://lore.kernel.org/lkml/20220519134737.359290-1-li.meng@amd.com/ > V7: https://lore.kernel.org/lkml/20220522115423.1147282-1-li.meng@amd.com/ > > Changes from V1 -> V2: > - cpufreq: amd-pstate: > - - add a trailing of amd-pstate.h to MAINTAINER AMD PSTATE DRIVER. > - selftests: cpufreq: > - - add a wrapper shell script for the amd_pstate_testmod module. > - selftests: cpufreq: > - - remove amd_pstate_testmod kernel module to > .../cpufreq/amd_pstate_testmod. > - Documentation: amd-pstate: > - - amd_pstate_testmod rst document is not provided at present. > > Changes from V2 -> V3: > - cpufreq: amd-pstate: > - - adjust the order of add amd-pstate.h in MAINTAINERS. > - selftests: cpufreq: > - - remove the call of amd_pstate_testmod.sh from cpufreq Makefile to > main.sh. > - selftests: cpufreq: > - - add explain the goal or intention of the AMD P-State Unit Test > module. > - - modify comments. > - - use the checkpatch.pl to check my patches. > - - add conditions judgment before formal test. > - - delete some unnecessary test cases. > - - modify test cases about perf and performance etc. > > Changes from V3 -> V4: > - selftests: amd-pstate: > - - remove script and test module to tools/testing/selftests/amd-pstate/ > - - uniformly named amd-pstate-ut. > - - check current architectures and cpufreq driver in amd-pstate-ut.sh > - - delete codes about conditions in amd-pstate-ut.c > - Documentation: amd-pstate: > - - add introduce document about amd-pstate unit test. > > Changes from V4 -> V5: > - selftests: amd-pstate: > - - add print the current scaling_driver. > - - add amd-pstate-ut.ko into TEST_GEN_FILES. > - - move "insmod/rmmod amd-pstate-ut.ko" stuff into script > amd_pstate_ut.sh > - - add a check of read back from X86_FEATURE_CPPC in get_shared_mem(). > - Documentation: amd-pstate: > - - delete the test step about insmod/rmmod amd-pstate-ut.ko > > Changes from V5 -> V6: > - cpufreq: amd-pstate: > - - add amd-pstate-ut test codes to drivers/cpurfreq > - - add the macro CONFIG_X86_AMD_PSTATE_UT > - selftests: amd-pstate: > - - delete amd-pstate-ut test codes from > tools/testing/selftests/amd-pstate/ > > Changes from V6 -> V7: > - cpufreq: amd-pstate: > - - modify X86_AMD_PSTATE_UT dependencies and default value. > - - modify a brief description of the amd-pstate-ut module. > - - remove kselftest_module.h header include. > - - modify shortform for AMD P-State unit test. > - - add prefix for the names of test cases. > - - in the file operation log, add the file path. > - - add comments about the test cases. > - - correct syntax errors. > - selftests: amd-pstate: > - - delete TEST_GEN_FILES$(TEST_GEN_FILES): $(HEADERS) form amd-pstate > Makefile. > - - simplify the judgment about ARCH. > - - add the judgment about cpu vendor. > - - modify the method about load the amd-pstate-ut module. > - Documentation: amd-pstate: > - - update the name of the test function. > - - update kernel log about test result. > > Changes from V7 -> V8: > - cpufreq: amd-pstate: > - - amend commit message. > - - amend module description. > - Documentation: amd-pstate: > - - amend commit message. > - - Remove the personal data. > > Thanks, > Jasmine > > Meng Li (4): > cpufreq: amd-pstate: Expose struct amd_cpudata > cpufreq: amd-pstate: Add test module for amd-pstate driver > selftests: amd-pstate: Add test trigger for amd-pstate driver > Documentation: amd-pstate: Add unit test introduction > > Documentation/admin-guide/pm/amd-pstate.rst | 76 +++++ > MAINTAINERS | 1 + > drivers/cpufreq/Kconfig.x86 | 7 + > drivers/cpufreq/Makefile | 1 + > drivers/cpufreq/amd-pstate-ut.c | 293 ++++++++++++++++++ > drivers/cpufreq/amd-pstate.c | 60 +--- > include/linux/amd-pstate.h | 77 +++++ > tools/testing/selftests/Makefile | 1 + > tools/testing/selftests/amd-pstate/Makefile | 9 + > .../selftests/amd-pstate/amd-pstate-ut.sh | 55 ++++ > tools/testing/selftests/amd-pstate/config | 1 + > 11 files changed, 522 insertions(+), 59 deletions(-) > create mode 100644 drivers/cpufreq/amd-pstate-ut.c > create mode 100644 include/linux/amd-pstate.h > create mode 100644 tools/testing/selftests/amd-pstate/Makefile > create mode 100755 tools/testing/selftests/amd-pstate/amd-pstate-ut.sh > create mode 100644 tools/testing/selftests/amd-pstate/config > Rafael, Viresh, I plan to apply these patches to linux-kselftest next for Linux 6.1 Please let me know if you have any objections. thanks, -- Shuah