[PATCH i-g-t v2 4/5] tests/xe_compute_preempt: adjust number of children according to ram size
Dandamudi, Priyanka
priyanka.dandamudi at intel.com
Mon Apr 7 08:49:38 UTC 2025
> -----Original Message-----
> From: Kempczynski, Zbigniew <zbigniew.kempczynski at intel.com>
> Sent: 04 April 2025 06:02 PM
> 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 v2 4/5] tests/xe_compute_preempt: adjust number of
> children according to ram size
>
> Setting arbitrary number or children is prone to oom scenario and getting test
> to be killed.
>
> Single job with sip turned on takes ~100MB for Xe2 tasks so adjust number of
> children to consume ~50% ram.
>
> 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 | 20 ++++++++++++++------
> 1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/tests/intel/xe_compute_preempt.c
> b/tests/intel/xe_compute_preempt.c
> index 876e538237..f07e87d4c4 100644
> --- a/tests/intel/xe_compute_preempt.c
> +++ b/tests/intel/xe_compute_preempt.c
> @@ -40,13 +40,18 @@ test_compute_preempt(int fd, struct
> drm_xe_engine_class_instance *hwe, bool thre
> igt_require_f(run_intel_compute_kernel_preempt(fd, hwe,
> threadgroup_preemption), "GPU not supported\n"); }
>
> +#define CONTEXT_MB 100
> +
> igt_main
> {
> int xe;
> struct drm_xe_engine_class_instance *hwe;
> + uint64_t ram_mb;
>
> - igt_fixture
> + igt_fixture {
> xe = drm_open_driver(DRIVER_XE);
> + ram_mb = igt_get_avail_ram_mb();
> + }
>
> igt_subtest_with_dynamic("compute-preempt") {
> xe_for_each_engine(xe, hwe) {
> @@ -64,13 +69,16 @@ igt_main
> continue;
>
> igt_dynamic_f("engine-%s",
> xe_engine_class_string(hwe->engine_class)) {
> - uint16_t dev_id = intel_get_drm_devid(xe);
> int child_count;
>
> - if (IS_PANTHERLAKE(dev_id))
> - child_count = 50;
> - else
> - child_count = 100;
> + /*
> + * Get half of ram / 2, then divide by
> + * CONTEXT_MB * 2 (long and short) job
> + */
> + child_count = ram_mb / 2 / CONTEXT_MB / 2;
Here it should be CONTEXT_MB* 2 or CONTEXT_MB/2 ??
-- Priyanka
> +
> + igt_debug("RAM: %zd, child count: %d\n",
> + ram_mb, child_count);
>
> test_compute_preempt(xe, hwe, false);
> igt_fork(child, child_count)
> --
> 2.34.1
More information about the igt-dev
mailing list