[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
Wed Apr 9 08:47:03 UTC 2025
LGTM,
Reviewed-by: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
> -----Original Message-----
> From: Dandamudi, Priyanka
> Sent: 07 April 2025 02:20 PM
> To: Kempczynski, Zbigniew <Zbigniew.Kempczynski at intel.com>; igt-
> dev at lists.freedesktop.org
> Cc: Dugast, Francois <Francois.Dugast at intel.com>
> Subject: RE: [PATCH i-g-t v2 4/5] tests/xe_compute_preempt: adjust number
> of children according to ram size
>
>
>
> > -----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