Skip to contentSkip to conversation

igt: add timeline test cases

PATCH In review Chunming Zhou 6 participants 7 messages Dec 7, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 igt: add timeline test cases

---
 include/drm-uapi/drm.h   |   33 ++
 lib/igt_syncobj.c        |  204 +++++++
 lib/igt_syncobj.h        |   19 +
 tests/meson.build        |    1 +
 tests/syncobj_timeline.c | 1100 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 1357 insertions(+)
 create mode 100644 tests/syncobj_timeline.c
include/drm-uapi/drm.h +33 -0
index f0bd91de..0f5df0b6 100644
@@ -715,6 +715,8 @@ struct drm_syncobj_handle {
 
 #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
 #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
+/* wait for time point to become available */
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE (1 << 2)
 struct drm_syncobj_wait {
 	__u64 handles;
 	/* absolute timeout */
@@ -725,11 +727,37 @@ struct drm_syncobj_wait {
 	__u32 pad;
 };
 
+struct drm_syncobj_timeline_wait {
+        __u64 handles;
+        /* wait on specific timeline point for every handles*/
+        __u64 points;
+        /* absolute timeout */
+        __s64 timeout_nsec;
+        __u32 count_handles;
+        __u32 flags;
+        __u32 first_signaled; /* only valid when not waiting all */
+        __u32 pad;
+};
+
 struct drm_syncobj_array {
 	__u64 handles;
 	__u32 count_handles;
 	__u32 pad;
 };
+struct drm_syncobj_timeline_array {
+       __u64 handles;
+       __u64 points;
+       __u32 count_handles;
+       __u32 pad;
+};
+
+struct drm_syncobj_transfer {
+        __u32 binary_handle;
+        __u32 timeline_handle;
+        __u64 point;
+        __u32 flags;
+        __u32 pad;
+};
 
 /* Query current scanout sequence number */
 struct drm_crtc_get_sequence {
@@ -886,6 +914,11 @@ extern "C" {
 #define DRM_IOCTL_MODE_LIST_LESSEES	DRM_IOWR(0xC7, struct drm_mode_list_lessees)
 #define DRM_IOCTL_MODE_GET_LEASE	DRM_IOWR(0xC8, struct drm_mode_get_lease)
 #define DRM_IOCTL_MODE_REVOKE_LEASE	DRM_IOWR(0xC9, struct drm_mode_revoke_lease)
+#define DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT DRM_IOWR(0xCA, struct drm_syncobj_timeline_wait)
+#define DRM_IOCTL_SYNCOBJ_QUERY         DRM_IOWR(0xCB, struct drm_syncobj_timeline_array)
+#define DRM_IOCTL_SYNCOBJ_BINARY_TO_TIMELINE    DRM_IOWR(0xCC, struct drm_syncobj_transfer)
+#define DRM_IOCTL_SYNCOBJ_TIMELINE_TO_BINARY    DRM_IOWR(0xCD, struct drm_syncobj_transfer)
+#define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL    DRM_IOWR(0xCE, struct drm_syncobj_timeline_array)
 
 /**
  * Device specific ioctls should only be in their respective headers
lib/igt_syncobj.c +204 -0

207 lines not on this page · raw message

lib/igt_syncobj.h +19 -0
index 44d1378d..175e5027 100644
@@ -65,7 +65,26 @@ int syncobj_wait_err(int fd, uint32_t *handles, uint32_t count,
 bool syncobj_wait(int fd, uint32_t *handles, uint32_t count,
 		  uint64_t abs_timeout_nsec, uint32_t flags,
 		  uint32_t *first_signaled);
+int __syncobj_timeline_wait_ioctl(int fd,
+				  struct drm_syncobj_timeline_wait *args);
+bool syncobj_timeline_wait(int fd, uint32_t *handles, uint64_t *points,
+			   unsigned num_handles,
+			   int64_t timeout_nsec, unsigned flags,
+			   uint32_t *first_signaled);
+int syncobj_timeline_wait_err(int fd, uint32_t *handles, uint64_t *points,
+			      unsigned num_handles,
+			      int64_t timeout_nsec, unsigned flags);
 void syncobj_reset(int fd, uint32_t *handles, uint32_t count);
 void syncobj_signal(int fd, uint32_t *handles, uint32_t count);
+void syncobj_timeline_query(int fd, uint32_t *handles, uint64_t **points,
+			    uint32_t count);
+void syncobj_binary_to_timeline(int fd, uint32_t timeline_handle,
+				uint64_t point, uint32_t binary_handle);
+void syncobj_timeline_to_binary(int fd, uint32_t binary_handle,
+				uint32_t timeline_handle,
+				uint64_t point,
+				uint32_t flags);
+void syncobj_timeline_signal(int fd, uint32_t *handles, uint64_t *points,
+			     uint32_t count);
 
 #endif /* IGT_SYNCOBJ_H */
tests/meson.build +1 -0
index 3020f798..8b5db541 100644
@@ -83,6 +83,7 @@ test_progs = [
 	'sw_sync',
 	'syncobj_basic',
 	'syncobj_wait',
+	'syncobj_timeline',
 	'template',
 	'tools_test',
 	'vc4_create_bo',
tests/syncobj_timeline.c new file +1100 -0

1,100 lines not on this page · raw message

Signature · 6 lines
2.17.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#1 lore raw

✗ Fi.CI.BAT: failure for igt: add timeline test cases (rev2)

== Series Details ==

== Series Details ==

Series: igt: add timeline test cases (rev2)
URL : https://patchwork.freedesktop.org/series/53743/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5281 -> IGTPW_2133
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with IGTPW_2133 absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in IGTPW_2133, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

External URL: https://patchwork.freedesktop.org/api/1.0/series/53743/revisions/2/mbox/

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in IGTPW_2133:

### IGT changes ###

#### Possible regressions ####

* igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g: PASS -> DMESG-WARN

Known issues
------------

Here are the changes found in IGTPW_2133 that come from known issues:

### IGT changes ###

#### Issues hit ####

* igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718]

* igt@gem_exec_suspend@basic-s4-devices:
- fi-ivb-3520m: PASS -> FAIL [fdo#108880]

* igt@i915_selftest@live_evict:
- fi-bsw-kefka: PASS -> DMESG-WARN [fdo#107709]

* {igt@runner@aborted}:
- fi-bsw-kefka: NOTRUN -> FAIL [fdo#107709]

#### Possible fixes ####

* igt@i915_selftest@live_execlists:
- fi-apl-guc: INCOMPLETE [fdo#103927] -> PASS

* igt@i915_selftest@live_hangcheck:
- fi-bwr-2160: DMESG-FAIL [fdo#108735] -> PASS
- fi-skl-gvtdvm: INCOMPLETE [fdo#105600] / [fdo#108744] -> PASS

{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).

[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#105600]: https://bugs.freedesktop.org/show_bug.cgi?id=105600
[fdo#107709]: https://bugs.freedesktop.org/show_bug.cgi?id=107709
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#108735]: https://bugs.freedesktop.org/show_bug.cgi?id=108735
[fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
[fdo#108880]: https://bugs.freedesktop.org/show_bug.cgi?id=108880

Participating hosts (50 -> 44)
------------------------------

Additional (1): fi-byt-j1900
Missing (7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y

Build changes
-------------

* IGT: IGT_4743 -> IGTPW_2133

CI_DRM_5281: 678f4e6d807098fc02d94627490658d17be1080d @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_2133: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2133/
IGT_4743: edb2db2cf2b6665d7ba3fa9117263302f6307a4f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Testlist changes ==

+++ 118 lines
--- 0 lines

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2133/
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#2 lore raw

Re: ✗ Fi.CI.BAT: failure for igt: add timeline test cases (rev2)

Quoting Patchwork (2018-12-07 10:27:46)

Quoted 28 lines

== Series Details ==

Series: igt: add timeline test cases (rev2)
URL : https://patchwork.freedesktop.org/series/53743/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5281 -> IGTPW_2133
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with IGTPW_2133 absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in IGTPW_2133, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

External URL: https://patchwork.freedesktop.org/api/1.0/series/53743/revisions/2/mbox/

Possible new issues
-------------------

Quoted 8 lines

Here are the unknown changes that may have been introduced in IGTPW_2133:

### IGT changes ###

#### Possible regressions ####

* igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g: PASS -> DMESG-WARN

What fortuitous timing! Maybe you would like to take a stab at the use-after-free in amdgpu's mmu_notifier.
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#3 lore raw

Re: ✗ Fi.CI.BAT: failure for igt: add timeline test cases (rev2)

Quoted 31 lines · Chris Wilson

Quoting Patchwork (2018-12-07 10:27:46)

Quoted 30 lines

== Series Details ==

Series: igt: add timeline test cases (rev2)
URL : https://patchwork.freedesktop.org/series/53743/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5281 -> IGTPW_2133
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with IGTPW_2133 absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in IGTPW_2133, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

   External URL: https://patchwork.freedesktop.org/api/1.0/series/53743/revisions/2/mbox/

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in IGTPW_2133:

Quoted 8 lines
Quoted 6 lines

### IGT changes ###

#### Possible regressions ####

* igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g: PASS -> DMESG-WARN

What fortuitous timing! Maybe you would like to take a stab at the use-after-free in amdgpu's mmu_notifier.

It's totally new test cases and should be nothing with others, Do you mean I need to resend it after sometime?

-David

Quoted 1 line

-Chris

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#4 lore raw

Re: ✗ Fi.CI.BAT: failure for igt: add timeline test cases (rev2)

Quoting zhoucm1 (2018-12-07 10:36:37)

Quoted 36 lines · Chris Wilson
Quoted 33 lines

Quoting Patchwork (2018-12-07 10:27:46)

Quoted 32 lines

== Series Details ==

Series: igt: add timeline test cases (rev2)
URL : https://patchwork.freedesktop.org/series/53743/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5281 -> IGTPW_2133
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with IGTPW_2133 absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in IGTPW_2133, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

   External URL: https://patchwork.freedesktop.org/api/1.0/series/53743/revisions/2/mbox/

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in IGTPW_2133:

### IGT changes ###

Quoted 8 lines
Quoted 6 lines
Quoted 4 lines

#### Possible regressions ####

* igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g: PASS -> DMESG-WARN

What fortuitous timing! Maybe you would like to take a stab at the use-after-free in amdgpu's mmu_notifier.

It's totally new test cases and should be nothing with others, Do you mean I need to resend it after sometime?

It's an unrelated failure that has been plaguing us ever since we added a kbl-g to our farm. But as it is a use-after-free with core mm coupling, it's quite serious.
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#5 lore raw

Re: ✗ Fi.CI.BAT: failure for igt: add timeline test cases (rev2)

In reply to Chris Wilson
Quoted 34 lines · Chris Wilson

Quoting Patchwork (2018-12-07 10:27:46)

Quoted 32 lines

== Series Details ==

Series: igt: add timeline test cases (rev2)
URL : https://patchwork.freedesktop.org/series/53743/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5281 -> IGTPW_2133
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with IGTPW_2133 absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in IGTPW_2133, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

External URL: https://patchwork.freedesktop.org/api/1.0/series/53743/revisions/2/mbox/

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in IGTPW_2133:

### IGT changes ###

Quoted 7 lines
Quoted 4 lines

#### Possible regressions ####

* igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g: PASS -> DMESG-WARN

What fortuitous timing! Maybe you would like to take a stab at the use-after-free in amdgpu's mmu_notifier.

Adding Christian König.
-Daniel

Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#6 lore raw

Re: ✗ Fi.CI.BAT: failure for igt: add timeline test cases (rev2)

Am 07.12.18 um 14:58 schrieb Daniel Vetter:

Quoted 34 lines · Chris Wilson
Quoted 33 lines

Quoting Patchwork (2018-12-07 10:27:46)

Quoted 32 lines

== Series Details ==

Series: igt: add timeline test cases (rev2)
URL : https://patchwork.freedesktop.org/series/53743/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5281 -> IGTPW_2133
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with IGTPW_2133 absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in IGTPW_2133, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

   External URL: https://patchwork.freedesktop.org/api/1.0/series/53743/revisions/2/mbox/

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in IGTPW_2133:

### IGT changes ###

Quoted 7 lines
Quoted 6 lines
Quoted 4 lines

#### Possible regressions ####

* igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g: PASS -> DMESG-WARN

What fortuitous timing! Maybe you would like to take a stab at the use-after-free in amdgpu's mmu_notifier.

Adding Christian König.

Philip Yang is already working on this. We want to replace the MMU notifier with HMM as soon as possible.

Christian.

Quoted 1 line

-Daniel

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx