[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, ¤t_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