All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests
@ 2020-02-04 10:08 Lionel Landwerlin
  2020-02-04 10:08 ` [igt-dev] [PATCH i-g-t v5 1/1] tests/i915-query: add new tests for perf configurations queries Lionel Landwerlin
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Lionel Landwerlin @ 2020-02-04 10:08 UTC (permalink / raw)
  To: igt-dev

Hi all,

The TGL runner reported failures because the register for OA triggers
etc... changed.

Cheers,

Lionel Landwerlin (1):
  tests/i915-query: add new tests for perf configurations queries

 tests/i915/i915_query.c | 616 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 616 insertions(+)

--
2.25.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v5 1/1] tests/i915-query: add new tests for perf configurations queries
  2020-02-04 10:08 [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
@ 2020-02-04 10:08 ` Lionel Landwerlin
  2020-02-04 15:26 ` [igt-dev] ✓ Fi.CI.BAT: success for tests: add i915-query perf tests (rev4) Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Lionel Landwerlin @ 2020-02-04 10:08 UTC (permalink / raw)
  To: igt-dev

These new tests allow to list the available configurations and also to
query the data that makes up a configuration.

v2: Verify uuid queries (Lionel)

v3: Fix mistake with missing pointer value (Lionel)

v4: Add igt_describe() (Lionel)

v5: Fix config creation on Gen12+ (Lionel)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> (v4)
---
 tests/i915/i915_query.c | 616 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 616 insertions(+)

diff --git a/tests/i915/i915_query.c b/tests/i915/i915_query.c
index 71807425..27a14e6e 100644
--- a/tests/i915/i915_query.c
+++ b/tests/i915/i915_query.c
@@ -22,6 +22,7 @@
  */
 
 #include "igt.h"
+#include "igt_sysfs.h"
 
 #include <limits.h>
 
@@ -735,6 +736,603 @@ static void engines(int fd)
 	free(engines);
 }
 
+static bool query_perf_config_supported(int fd)
+{
+	struct drm_i915_query_item item = {
+		.query_id = DRM_I915_QUERY_PERF_CONFIG,
+		.flags = DRM_I915_QUERY_PERF_CONFIG_LIST,
+	};
+
+	return __i915_query_items(fd, &item, 1) == 0 && item.length > 0;
+}
+
+/*
+ * Verify that perf configuration queries for list of configurations
+ * rejects invalid parameters.
+ */
+static void test_query_perf_config_list_invalid(int fd)
+{
+	struct drm_i915_query_perf_config *query_config_ptr, dummy_query_config;
+	struct drm_i915_query_item item;
+	size_t len;
+	void *data;
+
+	/* Verify invalid flags for perf config queries */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = 42; /* invalid */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EINVAL);
+
+	/*
+	 * A too small data length is invalid. We should have at least
+	 * the test config list.
+	 */
+	memset(&item, 0, sizeof(item));
+	memset(&dummy_query_config, 0, sizeof(dummy_query_config));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.data_ptr = to_user_pointer(&dummy_query_config);
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_LIST;
+	item.length = sizeof(struct drm_i915_query_perf_config); /* invalid */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EINVAL);
+
+	/* Flags on the query config data are invalid. */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_LIST;
+	item.length = 0;
+	i915_query_items(fd, &item, 1);
+	igt_assert(item.length > sizeof(struct drm_i915_query_perf_config));
+
+	query_config_ptr = calloc(1, item.length);
+	query_config_ptr->flags = 1; /* invalid */
+	item.data_ptr = to_user_pointer(query_config_ptr);
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EINVAL);
+	free(query_config_ptr);
+
+	/*
+	 * A NULL data pointer is invalid when the length is long
+	 * enough for i915 to copy data into the pointed memory.
+	 */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_LIST;
+	item.length = 0;
+	i915_query_items(fd, &item, 1);
+	igt_assert(item.length > sizeof(struct drm_i915_query_perf_config));
+
+	i915_query_items(fd, &item, 1); /* leaves data ptr to null */
+	igt_assert_eq(item.length, -EFAULT);
+
+	/* Trying to write into read only memory will fail. */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_LIST;
+	item.length = 0;
+	i915_query_items(fd, &item, 1);
+	igt_assert(item.length > sizeof(struct drm_i915_query_perf_config));
+
+	len = ALIGN(item.length, 4096);
+	data = mmap(0, len, PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
+	memset(data, 0, len);
+	mprotect(data, len, PROT_READ);
+	item.data_ptr = to_user_pointer(data); /* invalid with read only data */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EFAULT);
+
+	munmap(data, len);
+}
+
+static int query_perf_config_id_data(int fd, int length,
+				     struct drm_i915_query_perf_config *query)
+{
+	struct drm_i915_query_item item;
+
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID;
+	item.length = length;
+	item.data_ptr = to_user_pointer(query);
+	i915_query_items(fd, &item, 1);
+
+	return item.length;
+}
+
+static int query_perf_config_uuid_data(int fd, int length,
+				       struct drm_i915_query_perf_config *query)
+{
+	struct drm_i915_query_item item;
+
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID;
+	item.length = length;
+	item.data_ptr = to_user_pointer(query);
+	i915_query_items(fd, &item, 1);
+
+	return item.length;
+}
+
+/*
+ * Verify that perf configuration queries for configuration data
+ * rejects invalid parameters.
+ */
+static void test_query_perf_config_data_invalid(int fd)
+{
+	struct {
+		struct drm_i915_query_perf_config query;
+		struct drm_i915_perf_oa_config oa;
+	} query;
+	struct drm_i915_query_item item;
+	size_t len;
+	void *data;
+
+	/* Flags are invalid for perf config queries */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID + 1; /* invalid */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EINVAL);
+
+	/*
+	 * A too small data length is invalid. We should have at least
+	 * the test config list.
+	 */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID;
+	item.length = sizeof(struct drm_i915_query_perf_config); /* invalid */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EINVAL);
+
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID;
+	item.length = sizeof(struct drm_i915_query_perf_config) +
+		sizeof(struct drm_i915_perf_oa_config) - 1; /* invalid */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EINVAL);
+
+	/* Flags on the query config data are invalid. */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID;
+	item.length = 0;
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, sizeof(query));
+
+	memset(&query, 0, sizeof(query));
+	query.query.flags = 1; /* invalid */
+	item.data_ptr = to_user_pointer(&query.query);
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EINVAL);
+
+	/* Invalid UUID. */
+	memset(&item, 0, sizeof(item));
+	memset(&query, 0, sizeof(query));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID;
+	item.data_ptr = to_user_pointer(&query);
+	item.length = sizeof(query);
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -ENOENT);
+
+	/*
+	 * A NULL data pointer is invalid when the length is long
+	 * enough for i915 to copy data into the pointed memory.
+	 */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID;
+	item.length = 0;
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, sizeof(query));
+
+	i915_query_items(fd, &item, 1); /* leaves data ptr to null */
+	igt_assert_eq(item.length, -EFAULT);
+
+	item.data_ptr = ULONG_MAX; /* invalid pointer */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EFAULT);
+
+	/* Trying to write into read only memory will fail. */
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID;
+	item.length = 0;
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, sizeof(query));
+
+	len = ALIGN(item.length, 4096);
+	data = mmap(0, len, PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
+	memset(data, 0, len);
+	((struct drm_i915_query_perf_config *)data)->config = 1; /* test config */
+	mprotect(data, len, PROT_READ);
+	item.data_ptr = to_user_pointer(data); /* invalid with read only data */
+	i915_query_items(fd, &item, 1);
+	igt_assert_eq(item.length, -EFAULT);
+
+	munmap(data, len);
+
+	/* Invalid memory (NULL) for configuration registers. */
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query),
+		      query_perf_config_id_data(fd, sizeof(query), &query.query));
+
+	igt_debug("Queried test config %.*s\n",
+		  (int)sizeof(query.oa.uuid), query.oa.uuid);
+	igt_debug("  n_mux_regs=%u, n_boolean_regs=%u, n_flex_regs=%u\n",
+		  query.oa.n_mux_regs, query.oa.n_boolean_regs,
+		  query.oa.n_flex_regs);
+	igt_assert_eq(-EFAULT,
+		      query_perf_config_id_data(fd, sizeof(query), &query.query));
+
+	/* Invalid memory (ULONG max) for configuration registers. */
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query), query_perf_config_id_data(fd, 0, &query.query));
+
+	if (query.oa.n_mux_regs > 0) {
+		query.oa.mux_regs_ptr = ULONG_MAX;
+		query.oa.n_boolean_regs = 0;
+		query.oa.n_flex_regs = 0;
+		igt_assert_eq(-EFAULT, query_perf_config_id_data(fd, sizeof(query),
+								 &query.query));
+	}
+
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query),
+		      query_perf_config_id_data(fd, 0, &query.query));
+
+	if (query.oa.n_boolean_regs > 0) {
+		query.oa.boolean_regs_ptr = ULONG_MAX;
+		query.oa.n_mux_regs = 0;
+		query.oa.n_flex_regs = 0;
+		igt_assert_eq(-EFAULT, query_perf_config_id_data(fd, sizeof(query),
+								 &query.query));
+	}
+
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query),
+		      query_perf_config_id_data(fd, 0, &query.query));
+
+	if (query.oa.n_flex_regs > 0) {
+		query.oa.flex_regs_ptr = ULONG_MAX;
+		query.oa.n_mux_regs = 0;
+		query.oa.n_boolean_regs = 0;
+		igt_assert_eq(-EFAULT, query_perf_config_id_data(fd, sizeof(query),
+								 &query.query));
+	}
+
+	/* Too small number of registers to write. */
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query), query_perf_config_id_data(fd, 0, &query.query));
+
+	if (query.oa.n_mux_regs > 0) {
+		query.oa.n_mux_regs--;
+		igt_assert_eq(-EINVAL, query_perf_config_id_data(fd, sizeof(query),
+								 &query.query));
+	}
+
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query),
+		      query_perf_config_id_data(fd, 0, &query.query));
+
+	if (query.oa.n_boolean_regs > 0) {
+		query.oa.n_boolean_regs--;
+		igt_assert_eq(-EINVAL, query_perf_config_id_data(fd, sizeof(query),
+								 &query.query));
+	}
+
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query), query_perf_config_id_data(fd, 0, &query.query));
+
+	if (query.oa.n_flex_regs > 0) {
+		query.oa.n_flex_regs--;
+		igt_assert_eq(-EINVAL, query_perf_config_id_data(fd, sizeof(query),
+								 &query.query));
+	}
+
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query),
+		      query_perf_config_id_data(fd, 0, &query.query));
+
+	if (query.oa.n_boolean_regs > 0) {
+		query.oa.boolean_regs_ptr = ULONG_MAX;
+		query.oa.n_mux_regs = 0;
+		query.oa.n_flex_regs = 0;
+		igt_assert_eq(-EFAULT, query_perf_config_id_data(fd, sizeof(query),
+								 &query.query));
+	}
+
+	/* Read only memory for registers. */
+	memset(&query, 0, sizeof(query));
+	query.query.config = 1; /* test config */
+	igt_assert_eq(sizeof(query),
+		      query_perf_config_id_data(fd, sizeof(query), &query.query));
+
+	len = ALIGN(query.oa.n_mux_regs * sizeof(uint32_t) * 2, 4096);
+	data = mmap(0, len, PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
+	memset(data, 0, len);
+	mprotect(data, len, PROT_READ);
+	query.oa.mux_regs_ptr = to_user_pointer(data);
+	igt_assert_eq(-EFAULT,
+		      query_perf_config_id_data(fd, sizeof(query), &query.query));
+
+	munmap(data, len);
+}
+
+static uint64_t create_perf_config(int fd,
+				   const char *uuid,
+				   uint32_t **boolean_regs,
+				   uint32_t *n_boolean_regs,
+				   uint32_t **flex_regs,
+				   uint32_t *n_flex_regs,
+				   uint32_t **mux_regs,
+				   uint32_t *n_mux_regs)
+{
+	struct drm_i915_perf_oa_config config;
+	int devid = intel_get_drm_devid(fd);
+	const struct intel_device_info *devinfo = intel_get_device_info(devid);
+	uint32_t start_trig_offset = devinfo->gen >= 12 ? 0xd900 : 0x2710;
+	uint32_t report_trig_offset = devinfo->gen >= 12 ? 0xd920 : 0x2740;
+	int i, ret;
+
+	*n_boolean_regs = rand() % 50;
+	*boolean_regs = calloc(*n_boolean_regs, sizeof(uint32_t) * 2);
+	*n_mux_regs = rand() % 50;
+	*mux_regs = calloc(*n_mux_regs, sizeof(uint32_t) * 2);
+	if (intel_gen(devid) < 8) {
+		/* flex register don't exist on gen7 */
+		*n_flex_regs = 0;
+		*flex_regs = NULL;
+	} else {
+		*n_flex_regs = rand() % 50;
+		*flex_regs = calloc(*n_flex_regs, sizeof(uint32_t) * 2);
+	}
+
+	for (i = 0; i < *n_boolean_regs; i++) {
+		if (rand() % 2) {
+			/* OASTARTTRIG[1-8] */
+			(*boolean_regs)[i * 2] =
+				start_trig_offset + ((rand() % 32) / 4) * 4;
+			(*boolean_regs)[i * 2 + 1] = rand();
+		} else {
+			/* OAREPORTTRIG[1-8] */
+			(*boolean_regs)[i * 2] =
+				report_trig_offset + ((rand() % 32) / 4) * 4;
+			(*boolean_regs)[i * 2 + 1] = rand();
+		}
+	}
+
+	for (i = 0; i < *n_mux_regs; i++) {
+		(*mux_regs)[i * 2] = 0x9800;
+		(*mux_regs)[i * 2 + 1] = rand();
+	}
+
+	for (i = 0; i < *n_flex_regs; i++) {
+		const uint32_t flex[] = {
+			0xe458,
+			0xe558,
+			0xe658,
+			0xe758,
+			0xe45c,
+			0xe55c,
+			0xe65c
+		};
+		(*flex_regs)[i * 2] = flex[rand() % ARRAY_SIZE(flex)];
+		(*flex_regs)[i * 2 + 1] = rand();
+	}
+
+	memset(&config, 0, sizeof(config));
+	memcpy(config.uuid, uuid, sizeof(config.uuid));
+
+	config.n_boolean_regs = *n_boolean_regs;
+	config.boolean_regs_ptr = to_user_pointer(*boolean_regs);
+	config.n_flex_regs = *n_flex_regs;
+	config.flex_regs_ptr = to_user_pointer(*flex_regs);
+	config.n_mux_regs = *n_mux_regs;
+	config.mux_regs_ptr = to_user_pointer(*mux_regs);
+
+	ret = igt_ioctl(fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, &config);
+	igt_assert(ret > 1); /* Config 0/1 should be used by the kernel */
+
+	igt_debug("created config id=%i uuid=%s:\n", ret, uuid);
+	igt_debug("\tn_boolean_regs=%u n_flex_regs=%u n_mux_regs=%u\n",
+		  config.n_boolean_regs, config.n_flex_regs,
+		  config.n_mux_regs);
+
+	return ret;
+}
+
+static void remove_perf_config(int fd, uint64_t config_id)
+{
+	igt_assert_eq(0, igt_ioctl(fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG,
+				   &config_id));
+}
+
+static uint64_t get_config_id(int fd, const char *uuid)
+{
+	char rel_path[100];
+	uint64_t ret;
+	int sysfs;
+
+	sysfs = igt_sysfs_open(fd);
+	igt_assert_lte(0, sysfs);
+
+	snprintf(rel_path, sizeof(rel_path), "metrics/%s/id", uuid);
+
+	if (igt_sysfs_scanf(sysfs, rel_path, "%lu", &ret) < 0)
+		ret = 0;
+
+	close(sysfs);
+	return ret;
+}
+
+/*
+ * Verifies that created configurations appear in the query of list of
+ * configuration and also verify the content of the queried
+ * configurations matches with what was created.
+ */
+static void test_query_perf_configs(int fd)
+{
+	struct {
+		uint64_t id;
+
+		char uuid[40];
+
+		uint32_t *boolean_regs;
+		uint32_t n_boolean_regs;
+		uint32_t *flex_regs;
+		uint32_t n_flex_regs;
+		uint32_t *mux_regs;
+		uint32_t n_mux_regs;
+	} configs[5];
+	struct {
+		struct drm_i915_query_perf_config query;
+		uint64_t config_ids[];
+	} *list_query;
+	struct drm_i915_query_item item;
+	int i;
+
+	srand(time(NULL));
+
+	for (i = 0; i < ARRAY_SIZE(configs); i++) {
+		uint64_t prev_config_id;
+
+		snprintf(configs[i].uuid, sizeof(configs[i].uuid),
+			 "01234567-%04u-0123-0123-0123456789ab", i);
+
+		prev_config_id = get_config_id(fd, configs[i].uuid);
+		if (prev_config_id)
+			remove_perf_config(fd, prev_config_id);
+
+		configs[i].id =
+			create_perf_config(fd, configs[i].uuid,
+					   &configs[i].boolean_regs,
+					   &configs[i].n_boolean_regs,
+					   &configs[i].flex_regs,
+					   &configs[i].n_flex_regs,
+					   &configs[i].mux_regs,
+					   &configs[i].n_mux_regs);
+	}
+
+	memset(&item, 0, sizeof(item));
+	item.query_id = DRM_I915_QUERY_PERF_CONFIG;
+	item.flags = DRM_I915_QUERY_PERF_CONFIG_LIST;
+	item.length = 0;
+	i915_query_items(fd, &item, 1);
+	igt_assert(item.length > sizeof(struct drm_i915_query_perf_config));
+
+	list_query = malloc(item.length);
+	memset(list_query, 0, item.length);
+	item.data_ptr = to_user_pointer(list_query);
+	i915_query_items(fd, &item, 1);
+	igt_assert(item.length > sizeof(struct drm_i915_query_perf_config));
+
+	igt_debug("listed configs:\n");
+	for (i = 0; i < list_query->query.config; i++)
+		igt_debug("\tid=%lu\n", list_query->config_ids[i]);
+
+	/* Verify that all created configs are listed. */
+	for (i = 0; i < ARRAY_SIZE(configs); i++) {
+		int j;
+		bool found = false;
+
+		for (j = 0; j < list_query->query.config; j++) {
+			if (list_query->config_ids[j] == configs[i].id) {
+				found = true;
+				break;
+			}
+		}
+
+		igt_assert(found);
+	}
+
+	/* Verify the content of the configs. */
+	for (i = 0; i < ARRAY_SIZE(configs); i++) {
+		struct {
+			struct drm_i915_query_perf_config query;
+			struct drm_i915_perf_oa_config oa;
+		} query;
+		uint32_t *boolean_regs = NULL, *flex_regs = NULL, *mux_regs = NULL;
+
+		/* First query with configuration id. */
+		memset(&query, 0, sizeof(query));
+		query.query.config = configs[i].id;
+		igt_assert_eq(sizeof(query),
+			      query_perf_config_id_data(fd, sizeof(query),
+							&query.query));
+
+		igt_debug("queried config data id=%lu uuid=%s:\n",
+			  configs[i].id, configs[i].uuid);
+		igt_debug("\tn_boolean_regs=%u n_flex_regs=%u n_mux_regs=%u\n",
+			  query.oa.n_boolean_regs, query.oa.n_flex_regs,
+			  query.oa.n_mux_regs);
+
+		igt_assert_eq(query.oa.n_boolean_regs, configs[i].n_boolean_regs);
+		igt_assert_eq(query.oa.n_flex_regs, configs[i].n_flex_regs);
+		igt_assert_eq(query.oa.n_mux_regs, configs[i].n_mux_regs);
+
+		/* Query again with configuration uuid. */
+		memset(&query, 0, sizeof(query));
+		memcpy(query.query.uuid, configs[i].uuid,
+		       sizeof(query.query.uuid));
+		igt_assert_eq(sizeof(query),
+			      query_perf_config_uuid_data(fd, sizeof(query),
+							  &query.query));
+
+		igt_assert_eq(query.oa.n_boolean_regs, configs[i].n_boolean_regs);
+		igt_assert_eq(query.oa.n_flex_regs, configs[i].n_flex_regs);
+		igt_assert_eq(query.oa.n_mux_regs, configs[i].n_mux_regs);
+
+		/* Now get the register programming values. */
+		boolean_regs = calloc(query.oa.n_boolean_regs * 2, sizeof(uint32_t));
+		if (query.oa.n_flex_regs > 0)
+			flex_regs = calloc(query.oa.n_flex_regs * 2, sizeof(uint32_t));
+		mux_regs = calloc(query.oa.n_mux_regs * 2, sizeof(uint32_t));
+
+		query.oa.boolean_regs_ptr = to_user_pointer(boolean_regs);
+		query.oa.flex_regs_ptr = to_user_pointer(flex_regs);
+		query.oa.mux_regs_ptr = to_user_pointer(mux_regs);
+
+		igt_assert_eq(sizeof(query),
+			      query_perf_config_uuid_data(fd, sizeof(query),
+							  &query.query));
+
+		igt_assert_eq(0, memcmp(configs[i].boolean_regs,
+					boolean_regs,
+					configs[i].n_boolean_regs * 2 * sizeof(uint32_t)));
+		igt_assert_eq(0, memcmp(configs[i].flex_regs,
+					flex_regs,
+					configs[i].n_flex_regs * 2 * sizeof(uint32_t)));
+		igt_assert_eq(0, memcmp(configs[i].mux_regs,
+					mux_regs,
+					configs[i].n_mux_regs * 2 * sizeof(uint32_t)));
+
+		free(boolean_regs);
+		free(flex_regs);
+		free(mux_regs);
+	}
+
+	for (i = 0; i < ARRAY_SIZE(configs); i++) {
+		remove_perf_config(fd, configs[i].id);
+
+		free(configs[i].boolean_regs);
+		free(configs[i].flex_regs);
+		free(configs[i].mux_regs);
+	}
+}
+
 igt_main
 {
 	int fd = -1;
@@ -794,6 +1392,24 @@ igt_main
 			engines(fd);
 	}
 
+	igt_subtest_group {
+		igt_fixture {
+			igt_require(query_perf_config_supported(fd));
+		}
+
+		igt_describe("Test invalid parameters when listing OA configurations");
+		igt_subtest("query-perf-config-list-invalid")
+			test_query_perf_config_list_invalid(fd);
+
+		igt_describe("Test invalid parameters when querying OA configuration data");
+		igt_subtest("query-perf-config-data-invalid")
+			test_query_perf_config_data_invalid(fd);
+
+		igt_describe("Test listing & querying OA configurations");
+		igt_subtest("query-perf-configs")
+			test_query_perf_configs(fd);
+	}
+
 	igt_fixture {
 		close(fd);
 	}
-- 
2.25.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests: add i915-query perf tests (rev4)
  2020-02-04 10:08 [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
  2020-02-04 10:08 ` [igt-dev] [PATCH i-g-t v5 1/1] tests/i915-query: add new tests for perf configurations queries Lionel Landwerlin
@ 2020-02-04 15:26 ` Patchwork
  2020-02-06  9:04 ` [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
  2020-02-06 14:32 ` [igt-dev] ✗ Fi.CI.IGT: failure for tests: add i915-query perf tests (rev4) Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2020-02-04 15:26 UTC (permalink / raw)
  To: Lionel Landwerlin; +Cc: igt-dev

== Series Details ==

Series: tests: add i915-query perf tests (rev4)
URL   : https://patchwork.freedesktop.org/series/72235/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7864 -> IGTPW_4089
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/index.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_close_race@basic-threads:
    - fi-byt-j1900:       [PASS][1] -> [INCOMPLETE][2] ([i915#45])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-byt-j1900/igt@gem_close_race@basic-threads.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-byt-j1900/igt@gem_close_race@basic-threads.html

  * igt@gem_exec_parallel@fds:
    - fi-byt-n2820:       [PASS][3] -> [FAIL][4] ([i915#694])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-byt-n2820/igt@gem_exec_parallel@fds.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-byt-n2820/igt@gem_exec_parallel@fds.html

  * igt@gem_flink_basic@bad-flink:
    - fi-tgl-y:           [PASS][5] -> [DMESG-WARN][6] ([CI#94] / [i915#402]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-tgl-y/igt@gem_flink_basic@bad-flink.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-tgl-y/igt@gem_flink_basic@bad-flink.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [PASS][7] -> [DMESG-FAIL][8] ([i915#553] / [i915#725])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - fi-bwr-2160:        [PASS][9] -> [FAIL][10] ([i915#34])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-bwr-2160/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-bwr-2160/igt@kms_flip@basic-flip-vs-wf_vblank.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [FAIL][11] ([i915#178]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770:        [DMESG-FAIL][13] ([i915#725]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gtt:
    - fi-skl-6600u:       [TIMEOUT][15] ([fdo#111732] / [fdo#112271]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-skl-6600u/igt@i915_selftest@live_gtt.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-skl-6600u/igt@i915_selftest@live_gtt.html

  * igt@i915_selftest@live_perf:
    - fi-apl-guc:         [INCOMPLETE][17] ([fdo#103927]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-apl-guc/igt@i915_selftest@live_perf.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-apl-guc/igt@i915_selftest@live_perf.html

  * igt@prime_self_import@basic-llseek-bad:
    - fi-tgl-y:           [DMESG-WARN][19] ([CI#94] / [i915#402]) -> [PASS][20] +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-tgl-y/igt@prime_self_import@basic-llseek-bad.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-tgl-y/igt@prime_self_import@basic-llseek-bad.html

  
#### Warnings ####

  * igt@gem_exec_parallel@contexts:
    - fi-byt-n2820:       [TIMEOUT][21] ([fdo#112271]) -> [FAIL][22] ([i915#694])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/fi-byt-n2820/igt@gem_exec_parallel@contexts.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/fi-byt-n2820/igt@gem_exec_parallel@contexts.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#111732]: https://bugs.freedesktop.org/show_bug.cgi?id=111732
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#178]: https://gitlab.freedesktop.org/drm/intel/issues/178
  [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#45]: https://gitlab.freedesktop.org/drm/intel/issues/45
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725


Participating hosts (50 -> 47)
------------------------------

  Additional (3): fi-skl-lmem fi-glk-dsi fi-snb-2520m 
  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5417 -> IGTPW_4089

  CI-20190529: 20190529
  CI_DRM_7864: 5a140e2fc771e4c8b10d14e2db7bfb4996ee9d8a @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4089: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/index.html
  IGT_5417: 33cc93c8ba5daa0b7498f297a4f626844d895d06 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@i915_query@query-perf-configs
+igt@i915_query@query-perf-config-data-invalid
+igt@i915_query@query-perf-config-list-invalid

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests
  2020-02-04 10:08 [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
  2020-02-04 10:08 ` [igt-dev] [PATCH i-g-t v5 1/1] tests/i915-query: add new tests for perf configurations queries Lionel Landwerlin
  2020-02-04 15:26 ` [igt-dev] ✓ Fi.CI.BAT: success for tests: add i915-query perf tests (rev4) Patchwork
@ 2020-02-06  9:04 ` Lionel Landwerlin
  2020-02-06 14:32 ` [igt-dev] ✗ Fi.CI.IGT: failure for tests: add i915-query perf tests (rev4) Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Lionel Landwerlin @ 2020-02-06  9:04 UTC (permalink / raw)
  To: igt-dev

Umesh has reviewed the previous version and this one fixes TGL.
Is it okay for me to merge?

Thanks,

-Lionel

On 04/02/2020 12:08, Lionel Landwerlin wrote:
> Hi all,
>
> The TGL runner reported failures because the register for OA triggers
> etc... changed.
>
> Cheers,
>
> Lionel Landwerlin (1):
>    tests/i915-query: add new tests for perf configurations queries
>
>   tests/i915/i915_query.c | 616 ++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 616 insertions(+)
>
> --
> 2.25.0


_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for tests: add i915-query perf tests (rev4)
  2020-02-04 10:08 [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
                   ` (2 preceding siblings ...)
  2020-02-06  9:04 ` [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
@ 2020-02-06 14:32 ` Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2020-02-06 14:32 UTC (permalink / raw)
  To: Lionel Landwerlin; +Cc: igt-dev

== Series Details ==

Series: tests: add i915-query perf tests (rev4)
URL   : https://patchwork.freedesktop.org/series/72235/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7864_full -> IGTPW_4089_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4089_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4089_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/index.html

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@i915_query@query-perf-configs (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-kbl6/igt@i915_query@query-perf-configs.html
    - shard-hsw:          NOTRUN -> [FAIL][2]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-hsw2/igt@i915_query@query-perf-configs.html
    - shard-iclb:         NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb3/igt@i915_query@query-perf-configs.html
    - shard-glk:          NOTRUN -> [FAIL][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-glk2/igt@i915_query@query-perf-configs.html
    - shard-apl:          NOTRUN -> [FAIL][5]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-apl2/igt@i915_query@query-perf-configs.html

  
New tests
---------

  New tests have been introduced between CI_DRM_7864_full and IGTPW_4089_full:

### New IGT tests (9) ###

  * igt@gem_ctx_sseu@engines:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@gem_ctx_sseu@ggtt-args:
    - Statuses : 1 pass(s) 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_sseu@invalid-args:
    - Statuses : 1 pass(s) 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_sseu@invalid-sseu:
    - Statuses : 1 pass(s) 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_media_vme:
    - Statuses : 1 pass(s) 6 skip(s)
    - Exec time: [0.04, 0.15] s

  * igt@i915_query@query-perf-config-data-invalid:
    - Statuses : 6 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@i915_query@query-perf-config-list-invalid:
    - Statuses : 6 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@i915_query@query-perf-configs:
    - Statuses : 5 fail(s) 1 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@i915_selftest@live_active:
    - Statuses : 7 pass(s)
    - Exec time: [0.39, 0.72] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_busy@busy-vcs1:
    - shard-iclb:         [PASS][6] -> [SKIP][7] ([fdo#112080]) +15 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb4/igt@gem_busy@busy-vcs1.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb6/igt@gem_busy@busy-vcs1.html

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          [PASS][8] -> [DMESG-WARN][9] ([i915#180]) +8 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-kbl2/igt@gem_ctx_isolation@rcs0-s3.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_ctx_shared@exec-single-timeline-bsd:
    - shard-iclb:         [PASS][10] -> [SKIP][11] ([fdo#110841])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb8/igt@gem_ctx_shared@exec-single-timeline-bsd.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb4/igt@gem_ctx_shared@exec-single-timeline-bsd.html

  * igt@gem_exec_schedule@fifo-bsd1:
    - shard-iclb:         [PASS][12] -> [SKIP][13] ([fdo#109276]) +19 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb4/igt@gem_exec_schedule@fifo-bsd1.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb7/igt@gem_exec_schedule@fifo-bsd1.html

  * igt@gem_exec_schedule@pi-shared-iova-bsd:
    - shard-glk:          [PASS][14] -> [FAIL][15] ([i915#859])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk2/igt@gem_exec_schedule@pi-shared-iova-bsd.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-glk5/igt@gem_exec_schedule@pi-shared-iova-bsd.html

  * igt@gem_exec_schedule@pi-userfault-bsd:
    - shard-iclb:         [PASS][16] -> [SKIP][17] ([i915#677])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb3/igt@gem_exec_schedule@pi-userfault-bsd.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb2/igt@gem_exec_schedule@pi-userfault-bsd.html

  * igt@gem_exec_schedule@preempt-queue-bsd:
    - shard-iclb:         [PASS][18] -> [SKIP][19] ([fdo#112146]) +5 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb8/igt@gem_exec_schedule@preempt-queue-bsd.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb2/igt@gem_exec_schedule@preempt-queue-bsd.html

  * igt@gem_exec_suspend@basic-s3:
    - shard-kbl:          [PASS][20] -> [INCOMPLETE][21] ([fdo#103665])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-kbl4/igt@gem_exec_suspend@basic-s3.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-kbl4/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_partial_pwrite_pread@write-snoop:
    - shard-hsw:          [PASS][22] -> [FAIL][23] ([i915#694]) +2 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw2/igt@gem_partial_pwrite_pread@write-snoop.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-hsw7/igt@gem_partial_pwrite_pread@write-snoop.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          [PASS][24] -> [FAIL][25] ([i915#644])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-glk3/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_userptr_blits@sync-unmap-after-close:
    - shard-snb:          [PASS][26] -> [DMESG-WARN][27] ([fdo#111870] / [i915#478])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-snb6/igt@gem_userptr_blits@sync-unmap-after-close.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-snb2/igt@gem_userptr_blits@sync-unmap-after-close.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][28] -> [FAIL][29] ([i915#454])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb1/igt@i915_pm_dc@dc6-psr.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb6/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-0:
    - shard-iclb:         [PASS][30] -> [SKIP][31] ([i915#1140])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb8/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb5/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen:
    - shard-kbl:          [PASS][32] -> [FAIL][33] ([i915#54]) +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html
    - shard-apl:          [PASS][34] -> [FAIL][35] ([i915#54]) +1 similar issue
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-apl4/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-apl8/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding:
    - shard-glk:          [PASS][36] -> [FAIL][37] ([i915#54])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk4/igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-glk1/igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
    - shard-apl:          [PASS][38] -> [DMESG-WARN][39] ([i915#180])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-apl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-apl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [PASS][40] -> [SKIP][41] ([fdo#109642] / [fdo#111068])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb8/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@no_drrs:
    - shard-iclb:         [PASS][42] -> [FAIL][43] ([i915#173])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb6/igt@kms_psr@no_drrs.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb1/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_primary_page_flip:
    - shard-iclb:         [PASS][44] -> [SKIP][45] ([fdo#109441])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb3/igt@kms_psr@psr2_primary_page_flip.html

  
#### Possible fixes ####

  * igt@gem_exec_schedule@pi-distinct-iova-bsd:
    - shard-iclb:         [SKIP][46] ([i915#677]) -> [PASS][47] +2 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb1/igt@gem_exec_schedule@pi-distinct-iova-bsd.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb8/igt@gem_exec_schedule@pi-distinct-iova-bsd.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [SKIP][48] ([fdo#112146]) -> [PASS][49] +6 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb1/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb6/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@gem_mmap_gtt@big-copy-odd:
    - shard-snb:          [DMESG-WARN][50] ([i915#478]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-snb6/igt@gem_mmap_gtt@big-copy-odd.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-snb6/igt@gem_mmap_gtt@big-copy-odd.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-display:
    - shard-hsw:          [FAIL][52] ([i915#694]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw7/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-hsw7/igt@gem_partial_pwrite_pread@writes-after-reads-display.html

  * igt@gem_softpin@noreloc-s3:
    - shard-apl:          [DMESG-WARN][54] ([i915#180]) -> [PASS][55] +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-apl6/igt@gem_softpin@noreloc-s3.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-apl4/igt@gem_softpin@noreloc-s3.html

  * igt@i915_selftest@live_blt:
    - shard-hsw:          [DMESG-FAIL][56] ([i915#725]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw7/igt@i915_selftest@live_blt.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-hsw2/igt@i915_selftest@live_blt.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-180:
    - shard-iclb:         [SKIP][58] ([i915#1140]) -> [PASS][59]
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb2/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb8/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-kbl:          [DMESG-WARN][60] ([i915#180]) -> [PASS][61] +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-kbl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-kbl6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [FAIL][62] ([i915#79]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-glk:          [FAIL][64] ([i915#899]) -> [PASS][65] +1 similar issue
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk9/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-glk7/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [SKIP][66] ([fdo#109642] / [fdo#111068]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb8/igt@kms_psr2_su@frontbuffer.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb2/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [SKIP][68] ([fdo#109441]) -> [PASS][69]
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb7/igt@kms_psr@psr2_primary_mmap_cpu.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][70] ([i915#31]) -> [PASS][71]
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-apl2/igt@kms_setmode@basic.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-apl4/igt@kms_setmode@basic.html

  * igt@perf_pmu@busy-no-semaphores-vcs1:
    - shard-iclb:         [SKIP][72] ([fdo#112080]) -> [PASS][73] +14 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb7/igt@perf_pmu@busy-no-semaphores-vcs1.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb2/igt@perf_pmu@busy-no-semaphores-vcs1.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [SKIP][74] ([fdo#109276]) -> [PASS][75] +18 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb7/igt@prime_busy@hang-bsd2.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb4/igt@prime_busy@hang-bsd2.html

  * igt@prime_mmap_coherency@ioctl-errors:
    - shard-hsw:          [FAIL][76] ([i915#831]) -> [PASS][77]
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw5/igt@prime_mmap_coherency@ioctl-errors.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-hsw6/igt@prime_mmap_coherency@ioctl-errors.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv-switch:
    - shard-iclb:         [SKIP][78] ([fdo#112080]) -> [FAIL][79] ([IGT#28])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb8/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-iclb4/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html

  * igt@gem_tiled_blits@normal:
    - shard-hsw:          [FAIL][80] ([i915#818]) -> [FAIL][81] ([i915#694])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw7/igt@gem_tiled_blits@normal.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/shard-hsw1/igt@gem_tiled_blits@normal.html

  
  [IGT#28]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [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#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [i915#1140]: https://gitlab.freedesktop.org/drm/intel/issues/1140
  [i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818
  [i915#831]: https://gitlab.freedesktop.org/drm/intel/issues/831
  [i915#859]: https://gitlab.freedesktop.org/drm/intel/issues/859
  [i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899


Participating hosts (10 -> 8)
------------------------------

  Missing    (2): pig-skl-6260u pig-glk-j5005 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5417 -> IGTPW_4089
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_7864: 5a140e2fc771e4c8b10d14e2db7bfb4996ee9d8a @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4089: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4089/index.html
  IGT_5417: 33cc93c8ba5daa0b7498f297a4f626844d895d06 @ 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_4089/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2020-02-06 14:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-04 10:08 [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
2020-02-04 10:08 ` [igt-dev] [PATCH i-g-t v5 1/1] tests/i915-query: add new tests for perf configurations queries Lionel Landwerlin
2020-02-04 15:26 ` [igt-dev] ✓ Fi.CI.BAT: success for tests: add i915-query perf tests (rev4) Patchwork
2020-02-06  9:04 ` [igt-dev] [PATCH i-g-t v5 0/1] tests: add i915-query perf tests Lionel Landwerlin
2020-02-06 14:32 ` [igt-dev] ✗ Fi.CI.IGT: failure for tests: add i915-query perf tests (rev4) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.