Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [i-g-t V2] syncobj_timeline: don't expect EINVAL for WAIT_UNSUBMITTED | WAIT_AVAILABLE
@ 2023-11-14  4:48 Bhanuprakash Modem
  2023-11-14  5:04 ` Modem, Bhanuprakash
  2023-11-14  7:43 ` Simon Ser
  0 siblings, 2 replies; 3+ messages in thread
From: Bhanuprakash Modem @ 2023-11-14  4:48 UTC (permalink / raw)
  To: igt-dev; +Cc: Simon Ser

From: Erik Kurzinger <ekurzinger@nvidia.com>

The syncobj_timeline test expects waiting for an unsubmitted fence with
the WAIT_AVAILABLE flag set to fail with EINVAL. While this matches the
behavior of current kernels, that behavior is incorrect and will be
fixed by
https://lists.freedesktop.org/archives/dri-devel/2023-August/418710.html

With that fix, the WAIT_AVAILABLE flag will have the intended semantics
of waiting for an unsubmitted fence to be submitted instead of failing.

Note that this will cause the test to fail with kernels that lack the
fix, but such failures will reflect a genuine defect.

V2: Fix testplan documentation (Bhanuprakash)

Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Acked-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Tested-by: Karolina Stolarek <karolina.stolarek@intel.com>
Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 tests/syncobj_timeline.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/tests/syncobj_timeline.c b/tests/syncobj_timeline.c
index b4e1d093a..ea8341a30 100644
--- a/tests/syncobj_timeline.c
+++ b/tests/syncobj_timeline.c
@@ -135,16 +135,16 @@
  *   Verifies that as we signal points from the host, the syncobj timeline value increments and
  *   that waits for submits/signals works properly.
  *
- * SUBTEST: invalid-multi-wait-all-available-unsubmitted
+ * SUBTEST: etime-multi-wait-all-available-unsubmitted
  * Description: Verifies waiting on a list of timeline syncobjs
  *
- * SUBTEST: invalid-multi-wait-all-available-unsubmitted-signaled
+ * SUBTEST: etime-multi-wait-all-available-unsubmitted-signaled
  * Description: Verifies waiting on a list of timeline syncobjs
  *
- * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted
+ * SUBTEST: etime-multi-wait-all-available-unsubmitted-submitted
  * Description: Verifies waiting on a list of timeline syncobjs
  *
- * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted-signaled
+ * SUBTEST: etime-multi-wait-all-available-unsubmitted-submitted-signaled
  * Description: Verifies waiting on a list of timeline syncobjs
  *
  * SUBTEST: invalid-multi-wait-all-unsubmitted
@@ -159,16 +159,16 @@
  * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted-signaled
  * Description: Verifies waiting on a list of timeline syncobjs
  *
- * SUBTEST: invalid-multi-wait-available-unsubmitted
+ * SUBTEST: etime-multi-wait-available-unsubmitted
  * Description: Verifies waiting on a list of timeline syncobjs
  *
- * SUBTEST: invalid-multi-wait-available-unsubmitted-signaled
+ * SUBTEST: multi-wait-available-unsubmitted-signaled
  * Description: Verifies waiting on a list of timeline syncobjs
  *
- * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted
+ * SUBTEST: multi-wait-available-unsubmitted-submitted
  * Description: Verifies waiting on a list of timeline syncobjs
  *
- * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted-signaled
+ * SUBTEST: multi-wait-available-unsubmitted-submitted-signaled
  * Description: Verifies waiting on a list of timeline syncobjs
  *
  * SUBTEST: invalid-multi-wait-unsubmitted
@@ -213,13 +213,13 @@
  * SUBTEST: invalid-signal-zero-handles
  * Description: Verify that signaling an empty list of syncobj handles is rejected
  *
- * SUBTEST: invalid-single-wait-all-available-unsubmitted
+ * SUBTEST: etime-single-wait-all-available-unsubmitted
  * Description: Verifies wait behavior on a single timeline syncobj
  *
  * SUBTEST: invalid-single-wait-all-unsubmitted
  * Description: Verifies wait behavior on a single timeline syncobj
  *
- * SUBTEST: invalid-single-wait-available-unsubmitted
+ * SUBTEST: etime-single-wait-available-unsubmitted
  * Description: Verifies wait behavior on a single timeline syncobj
  *
  * SUBTEST: invalid-single-wait-unsubmitted
@@ -1782,7 +1782,7 @@ igt_main
 						WAIT_SIGNALED)) != 1)
 			continue;
 
-		if ((flags & WAIT_UNSUBMITTED) && !(flags & WAIT_FOR_SUBMIT))
+		if ((flags & WAIT_UNSUBMITTED) && !((flags & WAIT_FOR_SUBMIT) || (flags & WAIT_AVAILABLE)))
 			err = -EINVAL;
 		else if (!(flags & WAIT_SIGNALED) && !((flags & WAIT_SUBMITTED) && (flags & WAIT_AVAILABLE)))
 			err = -ETIME;
@@ -1851,7 +1851,7 @@ igt_main
 			continue;
 
 		err = 0;
-		if ((flags & WAIT_UNSUBMITTED) && !(flags & WAIT_FOR_SUBMIT)) {
+		if ((flags & WAIT_UNSUBMITTED) && !((flags & WAIT_FOR_SUBMIT) || (flags & WAIT_AVAILABLE))) {
 			err = -EINVAL;
 		} else if (flags & WAIT_ALL) {
 			if (flags & (WAIT_UNSUBMITTED | WAIT_SUBMITTED))
-- 
2.40.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [igt-dev] [i-g-t V2] syncobj_timeline: don't expect EINVAL for WAIT_UNSUBMITTED | WAIT_AVAILABLE
  2023-11-14  4:48 [igt-dev] [i-g-t V2] syncobj_timeline: don't expect EINVAL for WAIT_UNSUBMITTED | WAIT_AVAILABLE Bhanuprakash Modem
@ 2023-11-14  5:04 ` Modem, Bhanuprakash
  2023-11-14  7:43 ` Simon Ser
  1 sibling, 0 replies; 3+ messages in thread
From: Modem, Bhanuprakash @ 2023-11-14  5:04 UTC (permalink / raw)
  To: igt-dev; +Cc: Simon Ser

Hi,

As there is only commit message change in this version, no need to go 
through the CI again. Hence, I am going to Skip the CI & push.

Thanks,
Bhanu

On Tue-14-11-2023 10:18 am, Bhanuprakash Modem wrote:
> From: Erik Kurzinger <ekurzinger@nvidia.com>
> 
> The syncobj_timeline test expects waiting for an unsubmitted fence with
> the WAIT_AVAILABLE flag set to fail with EINVAL. While this matches the
> behavior of current kernels, that behavior is incorrect and will be
> fixed by
> https://lists.freedesktop.org/archives/dri-devel/2023-August/418710.html
> 
> With that fix, the WAIT_AVAILABLE flag will have the intended semantics
> of waiting for an unsubmitted fence to be submitted instead of failing.
> 
> Note that this will cause the test to fail with kernels that lack the
> fix, but such failures will reflect a genuine defect.
> 
> V2: Fix testplan documentation (Bhanuprakash)
> 
> Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Acked-by: Simon Ser <contact@emersion.fr>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Tested-by: Karolina Stolarek <karolina.stolarek@intel.com>
> Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> ---
>   tests/syncobj_timeline.c | 24 ++++++++++++------------
>   1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/tests/syncobj_timeline.c b/tests/syncobj_timeline.c
> index b4e1d093a..ea8341a30 100644
> --- a/tests/syncobj_timeline.c
> +++ b/tests/syncobj_timeline.c
> @@ -135,16 +135,16 @@
>    *   Verifies that as we signal points from the host, the syncobj timeline value increments and
>    *   that waits for submits/signals works properly.
>    *
> - * SUBTEST: invalid-multi-wait-all-available-unsubmitted
> + * SUBTEST: etime-multi-wait-all-available-unsubmitted
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
> - * SUBTEST: invalid-multi-wait-all-available-unsubmitted-signaled
> + * SUBTEST: etime-multi-wait-all-available-unsubmitted-signaled
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
> - * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted
> + * SUBTEST: etime-multi-wait-all-available-unsubmitted-submitted
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
> - * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted-signaled
> + * SUBTEST: etime-multi-wait-all-available-unsubmitted-submitted-signaled
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
>    * SUBTEST: invalid-multi-wait-all-unsubmitted
> @@ -159,16 +159,16 @@
>    * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted-signaled
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
> - * SUBTEST: invalid-multi-wait-available-unsubmitted
> + * SUBTEST: etime-multi-wait-available-unsubmitted
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
> - * SUBTEST: invalid-multi-wait-available-unsubmitted-signaled
> + * SUBTEST: multi-wait-available-unsubmitted-signaled
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
> - * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted
> + * SUBTEST: multi-wait-available-unsubmitted-submitted
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
> - * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted-signaled
> + * SUBTEST: multi-wait-available-unsubmitted-submitted-signaled
>    * Description: Verifies waiting on a list of timeline syncobjs
>    *
>    * SUBTEST: invalid-multi-wait-unsubmitted
> @@ -213,13 +213,13 @@
>    * SUBTEST: invalid-signal-zero-handles
>    * Description: Verify that signaling an empty list of syncobj handles is rejected
>    *
> - * SUBTEST: invalid-single-wait-all-available-unsubmitted
> + * SUBTEST: etime-single-wait-all-available-unsubmitted
>    * Description: Verifies wait behavior on a single timeline syncobj
>    *
>    * SUBTEST: invalid-single-wait-all-unsubmitted
>    * Description: Verifies wait behavior on a single timeline syncobj
>    *
> - * SUBTEST: invalid-single-wait-available-unsubmitted
> + * SUBTEST: etime-single-wait-available-unsubmitted
>    * Description: Verifies wait behavior on a single timeline syncobj
>    *
>    * SUBTEST: invalid-single-wait-unsubmitted
> @@ -1782,7 +1782,7 @@ igt_main
>   						WAIT_SIGNALED)) != 1)
>   			continue;
>   
> -		if ((flags & WAIT_UNSUBMITTED) && !(flags & WAIT_FOR_SUBMIT))
> +		if ((flags & WAIT_UNSUBMITTED) && !((flags & WAIT_FOR_SUBMIT) || (flags & WAIT_AVAILABLE)))
>   			err = -EINVAL;
>   		else if (!(flags & WAIT_SIGNALED) && !((flags & WAIT_SUBMITTED) && (flags & WAIT_AVAILABLE)))
>   			err = -ETIME;
> @@ -1851,7 +1851,7 @@ igt_main
>   			continue;
>   
>   		err = 0;
> -		if ((flags & WAIT_UNSUBMITTED) && !(flags & WAIT_FOR_SUBMIT)) {
> +		if ((flags & WAIT_UNSUBMITTED) && !((flags & WAIT_FOR_SUBMIT) || (flags & WAIT_AVAILABLE))) {
>   			err = -EINVAL;
>   		} else if (flags & WAIT_ALL) {
>   			if (flags & (WAIT_UNSUBMITTED | WAIT_SUBMITTED))

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [igt-dev] [i-g-t V2] syncobj_timeline: don't expect EINVAL for WAIT_UNSUBMITTED | WAIT_AVAILABLE
  2023-11-14  4:48 [igt-dev] [i-g-t V2] syncobj_timeline: don't expect EINVAL for WAIT_UNSUBMITTED | WAIT_AVAILABLE Bhanuprakash Modem
  2023-11-14  5:04 ` Modem, Bhanuprakash
@ 2023-11-14  7:43 ` Simon Ser
  1 sibling, 0 replies; 3+ messages in thread
From: Simon Ser @ 2023-11-14  7:43 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

Thanks for fixing this.

Reviewed-by: Simon Ser <contact@emersion.fr>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-11-14  7:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-14  4:48 [igt-dev] [i-g-t V2] syncobj_timeline: don't expect EINVAL for WAIT_UNSUBMITTED | WAIT_AVAILABLE Bhanuprakash Modem
2023-11-14  5:04 ` Modem, Bhanuprakash
2023-11-14  7:43 ` Simon Ser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox