[igt-dev] [PATCH] tests/amdgpu: add stable pstate test

vitaly prosyak vprosyak at amd.com
Sat Sep 23 00:24:06 UTC 2023


Hi Jesse,

Please, do not add pstate test to the basic tests.

Please, create a separate file amd_pstate.c, and use conditional compilation which  depends on when such' ioctl' was added to drmlib ,

for example, into meson.build  we have this approach already.

    if libdrm_amdgpu.version().version_compare('> 2.4.99')
        amdgpu_progs +=[ 'amd_dispatch',]
    else
        warning('libdrm <= 2.4.99 found, amdgpu_cs_query_reset_state2 not applicable')
    endif

Thanks, Vitaly

On 2023-09-22 01:52, Jesse Zhang wrote:
> Signed-off-by: Jesse Zhang <Jesse.Zhang at amd.com>
> Signed-off-by: Tim Huang <tim.huang at amd.com>
> ---
>  tests/amdgpu/amd_basic.c | 43 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
>
> diff --git a/tests/amdgpu/amd_basic.c b/tests/amdgpu/amd_basic.c
> index 24c70a9f7..f23a13343 100644
> --- a/tests/amdgpu/amd_basic.c
> +++ b/tests/amdgpu/amd_basic.c
> @@ -612,6 +612,39 @@ amdgpu_sync_dependency_test(amdgpu_device_handle device_handle)
>  	free_cmd_base(base);
>  }
>  
> +#ifdef AMDGPU_CTX_OP_GET_STABLE_PSTATE
> +static void
> +amdgpu_stable_pstate_test(amdgpu_device_handle device_handle)
> +{
> +	int r;
> +	amdgpu_context_handle context_handle;
> +	uint32_t current_pstate = 0, new_pstate = 0;
> +
> +	r = amdgpu_cs_ctx_create(device_handle, &context_handle);
> +	igt_assert_eq(r, 0);
> +
> +	r = amdgpu_cs_ctx_stable_pstate(context_handle,
> +					AMDGPU_CTX_OP_GET_STABLE_PSTATE,
> +					0, &current_pstate);
> +	igt_assert_eq(r, 0);
> +	igt_assert_eq(new_pstate, AMDGPU_CTX_STABLE_PSTATE_NONE);
> +	r = amdgpu_cs_ctx_stable_pstate(context_handle,
> +					AMDGPU_CTX_OP_SET_STABLE_PSTATE,
> +					AMDGPU_CTX_STABLE_PSTATE_PEAK, NULL);
> +	igt_assert_eq(r, 0);
> +
> +	r = amdgpu_cs_ctx_stable_pstate(context_handle,
> +					AMDGPU_CTX_OP_GET_STABLE_PSTATE,
> +					0, &new_pstate);
> +	igt_assert_eq(r, 0);
> +	igt_assert_eq(new_pstate, AMDGPU_CTX_STABLE_PSTATE_PEAK);
> +
> +	r = amdgpu_cs_ctx_free(context_handle);
> +	igt_assert_eq(r, 0);
> +
> +}
> +#endif
> +
>  static void
>  amdgpu_gfx_dispatch_test_gfx(amdgpu_device_handle device_handle)
>  {
> @@ -739,6 +772,16 @@ igt_main
>  		}
>  	}
>  
> +#ifdef AMDGPU_CTX_OP_GET_STABLE_PSTATE
> +	igt_describe("Check-pstate-for-gfx-power-and-clock");
> +	igt_subtest_with_dynamic("stable-pstate-test-with-IP-SMU") {
> +		if (arr_cap[AMD_IP_GFX]) {
> +			igt_dynamic_f("stable-pstate-test")
> +			amdgpu_stable_pstate_test(device);
> +		}
> +	}
> +#endif
> +
>  	igt_fixture {
>  		amdgpu_device_deinitialize(device);
>  		drm_close_driver(fd);


More information about the igt-dev mailing list