[PATCH i-g-t v3 5/5] tests/xe_compute_preempt: consume all ram for wmtp
Dandamudi, Priyanka
priyanka.dandamudi at intel.com
Wed Apr 9 08:39:36 UTC 2025
> -----Original Message-----
> From: Kempczynski, Zbigniew <zbigniew.kempczynski at intel.com>
> Sent: 09 April 2025 12:21 AM
> To: igt-dev at lists.freedesktop.org
> Cc: Kempczynski, Zbigniew <zbigniew.kempczynski at intel.com>; Dugast,
> Francois <francois.dugast at intel.com>; Dandamudi, Priyanka
> <priyanka.dandamudi at intel.com>
> Subject: [PATCH i-g-t v3 5/5] tests/xe_compute_preempt: consume all ram for
> wmtp
>
> When swap exists on the platform lets try to consume whole ram triggering
> wmtp and eviction.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Francois Dugast <francois.dugast at intel.com>
> Cc: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
> ---
> tests/intel/xe_compute_preempt.c | 36
> +++++++++++++++++++++++++++++++-
> 1 file changed, 35 insertions(+), 1 deletion(-)
>
> diff --git a/tests/intel/xe_compute_preempt.c
> b/tests/intel/xe_compute_preempt.c
> index f07e87d4c4..43ffb8dba3 100644
> --- a/tests/intel/xe_compute_preempt.c
> +++ b/tests/intel/xe_compute_preempt.c
> @@ -29,6 +29,12 @@
> * Description:
> * Exercise multiple walker mid thread preemption scenario
> *
> + * SUBTEST: compute-preempt-many-all-ram
> + * GPU requirement: LNL, PTL
> + * Description:
> + * Exercise multiple walker mid thread preemption scenario consuming
> + * whole ram only when there's swap on the machine
> + *
> * SUBTEST: compute-threadgroup-preempt
> * GPU requirement: LNL, PTL
> * Description:
> @@ -46,11 +52,12 @@ igt_main
> {
> int xe;
> struct drm_xe_engine_class_instance *hwe;
> - uint64_t ram_mb;
> + uint64_t ram_mb, swap_mb;
>
> igt_fixture {
> xe = drm_open_driver(DRIVER_XE);
> ram_mb = igt_get_avail_ram_mb();
> + swap_mb = igt_get_total_swap_mb();
> }
>
> igt_subtest_with_dynamic("compute-preempt") { @@ -88,6 +95,33
> @@ igt_main
> }
> }
>
> + igt_subtest_with_dynamic("compute-preempt-many-all-ram") {
> + igt_require(swap_mb > CONTEXT_MB * 10);
> +
> + xe_for_each_engine(xe, hwe) {
> + if (hwe->engine_class !=
> DRM_XE_ENGINE_CLASS_COMPUTE)
> + continue;
> +
> + igt_dynamic_f("engine-%s",
> xe_engine_class_string(hwe->engine_class)) {
> + int child_count;
> +
> + /*
> + * Get whole ram, then divide by
> + * CONTEXT_MB * 2 (long and short) job
> + */
> + child_count = ram_mb / CONTEXT_MB / 2;
> +
> + igt_debug("RAM: %zd, child count: %d\n",
> + ram_mb, child_count);
> +
> + test_compute_preempt(xe, hwe, false);
> + igt_fork(child, child_count)
> + test_compute_preempt(xe, hwe,
> false);
> + igt_waitchildren();
> + }
> + }
> + }
> +LGTM,
Reviewed-by: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
> igt_subtest_with_dynamic("compute-threadgroup-preempt") {
> xe_for_each_engine(xe, hwe) {
> if (hwe->engine_class !=
> DRM_XE_ENGINE_CLASS_COMPUTE)
> --
> 2.34.1
More information about the igt-dev
mailing list