-----Original Message----- From: Randhawa, Jagmeet <jagmeet.randhawa@intel.com> Sent: Tuesday, October 22, 2024 1:12 PM Cc: igt-dev@lists.freedesktop.org; Cavitt, Jonathan <jonathan.cavitt@intel.com>; Zuo, Alex <alex.zuo@intel.com>; Konieczny, Kamil <kamil.konieczny@intel.com>; Randhawa, Jagmeet <jagmeet.randhawa@intel.com> Subject: [PATCH] [i-g-t] tests/intel/xe_vm:Reduce n_execs for bind-array-enobufsThe bind-array-enobufs test in xe_vm.c is intended to trigger an -ENOBUFS error by submitting an oversized bind array. After encountering and handling the error, the test reduces n_execs by half and retries the operation. On some environments with stricter resource limits (e.g. simulator),Is it "just" simulator this is an issue on? Because if so, we could probably use igt_run_in_simulation() to narrow the scope: """ xe_cork_fini(&cork); - n_execs = n_execs / 2; + n_execs /= igt_run_in_simulation() ? 4 : 2; } """ If not, then Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> -Jonathan Cavitt
Thank you for your comment and review Jonathan. Oddly when I tested the following line
"n_execs /= igt_run_in_simulation() ? 4 : 2;" The test fails as it was before the original patch was sent
so I suspect igt_run_in_simulation() is returning false and we are taking the "2" integer in this case.
I believe it is just simulator we are facing this issue on, however I think leaving the code as
"n_execs = n_execs / 4;" doesn't do any harm if we run it on any other platform such as hardware , as it does not affect the basis of the test which is to trigger enobufs error, handle it, and then run with less n_execs to pass on the next iterations. This patch will just accelerate the test on hardware. If this works with you, may I ask if I still have your reviewed-by? I can change it and investigate if you feel strongly about it. Thanks again. Jagmeet
halving n_execs isn't sufficient to prevent the ENOBUFS error on the retry. Reducing n_execs further to n_execs / 4 allows the test to pass successfully. This patch modifies the test to reduce n_execs to n_execs / 4 after an ENOBUFS error is handled. This ensures compatibility with environments that have tighter resource constraints while maintaining the test's integrity. Cc: Jonathan Cavitt <jonathan.cavitt@intel.com> Signed-off-by: Jagmeet Randhawa <jagmeet.randhawa@intel.com> --- tests/intel/xe_vm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/intel/xe_vm.c b/tests/intel/xe_vm.c index 7a8740b69..e78ddd0e5 100644 --- a/tests/intel/xe_vm.c +++ b/tests/intel/xe_vm.c @@ -957,7 +957,7 @@ test_bind_array(int fd, struct drm_xe_engine_class_instance *eci, int n_execs, xe_cork_end(&cork); xe_cork_wait_done(&cork); xe_cork_fini(&cork); - n_execs = n_execs / 2; + n_execs = n_execs / 4; } xe_vm_bind_array(fd, vm, bind_exec_queue, bind_ops, n_execs, sync, 1); -- 2.34.1