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

Shuah Khan
2022-05-17T20:03:14Z

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@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/
>>>
>
>>> 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