* [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests
@ 2020-03-02 10:31 Lionel Landwerlin
2020-03-02 13:21 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/perf: add global sseu parameter tests (rev2) Patchwork
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Lionel Landwerlin @ 2020-03-02 10:31 UTC (permalink / raw)
To: igt-dev
This new parameter allows the performance recording application to
specify what should be the sseu configurations of all contexts on the
system.
v2: require appropriate perf version
check privileged operation
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
---
include/drm-uapi/i915_drm.h | 11 ++
tests/perf.c | 204 ++++++++++++++++++++++++++++++++++++
2 files changed, 215 insertions(+)
diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
index 3794e768..db12ddd4 100644
--- a/include/drm-uapi/i915_drm.h
+++ b/include/drm-uapi/i915_drm.h
@@ -1969,6 +1969,17 @@ enum drm_i915_perf_property_id {
*/
DRM_I915_PERF_PROP_HOLD_PREEMPTION,
+ /**
+ * Specifying this pins all contexts to the specified SSEU power
+ * configuration for the duration of the recording.
+ *
+ * This parameter's value is a pointer to a struct
+ * drm_i915_gem_context_param_sseu.
+ *
+ * This property is available in perf revision 4.
+ */
+ DRM_I915_PERF_PROP_GLOBAL_SSEU,
+
DRM_I915_PERF_PROP_MAX /* non-ABI */
};
diff --git a/tests/perf.c b/tests/perf.c
index 5e818030..a33af4d3 100644
--- a/tests/perf.c
+++ b/tests/perf.c
@@ -4035,6 +4035,183 @@ test_stress_open_close(void)
load_helper_fini();
}
+static uint64_t mask_minus_one(uint64_t mask)
+{
+ unsigned int i;
+
+ for (i = 0; i < (sizeof(mask) * 8 - 1); i++) {
+ if ((1ULL << i) & mask)
+ return mask & ~(1ULL << i);
+ }
+
+ igt_assert(0);
+ return 0;
+}
+
+static uint64_t mask_plus_one(uint64_t mask)
+{
+ unsigned int i;
+
+ for (i = 0; i < (sizeof(mask) * 8 - 1); i++) {
+ if (((1ULL << i) & mask) == 0)
+ return mask | (1ULL << i);
+ }
+
+ igt_assert(0);
+ return 0;
+}
+
+static void
+test_global_sseu_config_invalid(void)
+{
+ struct drm_i915_gem_context_param_sseu default_sseu;
+ struct drm_i915_gem_context_param_sseu sseu_param;
+ struct drm_i915_gem_context_param ctx_gp = {
+ .param = I915_CONTEXT_PARAM_SSEU,
+ .size = sizeof(default_sseu),
+ .value = to_user_pointer(&default_sseu),
+ };
+ uint64_t properties[] = {
+ /* XXX: even without periodic sampling we have to
+ * specify at least one sample layout property...
+ */
+ DRM_I915_PERF_PROP_SAMPLE_OA, true,
+
+ /* OA unit configuration */
+ DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+ DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+ DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
+ DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
+ };
+ struct drm_i915_perf_open_param param = {
+ .flags = I915_PERF_FLAG_FD_CLOEXEC |
+ I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
+ .num_properties = NUM_PROPERTIES(properties),
+ .properties_ptr = to_user_pointer(properties),
+ };
+
+ memset(&default_sseu, 0, sizeof(default_sseu));
+ igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
+
+ igt_debug("Default context sseu:\n");
+ igt_debug(" engine class/instance=%hu:%hu\n",
+ default_sseu.engine.engine_class,
+ default_sseu.engine.engine_instance);
+ igt_debug(" slice_mask=0x%llx\n", default_sseu.slice_mask);
+ igt_debug(" subslice_mask=0x%llx\n", default_sseu.subslice_mask);
+ igt_debug(" eu min/max=%hu/%hu\n",
+ default_sseu.min_eus_per_subslice,
+ default_sseu.max_eus_per_subslice);
+
+ /* Invalid engine class */
+ sseu_param = default_sseu;
+ sseu_param.engine.engine_class = -1;
+ do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
+
+ /* Invalid engine instance */
+ sseu_param = default_sseu;
+ sseu_param.engine.engine_instance = -1;
+ do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
+
+ /* Invalid slice mask */
+ sseu_param = default_sseu;
+ sseu_param.slice_mask = 0;
+ do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
+
+ sseu_param = default_sseu;
+ sseu_param.slice_mask = mask_plus_one(sseu_param.slice_mask);
+ do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
+
+ /* Invalid subslice mask */
+ sseu_param = default_sseu;
+ sseu_param.subslice_mask = 0;
+ do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
+
+ sseu_param = default_sseu;
+ sseu_param.subslice_mask = mask_plus_one(sseu_param.subslice_mask);
+ do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
+
+ /* Privileged operation */
+ if (__builtin_popcount(default_sseu.subslice_mask) > 1) {
+ igt_fork(child, 1) {
+ igt_drop_root();
+
+ sseu_param = default_sseu;
+ sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
+ do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EACCES);
+ }
+ igt_waitchildren();
+ }
+}
+
+static void
+test_global_sseu_config(void)
+{
+ struct drm_i915_gem_context_param_sseu default_sseu;
+ struct drm_i915_gem_context_param_sseu sseu_param;
+ struct drm_i915_gem_context_param ctx_gp = {
+ .param = I915_CONTEXT_PARAM_SSEU,
+ .size = sizeof(default_sseu),
+ .value = to_user_pointer(&default_sseu),
+ };
+ uint64_t properties[] = {
+ /* XXX: even without periodic sampling we have to
+ * specify at least one sample layout property...
+ */
+ DRM_I915_PERF_PROP_SAMPLE_OA, true,
+
+ /* OA unit configuration */
+ DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+ DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+ DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
+ DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
+ };
+ struct drm_i915_perf_open_param param = {
+ .flags = I915_PERF_FLAG_FD_CLOEXEC |
+ I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
+ .num_properties = NUM_PROPERTIES(properties),
+ .properties_ptr = to_user_pointer(properties),
+ };
+
+ memset(&default_sseu, 0, sizeof(default_sseu));
+ igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
+
+ igt_debug("Default context sseu:\n");
+ igt_debug(" engine class/instance=%hu:%hu\n",
+ default_sseu.engine.engine_class,
+ default_sseu.engine.engine_instance);
+ igt_debug(" slice_mask=0x%llx\n", default_sseu.slice_mask);
+ igt_debug(" subslice_mask=0x%llx\n", default_sseu.subslice_mask);
+ igt_debug(" eu min/max=%hu/%hu\n",
+ default_sseu.min_eus_per_subslice,
+ default_sseu.max_eus_per_subslice);
+
+ igt_require(__builtin_popcount(default_sseu.subslice_mask) > 1);
+
+ write_u64_file("/proc/sys/dev/i915/perf_stream_paranoid", 0);
+
+ igt_fork(child, 1) {
+ igt_drop_root();
+
+ sseu_param = default_sseu;
+ sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
+
+ stream_fd = __perf_open(drm_fd, ¶m, false);
+ __perf_close(stream_fd);
+ }
+
+ igt_waitchildren();
+
+ write_u64_file("/proc/sys/dev/i915/perf_stream_paranoid", 1);
+
+
+ sseu_param = default_sseu;
+ sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
+
+ stream_fd = __perf_open(drm_fd, ¶m, false);
+ __perf_close(stream_fd);
+}
+
static int __i915_perf_add_config(int fd, struct drm_i915_perf_oa_config *config)
{
int ret = igt_ioctl(fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, config);
@@ -4502,6 +4679,19 @@ test_sysctl_defaults(void)
igt_assert_eq(max_freq, 100000);
}
+static int i915_perf_version(int fd)
+{
+ struct drm_i915_getparam gp;
+ int perf_version = -1;
+
+ memset(&gp, 0, sizeof(gp));
+ gp.param = I915_PARAM_PERF_REVISION;
+ gp.value = &perf_version;
+ igt_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp);
+
+ return perf_version;
+}
+
igt_main
{
igt_fixture {
@@ -4635,6 +4825,20 @@ igt_main
igt_subtest("stress-open-close")
test_stress_open_close();
+ igt_subtest_group {
+ igt_fixture {
+ igt_require(i915_perf_version(drm_fd) >= 4);
+ }
+
+ igt_describe("Verify invalid SSEU opening parameters");
+ igt_subtest("global-sseu-config-invalid")
+ test_global_sseu_config_invalid();
+
+ igt_describe("Verify specifying SSEU opening parameters");
+ igt_subtest("global-sseu-config")
+ test_global_sseu_config();
+ }
+
igt_subtest("invalid-create-userspace-config")
test_invalid_create_userspace_config();
--
2.25.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/perf: add global sseu parameter tests (rev2)
2020-03-02 10:31 [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests Lionel Landwerlin
@ 2020-03-02 13:21 ` Patchwork
2020-03-02 23:31 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2020-03-16 9:39 ` [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests Tvrtko Ursulin
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2020-03-02 13:21 UTC (permalink / raw)
To: Lionel Landwerlin; +Cc: igt-dev
== Series Details ==
Series: tests/perf: add global sseu parameter tests (rev2)
URL : https://patchwork.freedesktop.org/series/74111/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8042 -> IGTPW_4244
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/index.html
Known issues
------------
Here are the changes found in IGTPW_4244 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_render_linear_blits@basic:
- fi-tgl-y: [PASS][1] -> [DMESG-WARN][2] ([CI#94] / [i915#402]) +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/fi-tgl-y/igt@gem_render_linear_blits@basic.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/fi-tgl-y/igt@gem_render_linear_blits@basic.html
* igt@i915_selftest@live@active:
- fi-icl-y: [PASS][3] -> [DMESG-FAIL][4] ([i915#765])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/fi-icl-y/igt@i915_selftest@live@active.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/fi-icl-y/igt@i915_selftest@live@active.html
* igt@kms_chamelium@dp-edid-read:
- fi-cml-u2: [PASS][5] -> [FAIL][6] ([i915#217] / [i915#976])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/fi-cml-u2/igt@kms_chamelium@dp-edid-read.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/fi-cml-u2/igt@kms_chamelium@dp-edid-read.html
#### Possible fixes ####
* igt@i915_selftest@live@gem_contexts:
- fi-cml-s: [DMESG-FAIL][7] ([i915#877]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
* igt@i915_selftest@live@gtt:
- fi-bxt-dsi: [INCOMPLETE][9] ([fdo#103927]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/fi-bxt-dsi/igt@i915_selftest@live@gtt.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/fi-bxt-dsi/igt@i915_selftest@live@gtt.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [FAIL][11] ([fdo#111407]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@vgem_basic@dmabuf-fence:
- fi-tgl-y: [DMESG-WARN][13] ([CI#94] / [i915#402]) -> [PASS][14] +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/fi-tgl-y/igt@vgem_basic@dmabuf-fence.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/fi-tgl-y/igt@vgem_basic@dmabuf-fence.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
[i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
[i915#765]: https://gitlab.freedesktop.org/drm/intel/issues/765
[i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877
[i915#976]: https://gitlab.freedesktop.org/drm/intel/issues/976
Participating hosts (47 -> 46)
------------------------------
Additional (5): fi-glk-dsi fi-bwr-2160 fi-elk-e7500 fi-bsw-kefka fi-blb-e6850
Missing (6): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5483 -> IGTPW_4244
CI-20190529: 20190529
CI_DRM_8042: d8191f679bee7619af0f3ec5b1848376a4cdab40 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4244: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/index.html
IGT_5483: 1707153df224ffb6333c6c660a792b7f334eb3d3 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Testlist changes ==
+igt@perf@global-sseu-config
+igt@perf@global-sseu-config-invalid
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 4+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/perf: add global sseu parameter tests (rev2)
2020-03-02 10:31 [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests Lionel Landwerlin
2020-03-02 13:21 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/perf: add global sseu parameter tests (rev2) Patchwork
@ 2020-03-02 23:31 ` Patchwork
2020-03-16 9:39 ` [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests Tvrtko Ursulin
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2020-03-02 23:31 UTC (permalink / raw)
To: Lionel Landwerlin; +Cc: igt-dev
== Series Details ==
Series: tests/perf: add global sseu parameter tests (rev2)
URL : https://patchwork.freedesktop.org/series/74111/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8042_full -> IGTPW_4244_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_4244_full:
### IGT changes ###
#### Possible regressions ####
* {igt@perf@global-sseu-config} (NEW):
- shard-iclb: NOTRUN -> [SKIP][1] +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb5/igt@perf@global-sseu-config.html
- shard-tglb: NOTRUN -> [SKIP][2] +1 similar issue
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-tglb6/igt@perf@global-sseu-config.html
New tests
---------
New tests have been introduced between CI_DRM_8042_full and IGTPW_4244_full:
### New IGT tests (2) ###
* igt@perf@global-sseu-config:
- Statuses : 7 skip(s)
- Exec time: [0.0] s
* igt@perf@global-sseu-config-invalid:
- Statuses : 7 skip(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_4244_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_busy@close-race:
- shard-tglb: [PASS][3] -> [INCOMPLETE][4] ([i915#977])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-tglb8/igt@gem_busy@close-race.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-tglb6/igt@gem_busy@close-race.html
* igt@gem_ctx_isolation@vcs1-nonpriv:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#112080]) +14 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb4/igt@gem_ctx_isolation@vcs1-nonpriv.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb8/igt@gem_ctx_isolation@vcs1-nonpriv.html
* igt@gem_ctx_shared@exec-single-timeline-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#110841])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb7/igt@gem_ctx_shared@exec-single-timeline-bsd.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb4/igt@gem_ctx_shared@exec-single-timeline-bsd.html
* igt@gem_exec_schedule@implicit-write-read-bsd1:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#109276] / [i915#677]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb2/igt@gem_exec_schedule@implicit-write-read-bsd1.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb6/igt@gem_exec_schedule@implicit-write-read-bsd1.html
* igt@gem_exec_schedule@pi-distinct-iova-bsd:
- shard-iclb: [PASS][11] -> [SKIP][12] ([i915#677]) +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb7/igt@gem_exec_schedule@pi-distinct-iova-bsd.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb1/igt@gem_exec_schedule@pi-distinct-iova-bsd.html
* igt@gem_exec_schedule@preempt-contexts-bsd2:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#109276]) +18 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb2/igt@gem_exec_schedule@preempt-contexts-bsd2.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb6/igt@gem_exec_schedule@preempt-contexts-bsd2.html
* igt@gem_exec_schedule@preemptive-hang-bsd:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#112146]) +5 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb6/igt@gem_exec_schedule@preemptive-hang-bsd.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb1/igt@gem_exec_schedule@preemptive-hang-bsd.html
* igt@i915_pm_rps@reset:
- shard-iclb: [PASS][17] -> [FAIL][18] ([i915#413])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb5/igt@i915_pm_rps@reset.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb2/igt@i915_pm_rps@reset.html
* igt@i915_suspend@sysfs-reader:
- shard-apl: [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +2 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-apl1/igt@i915_suspend@sysfs-reader.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-apl6/igt@i915_suspend@sysfs-reader.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-glk: [PASS][21] -> [FAIL][22] ([i915#72])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-glk6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-glk8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-glk: [PASS][23] -> [FAIL][24] ([i915#978])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-glk1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-glk2/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-tglb: [PASS][25] -> [SKIP][26] ([i915#668]) +2 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-tglb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-tglb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
- shard-kbl: [PASS][27] -> [DMESG-WARN][28] ([i915#180]) +2 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-kbl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
* igt@kms_psr2_su@page_flip:
- shard-iclb: [PASS][29] -> [SKIP][30] ([fdo#109642] / [fdo#111068])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb2/igt@kms_psr2_su@page_flip.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb6/igt@kms_psr2_su@page_flip.html
* igt@kms_psr@psr2_cursor_mmap_cpu:
- shard-iclb: [PASS][31] -> [SKIP][32] ([fdo#109441]) +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb7/igt@kms_psr@psr2_cursor_mmap_cpu.html
* igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm:
- shard-tglb: [PASS][33] -> [SKIP][34] ([fdo#112015])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-tglb6/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-tglb2/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html
- shard-iclb: [PASS][35] -> [SKIP][36] ([fdo#109278])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb6/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb2/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html
- shard-glk: [PASS][37] -> [SKIP][38] ([fdo#109271])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-glk9/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-glk8/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html
#### Possible fixes ####
* igt@gem_exec_schedule@pi-common-bsd:
- shard-iclb: [SKIP][39] ([i915#677]) -> [PASS][40] +2 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb2/igt@gem_exec_schedule@pi-common-bsd.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb8/igt@gem_exec_schedule@pi-common-bsd.html
* igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [SKIP][41] ([fdo#112146]) -> [PASS][42] +7 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb4/igt@gem_exec_schedule@reorder-wide-bsd.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb6/igt@gem_exec_schedule@reorder-wide-bsd.html
* igt@gem_exec_whisper@basic-queues-forked:
- shard-tglb: [INCOMPLETE][43] ([i915#750]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-tglb7/igt@gem_exec_whisper@basic-queues-forked.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-tglb6/igt@gem_exec_whisper@basic-queues-forked.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-apl: [FAIL][45] ([i915#644]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-apl3/igt@gem_ppgtt@flink-and-close-vma-leak.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-apl7/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@gen9_exec_parse@allowed-all:
- shard-glk: [DMESG-WARN][47] ([i915#716]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-glk2/igt@gen9_exec_parse@allowed-all.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-glk8/igt@gen9_exec_parse@allowed-all.html
* igt@i915_pm_rpm@debugfs-forcewake-user:
- shard-hsw: [SKIP][49] ([fdo#109271]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw5/igt@i915_pm_rpm@debugfs-forcewake-user.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw6/igt@i915_pm_rpm@debugfs-forcewake-user.html
- shard-iclb: [SKIP][51] ([i915#1316]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb8/igt@i915_pm_rpm@debugfs-forcewake-user.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb8/igt@i915_pm_rpm@debugfs-forcewake-user.html
- shard-tglb: [SKIP][53] ([i915#1316]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-tglb2/igt@i915_pm_rpm@debugfs-forcewake-user.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-tglb2/igt@i915_pm_rpm@debugfs-forcewake-user.html
- shard-glk: [SKIP][55] ([fdo#109271]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-glk6/igt@i915_pm_rpm@debugfs-forcewake-user.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-glk5/igt@i915_pm_rpm@debugfs-forcewake-user.html
* igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-kbl: [DMESG-WARN][57] ([i915#180]) -> [PASS][58] +3 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
* igt@kms_cursor_crc@pipe-b-cursor-128x42-sliding:
- shard-apl: [FAIL][59] ([i915#54]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-apl8/igt@kms_cursor_crc@pipe-b-cursor-128x42-sliding.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-128x42-sliding.html
* igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-apl: [DMESG-WARN][61] ([i915#180]) -> [PASS][62] +2 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-apl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-apl3/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-pwrite:
- shard-glk: [FAIL][63] ([i915#49]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-pwrite.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-pwrite.html
* igt@kms_psr@no_drrs:
- shard-iclb: [FAIL][65] ([i915#173]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb1/igt@kms_psr@no_drrs.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb5/igt@kms_psr@no_drrs.html
* igt@kms_psr@psr2_no_drrs:
- shard-iclb: [SKIP][67] ([fdo#109441]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb8/igt@kms_psr@psr2_no_drrs.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
* {igt@perf@stress-open-close}:
- shard-glk: [INCOMPLETE][69] ([i915#1356] / [i915#58] / [k.org#198133]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-glk8/igt@perf@stress-open-close.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-glk4/igt@perf@stress-open-close.html
* igt@perf_pmu@busy-no-semaphores-vcs1:
- shard-iclb: [SKIP][71] ([fdo#112080]) -> [PASS][72] +9 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb7/igt@perf_pmu@busy-no-semaphores-vcs1.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb4/igt@perf_pmu@busy-no-semaphores-vcs1.html
* igt@prime_vgem@fence-wait-bsd2:
- shard-iclb: [SKIP][73] ([fdo#109276]) -> [PASS][74] +16 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb5/igt@prime_vgem@fence-wait-bsd2.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb2/igt@prime_vgem@fence-wait-bsd2.html
#### Warnings ####
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-snb: [DMESG-WARN][75] ([fdo#110789] / [fdo#111870] / [i915#478]) -> [DMESG-WARN][76] ([fdo#111870] / [i915#478])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
- shard-hsw: [DMESG-WARN][77] ([fdo#110789] / [fdo#111870]) -> [DMESG-WARN][78] ([fdo#111870])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
* igt@i915_suspend@fence-restore-untiled:
- shard-kbl: [INCOMPLETE][79] ([fdo#103665]) -> [DMESG-WARN][80] ([i915#180])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-kbl6/igt@i915_suspend@fence-restore-untiled.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-kbl3/igt@i915_suspend@fence-restore-untiled.html
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [SKIP][81] ([fdo#109349]) -> [DMESG-WARN][82] ([i915#1226])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-iclb8/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@runner@aborted:
- shard-hsw: ([FAIL][83], [FAIL][84], [FAIL][85], [FAIL][86], [FAIL][87], [FAIL][88], [FAIL][89], [FAIL][90], [FAIL][91]) ([fdo#111870] / [i915#1356]) -> ([FAIL][92], [FAIL][93], [FAIL][94], [FAIL][95], [FAIL][96], [FAIL][97], [FAIL][98], [FAIL][99], [FAIL][100]) ([fdo#111870])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw1/igt@runner@aborted.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw6/igt@runner@aborted.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw1/igt@runner@aborted.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw4/igt@runner@aborted.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw4/igt@runner@aborted.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw5/igt@runner@aborted.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw6/igt@runner@aborted.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw6/igt@runner@aborted.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8042/shard-hsw6/igt@runner@aborted.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw6/igt@runner@aborted.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw6/igt@runner@aborted.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw6/igt@runner@aborted.html
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw1/igt@runner@aborted.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw6/igt@runner@aborted.html
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw1/igt@runner@aborted.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw1/igt@runner@aborted.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw6/igt@runner@aborted.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/shard-hsw1/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
[fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
[fdo#112015]: https://bugs.freedesktop.org/show_bug.cgi?id=112015
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
[i915#1316]: https://gitlab.freedesktop.org/drm/intel/issues/1316
[i915#1356]: https://gitlab.freedesktop.org/drm/intel/issues/1356
[i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
[i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#668]: https://gitlab.freedesktop.org/drm/intel/issues/668
[i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
[i915#750]: https://gitlab.freedesktop.org/drm/intel/issues/750
[i915#977]: https://gitlab.freedesktop.org/drm/intel/issues/977
[i915#978]: https://gitlab.freedesktop.org/drm/intel/issues/978
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133
Participating hosts (10 -> 8)
------------------------------
Missing (2): pig-skl-6260u pig-glk-j5005
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5483 -> IGTPW_4244
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_8042: d8191f679bee7619af0f3ec5b1848376a4cdab40 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4244: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/index.html
IGT_5483: 1707153df224ffb6333c6c660a792b7f334eb3d3 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4244/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests
2020-03-02 10:31 [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests Lionel Landwerlin
2020-03-02 13:21 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/perf: add global sseu parameter tests (rev2) Patchwork
2020-03-02 23:31 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2020-03-16 9:39 ` Tvrtko Ursulin
2 siblings, 0 replies; 4+ messages in thread
From: Tvrtko Ursulin @ 2020-03-16 9:39 UTC (permalink / raw)
To: Lionel Landwerlin, igt-dev
On 02/03/2020 10:31, Lionel Landwerlin wrote:
> This new parameter allows the performance recording application to
> specify what should be the sseu configurations of all contexts on the
> system.
>
> v2: require appropriate perf version
> check privileged operation
>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> ---
> include/drm-uapi/i915_drm.h | 11 ++
> tests/perf.c | 204 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 215 insertions(+)
>
> diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
> index 3794e768..db12ddd4 100644
> --- a/include/drm-uapi/i915_drm.h
> +++ b/include/drm-uapi/i915_drm.h
> @@ -1969,6 +1969,17 @@ enum drm_i915_perf_property_id {
> */
> DRM_I915_PERF_PROP_HOLD_PREEMPTION,
>
> + /**
> + * Specifying this pins all contexts to the specified SSEU power
> + * configuration for the duration of the recording.
> + *
> + * This parameter's value is a pointer to a struct
> + * drm_i915_gem_context_param_sseu.
> + *
> + * This property is available in perf revision 4.
> + */
> + DRM_I915_PERF_PROP_GLOBAL_SSEU,
> +
> DRM_I915_PERF_PROP_MAX /* non-ABI */
> };
>
> diff --git a/tests/perf.c b/tests/perf.c
> index 5e818030..a33af4d3 100644
> --- a/tests/perf.c
> +++ b/tests/perf.c
> @@ -4035,6 +4035,183 @@ test_stress_open_close(void)
> load_helper_fini();
> }
>
> +static uint64_t mask_minus_one(uint64_t mask)
> +{
> + unsigned int i;
> +
> + for (i = 0; i < (sizeof(mask) * 8 - 1); i++) {
> + if ((1ULL << i) & mask)
> + return mask & ~(1ULL << i);
> + }
> +
> + igt_assert(0);
> + return 0;
> +}
> +
> +static uint64_t mask_plus_one(uint64_t mask)
> +{
> + unsigned int i;
> +
> + for (i = 0; i < (sizeof(mask) * 8 - 1); i++) {
> + if (((1ULL << i) & mask) == 0)
> + return mask | (1ULL << i);
> + }
> +
> + igt_assert(0);
> + return 0;
> +}
> +
> +static void
> +test_global_sseu_config_invalid(void)
> +{
> + struct drm_i915_gem_context_param_sseu default_sseu;
> + struct drm_i915_gem_context_param_sseu sseu_param;
> + struct drm_i915_gem_context_param ctx_gp = {
> + .param = I915_CONTEXT_PARAM_SSEU,
> + .size = sizeof(default_sseu),
> + .value = to_user_pointer(&default_sseu),
> + };
> + uint64_t properties[] = {
> + /* XXX: even without periodic sampling we have to
> + * specify at least one sample layout property...
> + */
> + DRM_I915_PERF_PROP_SAMPLE_OA, true,
> +
> + /* OA unit configuration */
> + DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> + DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> + DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
> + DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
> + };
> + struct drm_i915_perf_open_param param = {
> + .flags = I915_PERF_FLAG_FD_CLOEXEC |
> + I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
> + .num_properties = NUM_PROPERTIES(properties),
> + .properties_ptr = to_user_pointer(properties),
> + };
> +
> + memset(&default_sseu, 0, sizeof(default_sseu));
> + igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
> +
> + igt_debug("Default context sseu:\n");
> + igt_debug(" engine class/instance=%hu:%hu\n",
> + default_sseu.engine.engine_class,
> + default_sseu.engine.engine_instance);
> + igt_debug(" slice_mask=0x%llx\n", default_sseu.slice_mask);
> + igt_debug(" subslice_mask=0x%llx\n", default_sseu.subslice_mask);
> + igt_debug(" eu min/max=%hu/%hu\n",
> + default_sseu.min_eus_per_subslice,
> + default_sseu.max_eus_per_subslice);
> +
> + /* Invalid engine class */
> + sseu_param = default_sseu;
> + sseu_param.engine.engine_class = -1;
> + do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
> +
> + /* Invalid engine instance */
> + sseu_param = default_sseu;
> + sseu_param.engine.engine_instance = -1;
> + do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
> +
> + /* Invalid slice mask */
> + sseu_param = default_sseu;
> + sseu_param.slice_mask = 0;
> + do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
> +
> + sseu_param = default_sseu;
> + sseu_param.slice_mask = mask_plus_one(sseu_param.slice_mask);
> + do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
> +
> + /* Invalid subslice mask */
> + sseu_param = default_sseu;
> + sseu_param.subslice_mask = 0;
> + do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
> +
> + sseu_param = default_sseu;
> + sseu_param.subslice_mask = mask_plus_one(sseu_param.subslice_mask);
> + do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EINVAL);
> +
> + /* Privileged operation */
> + if (__builtin_popcount(default_sseu.subslice_mask) > 1) {
> + igt_fork(child, 1) {
> + igt_drop_root();
> +
> + sseu_param = default_sseu;
> + sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
> + do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, ¶m, EACCES);
> + }
> + igt_waitchildren();
> + }
> +}
> +
> +static void
> +test_global_sseu_config(void)
> +{
> + struct drm_i915_gem_context_param_sseu default_sseu;
> + struct drm_i915_gem_context_param_sseu sseu_param;
> + struct drm_i915_gem_context_param ctx_gp = {
> + .param = I915_CONTEXT_PARAM_SSEU,
> + .size = sizeof(default_sseu),
> + .value = to_user_pointer(&default_sseu),
> + };
> + uint64_t properties[] = {
> + /* XXX: even without periodic sampling we have to
> + * specify at least one sample layout property...
> + */
> + DRM_I915_PERF_PROP_SAMPLE_OA, true,
> +
> + /* OA unit configuration */
> + DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> + DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> + DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
> + DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
> + };
> + struct drm_i915_perf_open_param param = {
> + .flags = I915_PERF_FLAG_FD_CLOEXEC |
> + I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
> + .num_properties = NUM_PROPERTIES(properties),
> + .properties_ptr = to_user_pointer(properties),
> + };
> +
> + memset(&default_sseu, 0, sizeof(default_sseu));
> + igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
> +
> + igt_debug("Default context sseu:\n");
> + igt_debug(" engine class/instance=%hu:%hu\n",
> + default_sseu.engine.engine_class,
> + default_sseu.engine.engine_instance);
> + igt_debug(" slice_mask=0x%llx\n", default_sseu.slice_mask);
> + igt_debug(" subslice_mask=0x%llx\n", default_sseu.subslice_mask);
> + igt_debug(" eu min/max=%hu/%hu\n",
> + default_sseu.min_eus_per_subslice,
> + default_sseu.max_eus_per_subslice);
Could pull to helper.
> +
> + igt_require(__builtin_popcount(default_sseu.subslice_mask) > 1);
> +
> + write_u64_file("/proc/sys/dev/i915/perf_stream_paranoid", 0);
> +
> + igt_fork(child, 1) {
> + igt_drop_root();
> +
> + sseu_param = default_sseu;
> + sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
> +
> + stream_fd = __perf_open(drm_fd, ¶m, false);
> + __perf_close(stream_fd);
> + }
> +
> + igt_waitchildren();
> +
> + write_u64_file("/proc/sys/dev/i915/perf_stream_paranoid", 1);
> +
> +
> + sseu_param = default_sseu;
> + sseu_param.subslice_mask = mask_minus_one(sseu_param.subslice_mask);
> +
> + stream_fd = __perf_open(drm_fd, ¶m, false);
> + __perf_close(stream_fd);
> +}
> +
> static int __i915_perf_add_config(int fd, struct drm_i915_perf_oa_config *config)
> {
> int ret = igt_ioctl(fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, config);
> @@ -4502,6 +4679,19 @@ test_sysctl_defaults(void)
> igt_assert_eq(max_freq, 100000);
> }
>
> +static int i915_perf_version(int fd)
> +{
> + struct drm_i915_getparam gp;
> + int perf_version = -1;
> +
> + memset(&gp, 0, sizeof(gp));
> + gp.param = I915_PARAM_PERF_REVISION;
> + gp.value = &perf_version;
> + igt_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp);
> +
> + return perf_version;
> +}
> +
> igt_main
> {
> igt_fixture {
> @@ -4635,6 +4825,20 @@ igt_main
> igt_subtest("stress-open-close")
> test_stress_open_close();
>
> + igt_subtest_group {
> + igt_fixture {
> + igt_require(i915_perf_version(drm_fd) >= 4);
> + }
> +
> + igt_describe("Verify invalid SSEU opening parameters");
> + igt_subtest("global-sseu-config-invalid")
> + test_global_sseu_config_invalid();
> +
> + igt_describe("Verify specifying SSEU opening parameters");
> + igt_subtest("global-sseu-config")
> + test_global_sseu_config();
> + }
> +
> igt_subtest("invalid-create-userspace-config")
> test_invalid_create_userspace_config();
>
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-03-16 9:39 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-02 10:31 [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests Lionel Landwerlin
2020-03-02 13:21 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/perf: add global sseu parameter tests (rev2) Patchwork
2020-03-02 23:31 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2020-03-16 9:39 ` [igt-dev] [PATCH i-g-t v2] tests/perf: add global sseu parameter tests Tvrtko Ursulin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox