Re: [PATCH V5 0/3] Add unit test module for AMD P-State driver

From: Shuah Khan
Date: Tue May 17 2022 - 16:03:14 EST


On 5/17/22 8:45 AM, Shuah Khan wrote:
On 5/5/22 12:41 AM, Huang Rui wrote:
On Thu, May 05, 2022 at 10:29:10AM +0800, Meng, Li (Jassmine) wrote:
Hi all:

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.

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@xxxxxxx/
V2: https://lore.kernel.org/lkml/20220413090510.4039589-1-li.meng@xxxxxxx/
V3: https://lore.kernel.org/lkml/20220421074152.599419-1-li.meng@xxxxxxx/
V4: https://lore.kernel.org/lkml/20220427135315.3447550-1-li.meng@xxxxxxx/


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

Thanks,
Jasmine


Sorry for the delay on this. I will review the series in the next couple
of days.

Did you consider using KUnit for this? I think asked that question when
reviewing the previous version.


I reviewed the patches and the test driver amd-pstate-ut doesn't belong under
selftests. I would recommend the following approach:

- add this test driver under drivers/cpufreq

- KUnit is a better fit for this unit test driver unless you want
to be able to run this without KUnit configured

- add the test script under selftests - the script then can load the
test driver and run tests and unload the driver.

thanks,
-- Shuah