* [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