All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection
@ 2022-07-18  7:11 Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 1/6] lib/igt_device_scan: Migrate pci assignment Zbigniew Kempczyński
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  7:11 UTC (permalink / raw)
  To: igt-dev

Most important in this series is codename + discrete/integrated 
device selectors. Device simulation is far away from being perfect
and I won't insist for merging it - it was written to check some
artificial multi-gpu setups.

v2-v4: addressing review comments (Kamil)

Zbigniew Kempczyński (6):
  lib/igt_device_scan: Migrate pci assignment
  lib/igt_device_scan: Introduce codename for platform selection
  tools/lsgpu: Add codename switch (-c)
  lib/igt_device_scan: Align microseconds to six leading zeros
  lib/igt_device_scan: Add discrete/integrated pseudo-codenames
  lib/igt_device_scan: Simulate udev drm and pci device events

 lib/igt_device_scan.c          | 181 +++++++++++--
 lib/igt_device_scan.h          |   1 +
 lib/igt_device_scan_simulate.c | 448 +++++++++++++++++++++++++++++++++
 tools/lsgpu.c                  |   8 +-
 4 files changed, 621 insertions(+), 17 deletions(-)
 create mode 100644 lib/igt_device_scan_simulate.c

-- 
2.34.1

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

* [igt-dev] [PATCH i-g-t v4 1/6] lib/igt_device_scan: Migrate pci assignment
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
@ 2022-07-18  7:11 ` Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 2/6] lib/igt_device_scan: Introduce codename for platform selection Zbigniew Kempczyński
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  7:11 UTC (permalink / raw)
  To: igt-dev

Core function of scanning drm devices is scan_drm_devices(). It goes
over all drm subsystem devices acquiring pci (parent) device from udev
during dedicated call for drm device.

Extending device selection to multi-gpu setup requires access to such
machine or simulate udev calls (really replace current udev calls to
say linker to use static versions of overridden udev functions).

Change migrates some core pci assignment to place where new igt_device is
registered. It doesn't change code logic, only place where initialization
is done making my simulation code happy.

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 lib/igt_device_scan.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index 5d98381f06..83a488aa7c 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -513,6 +513,11 @@ static struct igt_device *igt_device_new_from_udev(struct udev_device *dev)
 	get_props(dev, idev);
 	get_attrs(dev, idev);
 
+	if (is_pci_subsystem(idev)) {
+		set_vendor_device(idev);
+		set_pci_slot_name(idev);
+	}
+
 	return idev;
 }
 
@@ -671,10 +676,6 @@ static void update_or_add_parent(struct udev_device *dev,
 	parent_idev = igt_device_find(subsystem, syspath);
 	if (!parent_idev) {
 		parent_idev = igt_device_new_from_udev(parent_dev);
-		if (is_pci_subsystem(parent_idev)) {
-			set_vendor_device(parent_idev);
-			set_pci_slot_name(parent_idev);
-		}
 		igt_list_add_tail(&parent_idev->link, &igt_devs.all);
 	}
 	devname = udev_device_get_devnode(dev);
@@ -804,8 +805,8 @@ static void scan_drm_devices(void)
 		path = udev_list_entry_get_name(dev_list_entry);
 		udev_dev = udev_device_new_from_syspath(udev, path);
 		idev = igt_device_new_from_udev(udev_dev);
-		update_or_add_parent(udev_dev, idev);
 		igt_list_add_tail(&idev->link, &igt_devs.all);
+		update_or_add_parent(udev_dev, idev);
 
 		udev_device_unref(udev_dev);
 	}
-- 
2.34.1

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

* [igt-dev] [PATCH i-g-t v4 2/6] lib/igt_device_scan: Introduce codename for platform selection
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 1/6] lib/igt_device_scan: Migrate pci assignment Zbigniew Kempczyński
@ 2022-07-18  7:11 ` Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 3/6] tools/lsgpu: Add codename switch (-c) Zbigniew Kempczyński
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  7:11 UTC (permalink / raw)
  To: igt-dev

Platform rare is defined by single pci device id. Adding platform group
selection will make device selection more convenient. Now instead using

pci:vendor=8086,device=0x1927
pci:vendor=intel,device=0x1927

we may pass:

pci:vendor=8086,device=skylake
pci:vendor=intel,device=skylake

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 lib/igt_device_scan.c | 91 ++++++++++++++++++++++++++++++++++++++-----
 lib/igt_device_scan.h |  1 +
 2 files changed, 82 insertions(+), 10 deletions(-)

diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index 83a488aa7c..0ff49f96b7 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -85,13 +85,13 @@
  *
  * - pci: select device using PCI slot or vendor and device properties
  *   |[<!-- language="plain" -->
- *   pci:[vendor=%04x/name][,device=%04x][,card=%d] | [slot=%04x:%02x:%02x.%x]
+ *   pci:[vendor=%04x/name][,device=%04x/codename][,card=%d] | [slot=%04x:%02x:%02x.%x]
  *   ]|
  *
  *   Filter allows device selection using vendor (hex or name), device id
- *   (hex) and nth-card from all matches. For example if there are 4 PCI cards
- *   installed (let two cards have 1234 and other two 1235 device id, all of
- *   them of vendor Intel) you can select one using:
+ *   (hex or codename) and nth-card from all matches. For example if there
+ *   are 4 PCI cards installed (let two cards have 1234 and other two 1235
+ *   device id, all of them of vendor Intel) you can select one using:
  *
  *   |[<!-- language="plain" -->
  *   pci:vendor=Intel,device=1234,card=0
@@ -117,6 +117,12 @@
  *
  *   It selects the second one.
  *
+ *   We may use device codename instead of pci device id:
+ *
+ *   |[<!-- language="plain" -->
+ *   pci:vendor=8086,device=skylake
+ *   ]|
+ *
  *   Another possibility is to select device using a PCI slot:
  *
  *   |[<!-- language="plain" -->
@@ -131,7 +137,7 @@
  *
  * - sriov: select pf or vf
  *   |[<!-- language="plain" -->
- *   sriov:[vendor=%04x/name][,device=%04x][,card=%d][,pf=%d][,vf=%d]
+ *   sriov:[vendor=%04x/name][,device=%04x/codename][,card=%d][,pf=%d][,vf=%d]
  *   ]|
  *
  *   Filter extends pci selector to allow pf/vf selection:
@@ -205,6 +211,8 @@ struct igt_device {
 	char *pci_slot_name;
 	int gpu_index; /* For more than one GPU with same vendor and device. */
 
+	char *codename; /* For grouping by codename */
+
 	struct igt_list_head link;
 };
 
@@ -248,13 +256,30 @@ static char *devname_intel(uint16_t vendor, uint16_t device)
 	return s;
 }
 
+static char *codename_intel(uint16_t vendor, uint16_t device)
+{
+	const struct intel_device_info *info = intel_get_device_info(device);
+	char *codename = NULL;
+
+	if (info->codename) {
+		codename = strdup(info->codename);
+		igt_assert(codename);
+	}
+
+	if (!codename)
+		codename = devname_hex(vendor, device);
+
+	return codename;
+}
+
 static struct {
 	const char *name;
 	const char *vendor_id;
 	devname_fn devname;
+	devname_fn codename;
 } pci_vendor_mapping[] = {
-	{ "intel", "8086", devname_intel },
-	{ "amd", "1002", devname_hex },
+	{ "intel", "8086", devname_intel, codename_intel },
+	{ "amd", "1002", devname_hex, devname_hex },
 	{ NULL, },
 };
 
@@ -283,6 +308,20 @@ static devname_fn get_pci_vendor_device_fn(uint16_t vendor)
 	return devname_hex;
 }
 
+static devname_fn get_pci_vendor_device_codename_fn(uint16_t vendor)
+{
+	char vendorstr[5];
+
+	snprintf(vendorstr, sizeof(vendorstr), "%04x", vendor);
+
+	for (typeof(*pci_vendor_mapping) *vm = pci_vendor_mapping; vm->name; vm++) {
+		if (!strcasecmp(vendorstr, vm->vendor_id))
+			return vm->codename;
+	}
+
+	return devname_hex;
+}
+
 static void get_pci_vendor_device(const struct igt_device *dev,
 				  uint16_t *vendorp, uint16_t *devicep)
 {
@@ -305,6 +344,15 @@ static char *__pci_pretty_name(uint16_t vendor, uint16_t device, bool numeric)
 	return fn(vendor, device);
 }
 
+static char *__pci_codename(uint16_t vendor, uint16_t device)
+{
+	devname_fn fn;
+
+	fn = get_pci_vendor_device_codename_fn(vendor);
+
+	return fn(vendor, device);
+}
+
 /* Reading sysattr values can take time (even seconds),
  * we want to avoid reading such keys.
  */
@@ -514,8 +562,12 @@ static struct igt_device *igt_device_new_from_udev(struct udev_device *dev)
 	get_attrs(dev, idev);
 
 	if (is_pci_subsystem(idev)) {
+		uint16_t vendor, device;
+
 		set_vendor_device(idev);
 		set_pci_slot_name(idev);
+		get_pci_vendor_device(idev, &vendor, &device);
+		idev->codename = __pci_codename(vendor, device);
 	}
 
 	return idev;
@@ -558,6 +610,19 @@ static bool is_vendor_matched(struct igt_device *dev, const char *vendor)
 	return !strcasecmp(dev->vendor, vendor_id);
 }
 
+static bool is_device_matched(struct igt_device *dev, const char *device)
+{
+	if (!dev->device || !device)
+		return false;
+
+	/* First we compare device id, like 1926 */
+	if (!strcasecmp(dev->device, device))
+		return true;
+
+	/* Try codename */
+	return !strcasecmp(dev->codename, device);
+}
+
 static char *safe_strncpy(char *dst, const char *src, int n)
 {
 	char *s;
@@ -824,6 +889,7 @@ static void scan_drm_devices(void)
 
 static void igt_device_free(struct igt_device *dev)
 {
+	free(dev->codename);
 	free(dev->devnode);
 	free(dev->subsystem);
 	free(dev->syspath);
@@ -935,6 +1001,7 @@ igt_devs_print_simple(struct igt_list_head *view,
 			if (is_pci_subsystem(dev)) {
 				_pr_simple("vendor", dev->vendor);
 				_pr_simple("device", dev->device);
+				_pr_simple("codename", dev->codename);
 			}
 		}
 		printf("\n");
@@ -1022,7 +1089,10 @@ igt_devs_print_user(struct igt_list_head *view,
 			char *devname;
 
 			get_pci_vendor_device(pci_dev, &vendor, &device);
-			devname = __pci_pretty_name(vendor, device, fmt->numeric);
+			if (fmt->codename)
+				devname = __pci_codename(vendor, device);
+			else
+				devname = __pci_pretty_name(vendor, device, fmt->numeric);
 
 			__print_filter(filter, sizeof(filter), fmt, pci_dev,
 				       false);
@@ -1106,6 +1176,7 @@ igt_devs_print_detail(struct igt_list_head *view,
 		if (!is_drm_subsystem(dev)) {
 			_print_key_value("card device", dev->drm_card);
 			_print_key_value("render device", dev->drm_render);
+			_print_key_value("codename", dev->codename);
 		}
 
 		printf("\n[properties]\n");
@@ -1332,7 +1403,7 @@ static struct igt_list_head *filter_pci(const struct filter_class *fcls,
 			continue;
 
 		/* Skip if 'device' doesn't match */
-		if (filter->data.device && strcasecmp(filter->data.device, dev->device))
+		if (filter->data.device && !is_device_matched(dev, filter->data.device))
 			continue;
 
 		/* We get n-th card */
@@ -1412,7 +1483,7 @@ static struct igt_list_head *filter_sriov(const struct filter_class *fcls,
 			continue;
 
 		/* Skip if 'device' doesn't match */
-		if (filter->data.device && strcasecmp(filter->data.device, dev->device))
+		if (filter->data.device && !is_device_matched(dev, filter->data.device))
 			continue;
 
 		/* We get n-th card */
diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h
index 5f583a0666..e6b0f1b90a 100644
--- a/lib/igt_device_scan.h
+++ b/lib/igt_device_scan.h
@@ -50,6 +50,7 @@ struct igt_devices_print_format {
 	enum igt_devices_print_type   type;
 	enum igt_devices_print_option option;
 	bool numeric;
+	bool codename;
 };
 
 #define INTEGRATED_I915_GPU_PCI_ID "0000:00:02.0"
-- 
2.34.1

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

* [igt-dev] [PATCH i-g-t v4 3/6] tools/lsgpu: Add codename switch (-c)
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 1/6] lib/igt_device_scan: Migrate pci assignment Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 2/6] lib/igt_device_scan: Introduce codename for platform selection Zbigniew Kempczyński
@ 2022-07-18  7:11 ` Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 4/6] lib/igt_device_scan: Align microseconds to six leading zeros Zbigniew Kempczyński
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  7:11 UTC (permalink / raw)
  To: igt-dev

Add -c switch which will change default (pretty) platform name to
codename only. It may be useful for writing device selection filter.

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 tools/lsgpu.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tools/lsgpu.c b/tools/lsgpu.c
index 27e76f2616..da84e20505 100644
--- a/tools/lsgpu.c
+++ b/tools/lsgpu.c
@@ -73,6 +73,7 @@ enum {
 	OPT_PRINT_SIMPLE   = 's',
 	OPT_PRINT_DETAIL   = 'p',
 	OPT_NUMERIC        = 'n',
+	OPT_CODENAME       = 'c',
 	OPT_LIST_VENDORS   = 'v',
 	OPT_LIST_FILTERS   = 'l',
 	OPT_DEVICE         = 'd',
@@ -88,6 +89,7 @@ static const char *usage_str =
 	"usage: lsgpu [options]\n\n"
 	"Options:\n"
 	"  -n, --numeric               Print vendor/device as hex\n"
+	"  -c, --codename              Print codename instead pretty device name\n"
 	"  -s, --print-simple          Print simple (legacy) device details\n"
 	"  -p, --print-details         Print devices with details\n"
 	"  -v, --list-vendors          List recognized vendors\n"
@@ -163,6 +165,7 @@ int main(int argc, char *argv[])
 		{"sysfs",             no_argument,       NULL, 1},
 		{"pci",               no_argument,       NULL, 2},
 		{"numeric",           no_argument,       NULL, OPT_NUMERIC},
+		{"codename",          no_argument,       NULL, OPT_CODENAME},
 		{"print-simple",      no_argument,       NULL, OPT_PRINT_SIMPLE},
 		{"print-detail",      no_argument,       NULL, OPT_PRINT_DETAIL},
 		{"list-vendors",      no_argument,       NULL, OPT_LIST_VENDORS},
@@ -177,13 +180,16 @@ int main(int argc, char *argv[])
 			.type = IGT_PRINT_USER,
 	};
 
-	while ((c = getopt_long(argc, argv, "nspvld:h",
+	while ((c = getopt_long(argc, argv, "ncspvld:h",
 				long_options, &index)) != -1) {
 		switch(c) {
 
 		case OPT_NUMERIC:
 			fmt.numeric = true;
 			break;
+		case OPT_CODENAME:
+			fmt.codename = true;
+			break;
 		case OPT_PRINT_SIMPLE:
 			fmt.type = IGT_PRINT_SIMPLE;
 			break;
-- 
2.34.1

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

* [igt-dev] [PATCH i-g-t v4 4/6] lib/igt_device_scan: Align microseconds to six leading zeros
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (2 preceding siblings ...)
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 3/6] tools/lsgpu: Add codename switch (-c) Zbigniew Kempczyński
@ 2022-07-18  7:11 ` Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 5/6] lib/igt_device_scan: Add discrete/integrated pseudo-codenames Zbigniew Kempczyński
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  7:11 UTC (permalink / raw)
  To: igt-dev

Previous format was not correct when DBG() was in use leading to
not properly aligned output.

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 lib/igt_device_scan.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index 0ff49f96b7..23056894f1 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -34,6 +34,7 @@
 #include <libudev.h>
 #include <linux/limits.h>
 #include <sys/stat.h>
+#include <sys/time.h>
 #include <sys/types.h>
 
 /**
@@ -170,7 +171,7 @@
 { \
 	struct timeval tm; \
 	gettimeofday(&tm, NULL); \
-	printf("%10ld.%03ld: ", tm.tv_sec, tm.tv_usec); \
+	printf("%10ld.%06ld: ", tm.tv_sec, tm.tv_usec); \
 	printf(__VA_ARGS__); \
 }
 
-- 
2.34.1

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

* [igt-dev] [PATCH i-g-t v4 5/6] lib/igt_device_scan: Add discrete/integrated pseudo-codenames
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (3 preceding siblings ...)
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 4/6] lib/igt_device_scan: Align microseconds to six leading zeros Zbigniew Kempczyński
@ 2022-07-18  7:11 ` Zbigniew Kempczyński
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 6/6] lib/igt_device_scan: Simulate udev drm and pci device events Zbigniew Kempczyński
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  7:11 UTC (permalink / raw)
  To: igt-dev

For simply selection where test should just run on dedicated card type
pci + sriov selectors can now use:

pci:vendor=8086,device=integrated
pci:vendor=intel,device=integrated

or

pci:vendor=8086,device=discrete
pci:vendor=intel,device=discrete

or (when there're more discrete cards)

pci:vendor=8086,device=discrete,card=n
pci:vendor=intel,device=discrete,card=n

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 lib/igt_device_scan.c | 75 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 72 insertions(+), 3 deletions(-)

diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index 23056894f1..aad7966764 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -118,12 +118,19 @@
  *
  *   It selects the second one.
  *
- *   We may use device codename instead of pci device id:
+ *   We may use device codename or pseudo-codename (integrated/discrete)
+ *   instead of pci device id:
  *
  *   |[<!-- language="plain" -->
  *   pci:vendor=8086,device=skylake
  *   ]|
  *
+ *   or
+ *
+ *   |[<!-- language="plain" -->
+ *   pci:vendor=8086,device=integrated
+ *   ]|
+ *
  *   Another possibility is to select device using a PCI slot:
  *
  *   |[<!-- language="plain" -->
@@ -179,6 +186,15 @@
 #define DBG(...) {}
 #endif
 
+enum dev_type {
+	DEVTYPE_ALL,
+	DEVTYPE_INTEGRATED,
+	DEVTYPE_DISCRETE,
+};
+
+#define STR_INTEGRATED "integrated"
+#define STR_DISCRETE "discrete"
+
 static inline bool strequal(const char *a, const char *b)
 {
 	if (a == NULL || b == NULL)
@@ -213,6 +229,7 @@ struct igt_device {
 	int gpu_index; /* For more than one GPU with same vendor and device. */
 
 	char *codename; /* For grouping by codename */
+	enum dev_type dev_type; /* For grouping by integrated/discrete */
 
 	struct igt_list_head link;
 };
@@ -225,6 +242,7 @@ static struct {
 } igt_devs;
 
 typedef char *(*devname_fn)(uint16_t, uint16_t);
+typedef enum dev_type (*devtype_fn)(uint16_t, uint16_t, const char *);
 
 static char *devname_hex(uint16_t vendor, uint16_t device)
 {
@@ -273,14 +291,35 @@ static char *codename_intel(uint16_t vendor, uint16_t device)
 	return codename;
 }
 
+static enum dev_type devtype_intel(uint16_t vendor, uint16_t device, const char *pci_slot)
+{
+	(void) vendor;
+	(void) device;
+
+	if (!strncmp(pci_slot, INTEGRATED_I915_GPU_PCI_ID, PCI_SLOT_NAME_SIZE))
+		return DEVTYPE_INTEGRATED;
+
+	return DEVTYPE_DISCRETE;
+}
+
+static enum dev_type devtype_all(uint16_t vendor, uint16_t device, const char *pci_slot)
+{
+	(void) vendor;
+	(void) device;
+	(void) pci_slot;
+
+	return DEVTYPE_ALL;
+}
+
 static struct {
 	const char *name;
 	const char *vendor_id;
 	devname_fn devname;
 	devname_fn codename;
+	devtype_fn devtype;
 } pci_vendor_mapping[] = {
-	{ "intel", "8086", devname_intel, codename_intel },
-	{ "amd", "1002", devname_hex, devname_hex },
+	{ "intel", "8086", devname_intel, codename_intel, devtype_intel },
+	{ "amd", "1002", devname_hex, devname_hex, devtype_all },
 	{ NULL, },
 };
 
@@ -323,6 +362,20 @@ static devname_fn get_pci_vendor_device_codename_fn(uint16_t vendor)
 	return devname_hex;
 }
 
+static devtype_fn get_pci_vendor_device_devtype_fn(uint16_t vendor)
+{
+	char vendorstr[5];
+
+	snprintf(vendorstr, sizeof(vendorstr), "%04x", vendor);
+
+	for (typeof(*pci_vendor_mapping) *vm = pci_vendor_mapping; vm->name; vm++) {
+		if (!strcasecmp(vendorstr, vm->vendor_id))
+			return vm->devtype;
+	}
+
+	return devtype_all;
+}
+
 static void get_pci_vendor_device(const struct igt_device *dev,
 				  uint16_t *vendorp, uint16_t *devicep)
 {
@@ -354,6 +407,15 @@ static char *__pci_codename(uint16_t vendor, uint16_t device)
 	return fn(vendor, device);
 }
 
+static enum dev_type __pci_devtype(uint16_t vendor, uint16_t device, const char *pci_slot)
+{
+	devtype_fn fn;
+
+	fn = get_pci_vendor_device_devtype_fn(vendor);
+
+	return fn(vendor, device, pci_slot);
+}
+
 /* Reading sysattr values can take time (even seconds),
  * we want to avoid reading such keys.
  */
@@ -569,6 +631,7 @@ static struct igt_device *igt_device_new_from_udev(struct udev_device *dev)
 		set_pci_slot_name(idev);
 		get_pci_vendor_device(idev, &vendor, &device);
 		idev->codename = __pci_codename(vendor, device);
+		idev->dev_type = __pci_devtype(vendor, device, idev->pci_slot_name);
 	}
 
 	return idev;
@@ -620,6 +683,12 @@ static bool is_device_matched(struct igt_device *dev, const char *device)
 	if (!strcasecmp(dev->device, device))
 		return true;
 
+	/* Try "integrated" and "discrete" */
+	if (dev->dev_type == DEVTYPE_INTEGRATED && !strcasecmp(device, STR_INTEGRATED))
+		return true;
+	else if (dev->dev_type == DEVTYPE_DISCRETE && !strcasecmp(device, STR_DISCRETE))
+		return true;
+
 	/* Try codename */
 	return !strcasecmp(dev->codename, device);
 }
-- 
2.34.1

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

* [igt-dev] [PATCH i-g-t v4 6/6] lib/igt_device_scan: Simulate udev drm and pci device events
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (4 preceding siblings ...)
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 5/6] lib/igt_device_scan: Add discrete/integrated pseudo-codenames Zbigniew Kempczyński
@ 2022-07-18  7:11 ` Zbigniew Kempczyński
  2022-07-18 17:11   ` Kamil Konieczny
  2022-07-18  8:02 ` [igt-dev] ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4) Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  7:11 UTC (permalink / raw)
  To: igt-dev

For all udev_*() calls used in device scan add its static counterparts.
Instead of transplanting real udev data structures (private ones) some
primitive replacement were added. Devices are added directly from code
- such implementation was a little bit faster than parsing some config
files (especially pci slot manipulation to provide some properties which
slightly differs).

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
v4: Address review comments (Kamil)
---
 lib/igt_device_scan.c          |   7 +
 lib/igt_device_scan_simulate.c | 448 +++++++++++++++++++++++++++++++++
 2 files changed, 455 insertions(+)
 create mode 100644 lib/igt_device_scan_simulate.c

diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index aad7966764..f4e7659e42 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -904,6 +904,13 @@ static void index_pci_devices(void)
  * Function sorts all found devices to keep same order of bus devices
  * for providing predictable search.
  */
+
+#ifdef SIMULATE_UDEV_DEVICES
+
+#include "igt_device_scan_simulate.c"
+
+#endif
+
 static void scan_drm_devices(void)
 {
 	struct udev *udev;
diff --git a/lib/igt_device_scan_simulate.c b/lib/igt_device_scan_simulate.c
new file mode 100644
index 0000000000..b2a57edd1f
--- /dev/null
+++ b/lib/igt_device_scan_simulate.c
@@ -0,0 +1,448 @@
+/*
+ * Example: Skylake
+1656514333.437262: --------------------
+1656514333.437263: SYSPATH: /sys/devices/pci0000:00/0000:00:02.0/drm/card0
+1656514333.437294: SUBSYSTEM: drm
+1656514333.437377: prop: CURRENT_TAGS, val: :seat:mutter-device-disable-kms-modifiers:master-of-seat:uaccess:
+1656514333.437378: prop: DEVLINKS, val: /dev/dri/by-path/pci-0000:00:02.0-card
+1656514333.437378: prop: DEVNAME, val: /dev/dri/card0
+1656514333.437379: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0/drm/card0
+1656514333.437379: prop: DEVTYPE, val: drm_minor
+1656514333.437380: prop: ID_FOR_SEAT, val: drm-pci-0000_00_02_0
+1656514333.437380: prop: ID_PATH, val: pci-0000:00:02.0
+1656514333.437382: prop: ID_PATH_TAG, val: pci-0000_00_02_0
+1656514333.437383: prop: MAJOR, val: 226
+1656514333.437383: prop: MINOR, val: 0
+1656514333.437383: prop: SUBSYSTEM, val: drm
+1656514333.437384: prop: TAGS, val: :seat:mutter-device-disable-kms-modifiers:master-of-seat:uaccess:
+1656514333.437384: prop: USEC_INITIALIZED, val: 31377470
+1656514333.438273: attr: dev, val: 226:0
+1656406120.387751: attr: subsystem, val: drm
+
+1656514333.440217: --------------------
+1656514333.440217: parent: 0000:00:02.0
+1656514333.440223: subsystem: pci
+1656514333.440224: syspath: /sys/devices/pci0000:00/0000:00:02.0
+1656514333.440297: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0
+1656514333.440298: prop: DRIVER, val: i915
+1656514333.440298: prop: ID_MODEL_FROM_DATABASE, val: Iris Graphics 540
+1656514333.440299: prop: ID_PCI_CLASS_FROM_DATABASE, val: Display controller
+1656514333.440299: prop: ID_PCI_INTERFACE_FROM_DATABASE, val: VGA controller
+1656514333.440300: prop: ID_PCI_SUBCLASS_FROM_DATABASE, val: VGA compatible controller
+1656514333.440300: prop: ID_VENDOR_FROM_DATABASE, val: Intel Corporation
+1656514333.440301: prop: MODALIAS, val: pci:v00008086d00001926sv00008086sd00002063bc03sc00i00
+1656514333.440302: prop: PCI_CLASS, val: 30000
+1656514333.440302: prop: PCI_ID, val: 8086:1926
+1656514333.440303: prop: PCI_SLOT_NAME, val: 0000:00:02.0
+1656514333.440303: prop: PCI_SUBSYS_ID, val: 8086:2063
+1656514333.440304: prop: SUBSYSTEM, val: pci
+1656514333.440304: prop: SWITCHEROO_CONTROL_PRODUCT_NAME, val: Iris(R) Graphics 540
+1656514333.440305: prop: SWITCHEROO_CONTROL_VENDOR_NAME, val: Intel(R)
+1656514333.440306: prop: USEC_INITIALIZED, val: 6111540
+1656514333.440692: attr: class, val: 0x030000
+1656514333.440750: attr: device, val: 0x1926
+1656514333.441116: attr: subsystem, val: pci
+1656514333.441130: attr: subsystem_device, val: 0x2063
+1656514333.441141: attr: subsystem_vendor, val: 0x8086
+1656514333.441162: attr: vendor, val: 0x8086
+
+1656514333.441271: --------------------
+1656514333.441272: SYSPATH: /sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
+1656514333.441305: SUBSYSTEM: drm
+1656514333.441390: prop: CURRENT_TAGS, val: :seat:mutter-device-disable-kms-modifiers:uaccess:
+1656514333.441391: prop: DEVLINKS, val: /dev/dri/by-path/pci-0000:00:02.0-render
+1656514333.441391: prop: DEVNAME, val: /dev/dri/renderD128
+1656514333.441392: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0/drm/renderD128
+1656514333.441392: prop: DEVTYPE, val: drm_minor
+1656514333.441393: prop: ID_FOR_SEAT, val: drm-pci-0000_00_02_0
+1656514333.441393: prop: ID_PATH, val: pci-0000:00:02.0
+1656514333.441395: prop: ID_PATH_TAG, val: pci-0000_00_02_0
+1656514333.441395: prop: MAJOR, val: 226
+1656514333.441396: prop: MINOR, val: 128
+1656514333.441396: prop: SUBSYSTEM, val: drm
+1656514333.441396: prop: TAGS, val: :seat:mutter-device-disable-kms-modifiers:uaccess:
+1656514333.441397: prop: USEC_INITIALIZED, val: 31377515
+1656514333.441525: attr: dev, val: 226:128
+1656514333.441657: attr: subsystem, val: drm
+*/
+
+enum entry_type {
+	TYPE_DEVICE,
+	TYPE_PROP,
+	TYPE_ATTR,
+};
+
+struct udev_list_entry {
+	enum entry_type entry_type;
+	int curr;
+} _entry_dev, _entry_prop, _entry_attr;
+
+struct keyval {
+	char key[NAME_MAX];
+	char val[NAME_MAX];
+};
+
+#define MAXDEVS 16
+#define MAXPROPS 16
+#define MAXATTRS 8
+struct udev_device {
+	struct udev_device *parent;
+	char syspath[NAME_MAX];
+	char devnode[NAME_MAX];
+	char subsystem[8];
+	struct keyval prop[MAXPROPS];
+	struct udev_list_entry *prop_head;
+	struct keyval attr[MAXATTRS];
+	struct udev_list_entry *attr_head;
+	int props;
+	int attrs;
+};
+
+struct udev {
+	struct udev_device *dev[MAXDEVS];
+} _udev;
+
+struct udev_enumerate {
+	struct udev *udev;
+} _udev_enumerate;
+
+static void print_udev_device(const struct udev_device *dev)
+{
+#ifdef DEBUG_SCAN_SIMULATE
+	int i;
+
+	printf("[%s]\n", dev->syspath);
+
+	printf("props:\n");
+	for (i = 0; i < dev->props; i++)
+		printf("   %s: %s\n", dev->prop[i].key, dev->prop[i].val);
+
+	printf("attrs:\n");
+	for (i = 0; i < dev->attrs; i++)
+		printf("   %s: %s\n", dev->attr[i].key, dev->attr[i].val);
+#endif
+}
+
+#define __ADD_PROP(__dev, __key, __args...) do { \
+	struct keyval *kv; \
+	igt_assert((__dev)->props <= MAXPROPS); \
+	kv = &(__dev)->prop[(__dev)->props]; \
+	strncpy(kv->key, (__key), NAME_MAX); \
+	snprintf(kv->val, NAME_MAX, args); \
+	(__dev)->props++; \
+	} while (0)
+
+#define __ADD_ATTR(__dev, __key, __args...) do { \
+	struct keyval *kv; \
+	igt_assert((__dev)->attrs <= MAXATTRS); \
+	kv = &(__dev)->attr[(__dev)->attrs]; \
+	strncpy(kv->key, (__key), NAME_MAX); \
+	snprintf(kv->val, NAME_MAX, args); \
+	(__dev)->attrs++; \
+	} while (0)
+
+static struct udev_device *
+create_pci_udev_device(struct udev *udev,
+		       const char *syspath, const char *bdf,
+		       uint16_t vendor, uint16_t device, uint16_t subsystem)
+{
+	struct udev_device *dev;
+	char bus[13];
+
+	igt_assert(strlen(bdf) == 12);
+
+	dev = calloc(1, sizeof(*dev));
+	igt_assert(dev);
+
+	dev->parent = dev;
+	snprintf(dev->syspath, NAME_MAX, "%s", syspath);
+	strncpy(dev->subsystem, "pci", 4);
+
+	/* avoid compiler warning when copying less than 12 */
+	strncpy(bus, bdf, 13);
+	bus[7] = '\0';
+
+	__ADD_PROP(dev, "DEVPATH", "/devices/pci%s/%s", bus, bdf);
+	__ADD_PROP(dev, "DRIVER", "i915");
+	__ADD_PROP(dev, "PCI_CLASS", "30000");
+	__ADD_PROP(dev, "PCI_ID", "%04x:%04x", vendor, device);
+	__ADD_PROP(dev, "PCI_SLOT_NAME", "%s", bdf);
+	__ADD_PROP(dev, "PCI_SUBSYS_ID", "%04x:%04x", vendor, subsystem);
+	__ADD_PROP(dev, "SUBSYSTEM", "pci");
+
+	__ADD_ATTR(dev, "class", "0x030000");
+	__ADD_ATTR(dev, "device", "0x%04x", device);
+	__ADD_ATTR(dev, "subsystem", "pci");
+	__ADD_ATTR(dev, "subsystem_device", "0x%04x", subsystem);
+	__ADD_ATTR(dev, "subsystem_vendor", "0x%04x", vendor);
+	__ADD_ATTR(dev, "vendor", "0x%04x", vendor);
+
+	return dev;
+}
+
+static struct udev_device *
+create_drm_udev_device(struct udev *udev, struct udev_device *parent,
+		       const char *syspath, const char *bdf, int card,
+		       int major, int minor)
+{
+	struct udev_device *dev;
+	const char *name = card < 128 ? "card" : "render";
+	const char *drmname = card < 128 ? "card" : "renderD";
+	char bus[13];
+
+	igt_assert(strlen(bdf) == 12);
+
+	dev = calloc(1, sizeof(*dev));
+	igt_assert(dev);
+
+	dev->parent = parent;
+	snprintf(dev->syspath, NAME_MAX, "%s", syspath);
+	strncpy(dev->subsystem, "drm", 4);
+	snprintf(dev->devnode, NAME_MAX, "/dev/dri/%s%d", drmname, card);
+
+	/* avoid compiler warning when copying less than 12 */
+	strncpy(bus, bdf, 13);
+	bus[7] = '\0';
+
+	__ADD_PROP(dev, "DEVLINKS", "/dev/dri/by-path/pci-%s-%s", bdf, name);
+	__ADD_PROP(dev, "DEVNAME", "/dev/dri/%s%d", drmname, card);
+	__ADD_PROP(dev, "DEVPATH", "/devices/pci%s/%s/drm/%s%d", bus, bdf,
+		   drmname, card);
+	__ADD_PROP(dev, "DEVTYPE", "drm_minor");
+	__ADD_PROP(dev, "ID_PATH", "pci-%s", bdf);
+	__ADD_PROP(dev, "MAJOR", "%d", major);
+	__ADD_PROP(dev, "MINOR", "%d", minor);
+	__ADD_PROP(dev, "SUBSYSTEM", "drm");
+
+	__ADD_ATTR(dev, "dev", "%d:%d", major, minor);
+	__ADD_ATTR(dev, "subsystem", "drm");
+
+	return dev;
+}
+
+static struct udev_device **add_intel_dev(struct udev *udev, struct udev_device **dev,
+					  const char *pci_slot, uint16_t pci_device)
+{
+	struct udev_device **parent;
+	char bd[13], path[NAME_MAX];
+	static int card;
+
+	strncpy(bd, pci_slot, 13);
+	bd[7] = 0;
+
+	parent = dev;
+
+	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s", bd, pci_slot);
+	*dev++ = create_pci_udev_device(udev, path, pci_slot,
+					0x8086, pci_device, 0x2063);
+
+	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s/drm/card%d",
+		 bd, pci_slot, card);
+	*dev++ = create_drm_udev_device(udev, *parent, path, pci_slot,
+					card, 226, card);
+
+	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s/drm/renderD%d",
+		 bd, pci_slot, card + 128);
+	*dev++ = create_drm_udev_device(udev, *parent, path, pci_slot,
+					card + 128, 226, card + 128);
+
+	card++;
+
+	return dev;
+}
+
+struct udev *udev_new(void)
+{
+	struct udev *udev = &_udev;
+	struct udev_device **dev = udev->dev;
+
+	memset(dev, 0, sizeof(_udev.dev));
+
+	dev = add_intel_dev(udev, dev, "0000:00:02.0", 0x1926); /* skl */
+	dev = add_intel_dev(udev, dev, "0000:01:00.0", 0x56a1); /* dg2 */
+	dev = add_intel_dev(udev, dev, "0000:02:02.1", 0x9a40); /* tgl */
+	dev = add_intel_dev(udev, dev, "0000:03:01.0", 0x56a0); /* dg2 */
+	dev = add_intel_dev(udev, dev, "0000:04:02.0", 0x56a2); /* dg2 */
+
+	dev = udev->dev;
+	while (*dev)
+		print_udev_device(*dev++);
+
+	return &_udev;
+}
+
+struct udev_enumerate *udev_enumerate_new(struct udev *udev)
+{
+	_udev_enumerate.udev = udev;
+
+	return &_udev_enumerate;
+}
+
+int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate,
+				       const char *subsystem)
+{
+	return 0;
+}
+
+int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate,
+				      const char *property, const char *value)
+{
+	return 0;
+}
+
+int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate)
+{
+	return 0;
+}
+
+struct udev_list_entry *
+udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate)
+{
+	_entry_dev.entry_type = TYPE_DEVICE;
+	_entry_dev.curr = 0;
+
+	return &_entry_dev;
+}
+
+struct udev_list_entry *
+udev_list_entry_get_next(struct udev_list_entry *list_entry)
+{
+	int curr, currdev = _entry_dev.curr;
+
+	switch (list_entry->entry_type) {
+	case TYPE_DEVICE:
+		if (_udev.dev[++list_entry->curr])
+			return list_entry;
+		break;
+	case TYPE_PROP:
+		curr = ++list_entry->curr;
+		if (curr < _udev.dev[currdev]->props)
+			return list_entry;
+		break;
+	case TYPE_ATTR:
+		curr = ++list_entry->curr;
+		if (curr < _udev.dev[currdev]->attrs)
+			return list_entry;
+		break;
+	}
+
+	return NULL;
+}
+
+const char *udev_list_entry_get_name(struct udev_list_entry *list_entry)
+{
+	int curr, currdev = _entry_dev.curr;
+
+	switch (list_entry->entry_type) {
+	case TYPE_DEVICE:
+		return _udev.dev[list_entry->curr]->syspath;
+	case TYPE_PROP:
+		curr = _entry_prop.curr;
+		return _udev.dev[currdev]->prop[curr].key;
+	case TYPE_ATTR:
+		curr = _entry_attr.curr;
+		return _udev.dev[currdev]->attr[curr].key;
+	}
+
+	return "UNKNOWN";
+}
+
+const char *udev_list_entry_get_value(struct udev_list_entry *list_entry)
+{
+	int curr, currdev = _entry_dev.curr;
+
+	switch (list_entry->entry_type) {
+	case TYPE_DEVICE:
+		return "";
+	case TYPE_PROP:
+		curr = _entry_prop.curr;
+		return _udev.dev[currdev]->prop[curr].val;
+	case TYPE_ATTR:
+		curr = _entry_attr.curr;
+		return _udev.dev[currdev]->attr[curr].val;
+	}
+
+	return "UNKNOWN";
+}
+
+struct udev_device *udev_device_new_from_syspath(struct udev *udev,
+						 const char *syspath)
+{
+	int i;
+
+	for (i = 0; i < sizeof(udev->dev); i++) {
+		if (!udev->dev[i])
+			return NULL;
+
+		if (strcmp(udev->dev[i]->syspath, syspath) == 0)
+			return udev->dev[i];
+	}
+
+	return NULL;
+}
+
+const char *udev_device_get_subsystem(struct udev_device *udev_device)
+{
+	return udev_device->subsystem;
+}
+
+const char *udev_device_get_syspath(struct udev_device *udev_device)
+{
+	return udev_device->syspath;
+}
+
+const char *udev_device_get_devnode(struct udev_device *udev_device)
+{
+	if (udev_device->devnode[0] == '\0')
+		return NULL;
+
+	return udev_device->devnode;
+}
+
+struct udev_list_entry *
+udev_device_get_properties_list_entry(struct udev_device *udev_device)
+{
+	_entry_prop.entry_type = TYPE_PROP;
+	_entry_prop.curr = 0;
+
+	return &_entry_prop;
+}
+
+struct udev_list_entry *
+udev_device_get_sysattr_list_entry(struct udev_device *udev_device)
+{
+	_entry_attr.entry_type = TYPE_ATTR;
+	_entry_attr.curr = 0;
+
+	return &_entry_attr;
+}
+
+const char *
+udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr)
+{
+	for (int i = 0; i < udev_device->attrs; i++)
+		if (strcmp(udev_device->attr[i].key, sysattr) == 0)
+			return udev_device->attr[i].val;
+
+	return "UNKNOWN";
+}
+
+const char *udev_device_get_sysname(struct udev_device *udev_device)
+{
+	return udev_device->syspath;
+}
+
+struct udev_device *udev_device_get_parent(struct udev_device *udev_device)
+{
+	return udev_device->parent;
+}
+
+struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate)
+{
+	return NULL;
+}
+
+struct udev_device *udev_device_unref(struct udev_device *udev_device)
+{
+	return NULL;
+}
-- 
2.34.1

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

* [igt-dev] ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4)
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (5 preceding siblings ...)
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 6/6] lib/igt_device_scan: Simulate udev drm and pci device events Zbigniew Kempczyński
@ 2022-07-18  8:02 ` Patchwork
  2022-07-18  8:41   ` Zbigniew Kempczyński
  2022-07-18 14:17 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
  2022-07-18 19:19 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  8 siblings, 1 reply; 14+ messages in thread
From: Patchwork @ 2022-07-18  8:02 UTC (permalink / raw)
  To: Zbigniew Kempczyński; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 10655 bytes --]

== Series Details ==

Series: Add codename in device selection (rev4)
URL   : https://patchwork.freedesktop.org/series/106012/
State : failure

== Summary ==

CI Bug Log - changes from IGT_6587 -> IGTPW_7532
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_7532 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_7532, 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_7532/index.html

Participating hosts (38 -> 42)
------------------------------

  Additional (5): fi-bxt-dsi fi-rkl-11600 bat-dg2-9 bat-adln-1 bat-jsl-3 
  Missing    (1): bat-adlm-1 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2:
    - fi-icl-u2:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#2190])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@gem_huc_copy@huc-copy.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][4] ([i915#2190])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-rkl-11600:       NOTRUN -> [SKIP][5] ([i915#4613]) +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#4613]) +3 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_tiled_blits@basic:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][7] ([fdo#109271]) +12 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@gem_tiled_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - fi-rkl-11600:       NOTRUN -> [SKIP][8] ([i915#3282])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-rkl-11600:       NOTRUN -> [SKIP][9] ([i915#3012])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_selftest@live@execlists:
    - fi-bsw-nick:        [PASS][10] -> [INCOMPLETE][11] ([i915#2940])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-bsw-nick/igt@i915_selftest@live@execlists.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bsw-nick/igt@i915_selftest@live@execlists.html

  * igt@i915_suspend@basic-s3-without-i915:
    - fi-rkl-11600:       NOTRUN -> [INCOMPLETE][12] ([i915#5982])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-hsw-4770:        NOTRUN -> [SKIP][13] ([fdo#109271] / [fdo#111827])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-hsw-4770/igt@kms_chamelium@common-hpd-after-suspend.html
    - fi-bdw-5557u:       NOTRUN -> [SKIP][14] ([fdo#109271] / [fdo#111827])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bdw-5557u/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][15] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@kms_chamelium@hdmi-edid-read.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][16] ([fdo#111827]) +7 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_chamelium@hdmi-edid-read.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
    - fi-rkl-11600:       NOTRUN -> [SKIP][17] ([i915#4103])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1:
    - fi-icl-u2:          [PASS][18] -> [DMESG-WARN][19] ([i915#4890])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-rkl-11600:       NOTRUN -> [SKIP][20] ([fdo#109285] / [i915#4098])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@primary_page_flip:
    - fi-rkl-11600:       NOTRUN -> [SKIP][21] ([i915#1072]) +3 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_psr@primary_page_flip.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - fi-rkl-11600:       NOTRUN -> [SKIP][22] ([i915#3555] / [i915#4098])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-read:
    - fi-rkl-11600:       NOTRUN -> [SKIP][23] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@basic-userptr:
    - fi-rkl-11600:       NOTRUN -> [SKIP][24] ([fdo#109295] / [i915#3301] / [i915#3708])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@prime_vgem@basic-userptr.html

  * igt@runner@aborted:
    - fi-icl-u2:          NOTRUN -> [FAIL][25] ([i915#4312])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-icl-u2/igt@runner@aborted.html
    - fi-bsw-nick:        NOTRUN -> [FAIL][26] ([fdo#109271] / [i915#4312])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bsw-nick/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-4770:        [INCOMPLETE][27] ([i915#4785]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html

  
#### Warnings ####

  * igt@i915_selftest@live@hangcheck:
    - bat-dg1-5:          [DMESG-FAIL][29] ([i915#4494] / [i915#4957]) -> [DMESG-FAIL][30] ([i915#4957])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/bat-dg1-5/igt@i915_selftest@live@hangcheck.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3595]: https://gitlab.freedesktop.org/drm/intel/issues/3595
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4890]: https://gitlab.freedesktop.org/drm/intel/issues/4890
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#5174]: https://gitlab.freedesktop.org/drm/intel/issues/5174
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763
  [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
  [i915#5982]: https://gitlab.freedesktop.org/drm/intel/issues/5982
  [i915#6297]: https://gitlab.freedesktop.org/drm/intel/issues/6297


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6587 -> IGTPW_7532

  CI-20190529: 20190529
  CI_DRM_11907: b6ce6eb7d8d6fea0e38563dbc7a4881a7e36992f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7532: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html
  IGT_6587: a37df4b538ae7b5bb1bb47be4804b4787410325d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html

[-- Attachment #2: Type: text/html, Size: 11758 bytes --]

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

* Re: [igt-dev] ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4)
  2022-07-18  8:02 ` [igt-dev] ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4) Patchwork
@ 2022-07-18  8:41   ` Zbigniew Kempczyński
  2022-07-18 15:18     ` Vudum, Lakshminarayana
  0 siblings, 1 reply; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-18  8:41 UTC (permalink / raw)
  To: igt-dev; +Cc: Lakshminarayana Vudum

On Mon, Jul 18, 2022 at 08:02:27AM +0000, Patchwork wrote:
>    Patch Details
> 
>    Series:  Add codename in device selection (rev4)                        
>    URL:     https://patchwork.freedesktop.org/series/106012/               
>    State:   failure                                                        
>    Details: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html 
> 
>                 CI Bug Log - changes from IGT_6587 -> IGTPW_7532
> 
> Summary
> 
>    FAILURE
> 
>    Serious unknown changes coming with IGTPW_7532 absolutely need to be
>    verified manually.
> 
>    If you think the reported changes have nothing to do with the changes
>    introduced in IGTPW_7532, 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_7532/index.html
> 
> Participating hosts (38 -> 42)
> 
>    Additional (5): fi-bxt-dsi fi-rkl-11600 bat-dg2-9 bat-adln-1 bat-jsl-3
>    Missing (1): bat-adlm-1
> 
> Possible new issues
> 
>    Here are the unknown changes that may have been introduced in IGTPW_7532:
> 
>   IGT changes
> 
>     Possible regressions
> 
>      * igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2:
>           * fi-icl-u2: PASS -> INCOMPLETE

Unrelated to change in series.

--
Zbigniew


> 
> Known issues
> 
>    Here are the changes found in IGTPW_7532 that come from known issues:
> 
>   IGT changes
> 
>     Issues hit
> 
>      * igt@gem_huc_copy@huc-copy:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271 / i915#2190)
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#2190)
> 
>      * igt@gem_lmem_swapping@basic:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#4613) +3 similar issues
>      * igt@gem_lmem_swapping@parallel-random-engines:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271 / i915#4613) +3 similar
>             issues
>      * igt@gem_tiled_blits@basic:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271) +12 similar issues
>      * igt@gem_tiled_pread_basic:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#3282)
>      * igt@i915_pm_backlight@basic-brightness:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#3012)
>      * igt@i915_selftest@live@execlists:
> 
>           * fi-bsw-nick: PASS -> INCOMPLETE (i915#2940)
>      * igt@i915_suspend@basic-s3-without-i915:
> 
>           * fi-rkl-11600: NOTRUN -> INCOMPLETE (i915#5982)
>      * igt@kms_chamelium@common-hpd-after-suspend:
> 
>           * fi-hsw-4770: NOTRUN -> SKIP (fdo#109271 / fdo#111827)
> 
>           * fi-bdw-5557u: NOTRUN -> SKIP (fdo#109271 / fdo#111827)
> 
>      * igt@kms_chamelium@hdmi-edid-read:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271 / fdo#111827) +8 similar
>             issues
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#111827) +7 similar issues
> 
>      * igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#4103)
>      * igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1:
> 
>           * fi-icl-u2: PASS -> DMESG-WARN (i915#4890)
>      * igt@kms_force_connector_basic@force-load-detect:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#109285 / i915#4098)
>      * igt@kms_psr@primary_page_flip:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#1072) +3 similar issues
>      * igt@kms_setmode@basic-clone-single-crtc:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#3555 / i915#4098)
>      * igt@prime_vgem@basic-read:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#109295 / i915#3291 / i915#3708)
>             +2 similar issues
>      * igt@prime_vgem@basic-userptr:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#109295 / i915#3301 / i915#3708)
>      * igt@runner@aborted:
> 
>           * fi-icl-u2: NOTRUN -> FAIL (i915#4312)
> 
>           * fi-bsw-nick: NOTRUN -> FAIL (fdo#109271 / i915#4312)
> 
>     Possible fixes
> 
>      * igt@i915_selftest@live@hangcheck:
>           * fi-hsw-4770: INCOMPLETE (i915#4785) -> PASS
> 
>     Warnings
> 
>      * igt@i915_selftest@live@hangcheck:
>           * bat-dg1-5: DMESG-FAIL (i915#4494 / i915#4957) -> DMESG-FAIL
>             (i915#4957)
> 
>    {name}: This element is suppressed. This means it is ignored when
>    computing
>    the status of the difference (SUCCESS, WARNING, or FAILURE).
> 
> Build changes
> 
>      * CI: CI-20190529 -> None
>      * IGT: IGT_6587 -> IGTPW_7532
> 
>    CI-20190529: 20190529
>    CI_DRM_11907: b6ce6eb7d8d6fea0e38563dbc7a4881a7e36992f @
>    git://anongit.freedesktop.org/gfx-ci/linux
>    IGTPW_7532: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html
>    IGT_6587: a37df4b538ae7b5bb1bb47be4804b4787410325d @
>    https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

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

* [igt-dev] ✓ Fi.CI.BAT: success for Add codename in device selection (rev4)
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (6 preceding siblings ...)
  2022-07-18  8:02 ` [igt-dev] ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4) Patchwork
@ 2022-07-18 14:17 ` Patchwork
  2022-07-18 19:19 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2022-07-18 14:17 UTC (permalink / raw)
  To: Zbigniew Kempczyński; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 10272 bytes --]

== Series Details ==

Series: Add codename in device selection (rev4)
URL   : https://patchwork.freedesktop.org/series/106012/
State : success

== Summary ==

CI Bug Log - changes from IGT_6587 -> IGTPW_7532
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (38 -> 42)
------------------------------

  Additional (5): fi-bxt-dsi fi-rkl-11600 bat-dg2-9 bat-adln-1 bat-jsl-3 
  Missing    (1): bat-adlm-1 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@gem_huc_copy@huc-copy.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][2] ([i915#2190])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-rkl-11600:       NOTRUN -> [SKIP][3] ([i915#4613]) +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#4613]) +3 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_tiled_blits@basic:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][5] ([fdo#109271]) +12 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@gem_tiled_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - fi-rkl-11600:       NOTRUN -> [SKIP][6] ([i915#3282])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-rkl-11600:       NOTRUN -> [SKIP][7] ([i915#3012])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_selftest@live@execlists:
    - fi-bsw-nick:        [PASS][8] -> [INCOMPLETE][9] ([i915#2940])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-bsw-nick/igt@i915_selftest@live@execlists.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bsw-nick/igt@i915_selftest@live@execlists.html

  * igt@i915_suspend@basic-s3-without-i915:
    - fi-rkl-11600:       NOTRUN -> [INCOMPLETE][10] ([i915#5982])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-hsw-4770:        NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-hsw-4770/igt@kms_chamelium@common-hpd-after-suspend.html
    - fi-bdw-5557u:       NOTRUN -> [SKIP][12] ([fdo#109271] / [fdo#111827])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bdw-5557u/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-bxt-dsi:         NOTRUN -> [SKIP][13] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bxt-dsi/igt@kms_chamelium@hdmi-edid-read.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][14] ([fdo#111827]) +7 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_chamelium@hdmi-edid-read.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
    - fi-rkl-11600:       NOTRUN -> [SKIP][15] ([i915#4103])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2:
    - fi-icl-u2:          [PASS][16] -> [INCOMPLETE][17] ([i915#6459])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1:
    - fi-icl-u2:          [PASS][18] -> [DMESG-WARN][19] ([i915#4890])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-rkl-11600:       NOTRUN -> [SKIP][20] ([fdo#109285] / [i915#4098])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@primary_page_flip:
    - fi-rkl-11600:       NOTRUN -> [SKIP][21] ([i915#1072]) +3 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_psr@primary_page_flip.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - fi-rkl-11600:       NOTRUN -> [SKIP][22] ([i915#3555] / [i915#4098])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-read:
    - fi-rkl-11600:       NOTRUN -> [SKIP][23] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@basic-userptr:
    - fi-rkl-11600:       NOTRUN -> [SKIP][24] ([fdo#109295] / [i915#3301] / [i915#3708])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-rkl-11600/igt@prime_vgem@basic-userptr.html

  * igt@runner@aborted:
    - fi-icl-u2:          NOTRUN -> [FAIL][25] ([i915#4312])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-icl-u2/igt@runner@aborted.html
    - fi-bsw-nick:        NOTRUN -> [FAIL][26] ([fdo#109271] / [i915#4312])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-bsw-nick/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-4770:        [INCOMPLETE][27] ([i915#4785]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html

  
#### Warnings ####

  * igt@i915_selftest@live@hangcheck:
    - bat-dg1-5:          [DMESG-FAIL][29] ([i915#4494] / [i915#4957]) -> [DMESG-FAIL][30] ([i915#4957])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/bat-dg1-5/igt@i915_selftest@live@hangcheck.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3595]: https://gitlab.freedesktop.org/drm/intel/issues/3595
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4890]: https://gitlab.freedesktop.org/drm/intel/issues/4890
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#5174]: https://gitlab.freedesktop.org/drm/intel/issues/5174
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763
  [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
  [i915#5982]: https://gitlab.freedesktop.org/drm/intel/issues/5982
  [i915#6297]: https://gitlab.freedesktop.org/drm/intel/issues/6297
  [i915#6459]: https://gitlab.freedesktop.org/drm/intel/issues/6459


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6587 -> IGTPW_7532

  CI-20190529: 20190529
  CI_DRM_11907: b6ce6eb7d8d6fea0e38563dbc7a4881a7e36992f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7532: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html
  IGT_6587: a37df4b538ae7b5bb1bb47be4804b4787410325d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html

[-- Attachment #2: Type: text/html, Size: 11363 bytes --]

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

* Re: [igt-dev] ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4)
  2022-07-18  8:41   ` Zbigniew Kempczyński
@ 2022-07-18 15:18     ` Vudum, Lakshminarayana
  0 siblings, 0 replies; 14+ messages in thread
From: Vudum, Lakshminarayana @ 2022-07-18 15:18 UTC (permalink / raw)
  To: Kempczynski, Zbigniew, igt-dev

Filed a new issue  https://gitlab.freedesktop.org/drm/intel/-/issues/6459and re-reported.

-----Original Message-----
From: Kempczynski, Zbigniew <zbigniew.kempczynski@intel.com> 
Sent: Monday, July 18, 2022 1:42 AM
To: igt-dev@lists.freedesktop.org
Cc: Vudum, Lakshminarayana <lakshminarayana.vudum@intel.com>
Subject: Re: ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4)

On Mon, Jul 18, 2022 at 08:02:27AM +0000, Patchwork wrote:
>    Patch Details
> 
>    Series:  Add codename in device selection (rev4)                        
>    URL:     https://patchwork.freedesktop.org/series/106012/               
>    State:   failure                                                        
>    Details: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html 
> 
>                 CI Bug Log - changes from IGT_6587 -> IGTPW_7532
> 
> Summary
> 
>    FAILURE
> 
>    Serious unknown changes coming with IGTPW_7532 absolutely need to be
>    verified manually.
> 
>    If you think the reported changes have nothing to do with the changes
>    introduced in IGTPW_7532, 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_7532/index.html
> 
> Participating hosts (38 -> 42)
> 
>    Additional (5): fi-bxt-dsi fi-rkl-11600 bat-dg2-9 bat-adln-1 bat-jsl-3
>    Missing (1): bat-adlm-1
> 
> Possible new issues
> 
>    Here are the unknown changes that may have been introduced in IGTPW_7532:
> 
>   IGT changes
> 
>     Possible regressions
> 
>      * igt@kms_flip@basic-flip-vs-wf_vblank@b-dp2:
>           * fi-icl-u2: PASS -> INCOMPLETE

Unrelated to change in series.

--
Zbigniew


> 
> Known issues
> 
>    Here are the changes found in IGTPW_7532 that come from known issues:
> 
>   IGT changes
> 
>     Issues hit
> 
>      * igt@gem_huc_copy@huc-copy:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271 / i915#2190)
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#2190)
> 
>      * igt@gem_lmem_swapping@basic:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#4613) +3 similar issues
>      * igt@gem_lmem_swapping@parallel-random-engines:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271 / i915#4613) +3 similar
>             issues
>      * igt@gem_tiled_blits@basic:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271) +12 similar issues
>      * igt@gem_tiled_pread_basic:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#3282)
>      * igt@i915_pm_backlight@basic-brightness:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#3012)
>      * igt@i915_selftest@live@execlists:
> 
>           * fi-bsw-nick: PASS -> INCOMPLETE (i915#2940)
>      * igt@i915_suspend@basic-s3-without-i915:
> 
>           * fi-rkl-11600: NOTRUN -> INCOMPLETE (i915#5982)
>      * igt@kms_chamelium@common-hpd-after-suspend:
> 
>           * fi-hsw-4770: NOTRUN -> SKIP (fdo#109271 / fdo#111827)
> 
>           * fi-bdw-5557u: NOTRUN -> SKIP (fdo#109271 / fdo#111827)
> 
>      * igt@kms_chamelium@hdmi-edid-read:
> 
>           * fi-bxt-dsi: NOTRUN -> SKIP (fdo#109271 / fdo#111827) +8 similar
>             issues
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#111827) +7 similar issues
> 
>      * igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#4103)
>      * igt@kms_flip@basic-flip-vs-wf_vblank@b-edp1:
> 
>           * fi-icl-u2: PASS -> DMESG-WARN (i915#4890)
>      * igt@kms_force_connector_basic@force-load-detect:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#109285 / i915#4098)
>      * igt@kms_psr@primary_page_flip:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#1072) +3 similar issues
>      * igt@kms_setmode@basic-clone-single-crtc:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (i915#3555 / i915#4098)
>      * igt@prime_vgem@basic-read:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#109295 / i915#3291 / i915#3708)
>             +2 similar issues
>      * igt@prime_vgem@basic-userptr:
> 
>           * fi-rkl-11600: NOTRUN -> SKIP (fdo#109295 / i915#3301 / i915#3708)
>      * igt@runner@aborted:
> 
>           * fi-icl-u2: NOTRUN -> FAIL (i915#4312)
> 
>           * fi-bsw-nick: NOTRUN -> FAIL (fdo#109271 / i915#4312)
> 
>     Possible fixes
> 
>      * igt@i915_selftest@live@hangcheck:
>           * fi-hsw-4770: INCOMPLETE (i915#4785) -> PASS
> 
>     Warnings
> 
>      * igt@i915_selftest@live@hangcheck:
>           * bat-dg1-5: DMESG-FAIL (i915#4494 / i915#4957) -> DMESG-FAIL
>             (i915#4957)
> 
>    {name}: This element is suppressed. This means it is ignored when
>    computing
>    the status of the difference (SUCCESS, WARNING, or FAILURE).
> 
> Build changes
> 
>      * CI: CI-20190529 -> None
>      * IGT: IGT_6587 -> IGTPW_7532
> 
>    CI-20190529: 20190529
>    CI_DRM_11907: b6ce6eb7d8d6fea0e38563dbc7a4881a7e36992f @
>    git://anongit.freedesktop.org/gfx-ci/linux
>    IGTPW_7532: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html
>    IGT_6587: a37df4b538ae7b5bb1bb47be4804b4787410325d @
>    https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

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

* Re: [igt-dev] [PATCH i-g-t v4 6/6] lib/igt_device_scan: Simulate udev drm and pci device events
  2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 6/6] lib/igt_device_scan: Simulate udev drm and pci device events Zbigniew Kempczyński
@ 2022-07-18 17:11   ` Kamil Konieczny
  2022-07-19  5:00     ` Zbigniew Kempczyński
  0 siblings, 1 reply; 14+ messages in thread
From: Kamil Konieczny @ 2022-07-18 17:11 UTC (permalink / raw)
  To: igt-dev

Hi Zbigniew,

On 2022-07-18 at 09:11:40 +0200, Zbigniew Kempczyński wrote:
> For all udev_*() calls used in device scan add its static counterparts.
> Instead of transplanting real udev data structures (private ones) some
> primitive replacement were added. Devices are added directly from code
> - such implementation was a little bit faster than parsing some config
> files (especially pci slot manipulation to provide some properties which
> slightly differs).
> 
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> ---
> v4: Address review comments (Kamil)
> ---
>  lib/igt_device_scan.c          |   7 +
>  lib/igt_device_scan_simulate.c | 448 +++++++++++++++++++++++++++++++++
>  2 files changed, 455 insertions(+)
>  create mode 100644 lib/igt_device_scan_simulate.c
> 
> diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
> index aad7966764..f4e7659e42 100644
> --- a/lib/igt_device_scan.c
> +++ b/lib/igt_device_scan.c
> @@ -904,6 +904,13 @@ static void index_pci_devices(void)
>   * Function sorts all found devices to keep same order of bus devices
>   * for providing predictable search.
>   */
> +
> +#ifdef SIMULATE_UDEV_DEVICES

One final note, please change above name into local,
for example IGT_DEVICE_SCAN_SIMULATE_C.
With that fixed you can add my r-b note.

Regards,
Kamil

> +
> +#include "igt_device_scan_simulate.c"
> +
> +#endif
> +
>  static void scan_drm_devices(void)
>  {
>  	struct udev *udev;
> diff --git a/lib/igt_device_scan_simulate.c b/lib/igt_device_scan_simulate.c
> new file mode 100644
> index 0000000000..b2a57edd1f
> --- /dev/null
> +++ b/lib/igt_device_scan_simulate.c
> @@ -0,0 +1,448 @@
> +/*
> + * Example: Skylake
> +1656514333.437262: --------------------
> +1656514333.437263: SYSPATH: /sys/devices/pci0000:00/0000:00:02.0/drm/card0
> +1656514333.437294: SUBSYSTEM: drm
> +1656514333.437377: prop: CURRENT_TAGS, val: :seat:mutter-device-disable-kms-modifiers:master-of-seat:uaccess:
> +1656514333.437378: prop: DEVLINKS, val: /dev/dri/by-path/pci-0000:00:02.0-card
> +1656514333.437378: prop: DEVNAME, val: /dev/dri/card0
> +1656514333.437379: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0/drm/card0
> +1656514333.437379: prop: DEVTYPE, val: drm_minor
> +1656514333.437380: prop: ID_FOR_SEAT, val: drm-pci-0000_00_02_0
> +1656514333.437380: prop: ID_PATH, val: pci-0000:00:02.0
> +1656514333.437382: prop: ID_PATH_TAG, val: pci-0000_00_02_0
> +1656514333.437383: prop: MAJOR, val: 226
> +1656514333.437383: prop: MINOR, val: 0
> +1656514333.437383: prop: SUBSYSTEM, val: drm
> +1656514333.437384: prop: TAGS, val: :seat:mutter-device-disable-kms-modifiers:master-of-seat:uaccess:
> +1656514333.437384: prop: USEC_INITIALIZED, val: 31377470
> +1656514333.438273: attr: dev, val: 226:0
> +1656406120.387751: attr: subsystem, val: drm
> +
> +1656514333.440217: --------------------
> +1656514333.440217: parent: 0000:00:02.0
> +1656514333.440223: subsystem: pci
> +1656514333.440224: syspath: /sys/devices/pci0000:00/0000:00:02.0
> +1656514333.440297: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0
> +1656514333.440298: prop: DRIVER, val: i915
> +1656514333.440298: prop: ID_MODEL_FROM_DATABASE, val: Iris Graphics 540
> +1656514333.440299: prop: ID_PCI_CLASS_FROM_DATABASE, val: Display controller
> +1656514333.440299: prop: ID_PCI_INTERFACE_FROM_DATABASE, val: VGA controller
> +1656514333.440300: prop: ID_PCI_SUBCLASS_FROM_DATABASE, val: VGA compatible controller
> +1656514333.440300: prop: ID_VENDOR_FROM_DATABASE, val: Intel Corporation
> +1656514333.440301: prop: MODALIAS, val: pci:v00008086d00001926sv00008086sd00002063bc03sc00i00
> +1656514333.440302: prop: PCI_CLASS, val: 30000
> +1656514333.440302: prop: PCI_ID, val: 8086:1926
> +1656514333.440303: prop: PCI_SLOT_NAME, val: 0000:00:02.0
> +1656514333.440303: prop: PCI_SUBSYS_ID, val: 8086:2063
> +1656514333.440304: prop: SUBSYSTEM, val: pci
> +1656514333.440304: prop: SWITCHEROO_CONTROL_PRODUCT_NAME, val: Iris(R) Graphics 540
> +1656514333.440305: prop: SWITCHEROO_CONTROL_VENDOR_NAME, val: Intel(R)
> +1656514333.440306: prop: USEC_INITIALIZED, val: 6111540
> +1656514333.440692: attr: class, val: 0x030000
> +1656514333.440750: attr: device, val: 0x1926
> +1656514333.441116: attr: subsystem, val: pci
> +1656514333.441130: attr: subsystem_device, val: 0x2063
> +1656514333.441141: attr: subsystem_vendor, val: 0x8086
> +1656514333.441162: attr: vendor, val: 0x8086
> +
> +1656514333.441271: --------------------
> +1656514333.441272: SYSPATH: /sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
> +1656514333.441305: SUBSYSTEM: drm
> +1656514333.441390: prop: CURRENT_TAGS, val: :seat:mutter-device-disable-kms-modifiers:uaccess:
> +1656514333.441391: prop: DEVLINKS, val: /dev/dri/by-path/pci-0000:00:02.0-render
> +1656514333.441391: prop: DEVNAME, val: /dev/dri/renderD128
> +1656514333.441392: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0/drm/renderD128
> +1656514333.441392: prop: DEVTYPE, val: drm_minor
> +1656514333.441393: prop: ID_FOR_SEAT, val: drm-pci-0000_00_02_0
> +1656514333.441393: prop: ID_PATH, val: pci-0000:00:02.0
> +1656514333.441395: prop: ID_PATH_TAG, val: pci-0000_00_02_0
> +1656514333.441395: prop: MAJOR, val: 226
> +1656514333.441396: prop: MINOR, val: 128
> +1656514333.441396: prop: SUBSYSTEM, val: drm
> +1656514333.441396: prop: TAGS, val: :seat:mutter-device-disable-kms-modifiers:uaccess:
> +1656514333.441397: prop: USEC_INITIALIZED, val: 31377515
> +1656514333.441525: attr: dev, val: 226:128
> +1656514333.441657: attr: subsystem, val: drm
> +*/
> +
> +enum entry_type {
> +	TYPE_DEVICE,
> +	TYPE_PROP,
> +	TYPE_ATTR,
> +};
> +
> +struct udev_list_entry {
> +	enum entry_type entry_type;
> +	int curr;
> +} _entry_dev, _entry_prop, _entry_attr;
> +
> +struct keyval {
> +	char key[NAME_MAX];
> +	char val[NAME_MAX];
> +};
> +
> +#define MAXDEVS 16
> +#define MAXPROPS 16
> +#define MAXATTRS 8
> +struct udev_device {
> +	struct udev_device *parent;
> +	char syspath[NAME_MAX];
> +	char devnode[NAME_MAX];
> +	char subsystem[8];
> +	struct keyval prop[MAXPROPS];
> +	struct udev_list_entry *prop_head;
> +	struct keyval attr[MAXATTRS];
> +	struct udev_list_entry *attr_head;
> +	int props;
> +	int attrs;
> +};
> +
> +struct udev {
> +	struct udev_device *dev[MAXDEVS];
> +} _udev;
> +
> +struct udev_enumerate {
> +	struct udev *udev;
> +} _udev_enumerate;
> +
> +static void print_udev_device(const struct udev_device *dev)
> +{
> +#ifdef DEBUG_SCAN_SIMULATE
> +	int i;
> +
> +	printf("[%s]\n", dev->syspath);
> +
> +	printf("props:\n");
> +	for (i = 0; i < dev->props; i++)
> +		printf("   %s: %s\n", dev->prop[i].key, dev->prop[i].val);
> +
> +	printf("attrs:\n");
> +	for (i = 0; i < dev->attrs; i++)
> +		printf("   %s: %s\n", dev->attr[i].key, dev->attr[i].val);
> +#endif
> +}
> +
> +#define __ADD_PROP(__dev, __key, __args...) do { \
> +	struct keyval *kv; \
> +	igt_assert((__dev)->props <= MAXPROPS); \
> +	kv = &(__dev)->prop[(__dev)->props]; \
> +	strncpy(kv->key, (__key), NAME_MAX); \
> +	snprintf(kv->val, NAME_MAX, args); \
> +	(__dev)->props++; \
> +	} while (0)
> +
> +#define __ADD_ATTR(__dev, __key, __args...) do { \
> +	struct keyval *kv; \
> +	igt_assert((__dev)->attrs <= MAXATTRS); \
> +	kv = &(__dev)->attr[(__dev)->attrs]; \
> +	strncpy(kv->key, (__key), NAME_MAX); \
> +	snprintf(kv->val, NAME_MAX, args); \
> +	(__dev)->attrs++; \
> +	} while (0)
> +
> +static struct udev_device *
> +create_pci_udev_device(struct udev *udev,
> +		       const char *syspath, const char *bdf,
> +		       uint16_t vendor, uint16_t device, uint16_t subsystem)
> +{
> +	struct udev_device *dev;
> +	char bus[13];
> +
> +	igt_assert(strlen(bdf) == 12);
> +
> +	dev = calloc(1, sizeof(*dev));
> +	igt_assert(dev);
> +
> +	dev->parent = dev;
> +	snprintf(dev->syspath, NAME_MAX, "%s", syspath);
> +	strncpy(dev->subsystem, "pci", 4);
> +
> +	/* avoid compiler warning when copying less than 12 */
> +	strncpy(bus, bdf, 13);
> +	bus[7] = '\0';
> +
> +	__ADD_PROP(dev, "DEVPATH", "/devices/pci%s/%s", bus, bdf);
> +	__ADD_PROP(dev, "DRIVER", "i915");
> +	__ADD_PROP(dev, "PCI_CLASS", "30000");
> +	__ADD_PROP(dev, "PCI_ID", "%04x:%04x", vendor, device);
> +	__ADD_PROP(dev, "PCI_SLOT_NAME", "%s", bdf);
> +	__ADD_PROP(dev, "PCI_SUBSYS_ID", "%04x:%04x", vendor, subsystem);
> +	__ADD_PROP(dev, "SUBSYSTEM", "pci");
> +
> +	__ADD_ATTR(dev, "class", "0x030000");
> +	__ADD_ATTR(dev, "device", "0x%04x", device);
> +	__ADD_ATTR(dev, "subsystem", "pci");
> +	__ADD_ATTR(dev, "subsystem_device", "0x%04x", subsystem);
> +	__ADD_ATTR(dev, "subsystem_vendor", "0x%04x", vendor);
> +	__ADD_ATTR(dev, "vendor", "0x%04x", vendor);
> +
> +	return dev;
> +}
> +
> +static struct udev_device *
> +create_drm_udev_device(struct udev *udev, struct udev_device *parent,
> +		       const char *syspath, const char *bdf, int card,
> +		       int major, int minor)
> +{
> +	struct udev_device *dev;
> +	const char *name = card < 128 ? "card" : "render";
> +	const char *drmname = card < 128 ? "card" : "renderD";
> +	char bus[13];
> +
> +	igt_assert(strlen(bdf) == 12);
> +
> +	dev = calloc(1, sizeof(*dev));
> +	igt_assert(dev);
> +
> +	dev->parent = parent;
> +	snprintf(dev->syspath, NAME_MAX, "%s", syspath);
> +	strncpy(dev->subsystem, "drm", 4);
> +	snprintf(dev->devnode, NAME_MAX, "/dev/dri/%s%d", drmname, card);
> +
> +	/* avoid compiler warning when copying less than 12 */
> +	strncpy(bus, bdf, 13);
> +	bus[7] = '\0';
> +
> +	__ADD_PROP(dev, "DEVLINKS", "/dev/dri/by-path/pci-%s-%s", bdf, name);
> +	__ADD_PROP(dev, "DEVNAME", "/dev/dri/%s%d", drmname, card);
> +	__ADD_PROP(dev, "DEVPATH", "/devices/pci%s/%s/drm/%s%d", bus, bdf,
> +		   drmname, card);
> +	__ADD_PROP(dev, "DEVTYPE", "drm_minor");
> +	__ADD_PROP(dev, "ID_PATH", "pci-%s", bdf);
> +	__ADD_PROP(dev, "MAJOR", "%d", major);
> +	__ADD_PROP(dev, "MINOR", "%d", minor);
> +	__ADD_PROP(dev, "SUBSYSTEM", "drm");
> +
> +	__ADD_ATTR(dev, "dev", "%d:%d", major, minor);
> +	__ADD_ATTR(dev, "subsystem", "drm");
> +
> +	return dev;
> +}
> +
> +static struct udev_device **add_intel_dev(struct udev *udev, struct udev_device **dev,
> +					  const char *pci_slot, uint16_t pci_device)
> +{
> +	struct udev_device **parent;
> +	char bd[13], path[NAME_MAX];
> +	static int card;
> +
> +	strncpy(bd, pci_slot, 13);
> +	bd[7] = 0;
> +
> +	parent = dev;
> +
> +	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s", bd, pci_slot);
> +	*dev++ = create_pci_udev_device(udev, path, pci_slot,
> +					0x8086, pci_device, 0x2063);
> +
> +	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s/drm/card%d",
> +		 bd, pci_slot, card);
> +	*dev++ = create_drm_udev_device(udev, *parent, path, pci_slot,
> +					card, 226, card);
> +
> +	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s/drm/renderD%d",
> +		 bd, pci_slot, card + 128);
> +	*dev++ = create_drm_udev_device(udev, *parent, path, pci_slot,
> +					card + 128, 226, card + 128);
> +
> +	card++;
> +
> +	return dev;
> +}
> +
> +struct udev *udev_new(void)
> +{
> +	struct udev *udev = &_udev;
> +	struct udev_device **dev = udev->dev;
> +
> +	memset(dev, 0, sizeof(_udev.dev));
> +
> +	dev = add_intel_dev(udev, dev, "0000:00:02.0", 0x1926); /* skl */
> +	dev = add_intel_dev(udev, dev, "0000:01:00.0", 0x56a1); /* dg2 */
> +	dev = add_intel_dev(udev, dev, "0000:02:02.1", 0x9a40); /* tgl */
> +	dev = add_intel_dev(udev, dev, "0000:03:01.0", 0x56a0); /* dg2 */
> +	dev = add_intel_dev(udev, dev, "0000:04:02.0", 0x56a2); /* dg2 */
> +
> +	dev = udev->dev;
> +	while (*dev)
> +		print_udev_device(*dev++);
> +
> +	return &_udev;
> +}
> +
> +struct udev_enumerate *udev_enumerate_new(struct udev *udev)
> +{
> +	_udev_enumerate.udev = udev;
> +
> +	return &_udev_enumerate;
> +}
> +
> +int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate,
> +				       const char *subsystem)
> +{
> +	return 0;
> +}
> +
> +int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate,
> +				      const char *property, const char *value)
> +{
> +	return 0;
> +}
> +
> +int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate)
> +{
> +	return 0;
> +}
> +
> +struct udev_list_entry *
> +udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate)
> +{
> +	_entry_dev.entry_type = TYPE_DEVICE;
> +	_entry_dev.curr = 0;
> +
> +	return &_entry_dev;
> +}
> +
> +struct udev_list_entry *
> +udev_list_entry_get_next(struct udev_list_entry *list_entry)
> +{
> +	int curr, currdev = _entry_dev.curr;
> +
> +	switch (list_entry->entry_type) {
> +	case TYPE_DEVICE:
> +		if (_udev.dev[++list_entry->curr])
> +			return list_entry;
> +		break;
> +	case TYPE_PROP:
> +		curr = ++list_entry->curr;
> +		if (curr < _udev.dev[currdev]->props)
> +			return list_entry;
> +		break;
> +	case TYPE_ATTR:
> +		curr = ++list_entry->curr;
> +		if (curr < _udev.dev[currdev]->attrs)
> +			return list_entry;
> +		break;
> +	}
> +
> +	return NULL;
> +}
> +
> +const char *udev_list_entry_get_name(struct udev_list_entry *list_entry)
> +{
> +	int curr, currdev = _entry_dev.curr;
> +
> +	switch (list_entry->entry_type) {
> +	case TYPE_DEVICE:
> +		return _udev.dev[list_entry->curr]->syspath;
> +	case TYPE_PROP:
> +		curr = _entry_prop.curr;
> +		return _udev.dev[currdev]->prop[curr].key;
> +	case TYPE_ATTR:
> +		curr = _entry_attr.curr;
> +		return _udev.dev[currdev]->attr[curr].key;
> +	}
> +
> +	return "UNKNOWN";
> +}
> +
> +const char *udev_list_entry_get_value(struct udev_list_entry *list_entry)
> +{
> +	int curr, currdev = _entry_dev.curr;
> +
> +	switch (list_entry->entry_type) {
> +	case TYPE_DEVICE:
> +		return "";
> +	case TYPE_PROP:
> +		curr = _entry_prop.curr;
> +		return _udev.dev[currdev]->prop[curr].val;
> +	case TYPE_ATTR:
> +		curr = _entry_attr.curr;
> +		return _udev.dev[currdev]->attr[curr].val;
> +	}
> +
> +	return "UNKNOWN";
> +}
> +
> +struct udev_device *udev_device_new_from_syspath(struct udev *udev,
> +						 const char *syspath)
> +{
> +	int i;
> +
> +	for (i = 0; i < sizeof(udev->dev); i++) {
> +		if (!udev->dev[i])
> +			return NULL;
> +
> +		if (strcmp(udev->dev[i]->syspath, syspath) == 0)
> +			return udev->dev[i];
> +	}
> +
> +	return NULL;
> +}
> +
> +const char *udev_device_get_subsystem(struct udev_device *udev_device)
> +{
> +	return udev_device->subsystem;
> +}
> +
> +const char *udev_device_get_syspath(struct udev_device *udev_device)
> +{
> +	return udev_device->syspath;
> +}
> +
> +const char *udev_device_get_devnode(struct udev_device *udev_device)
> +{
> +	if (udev_device->devnode[0] == '\0')
> +		return NULL;
> +
> +	return udev_device->devnode;
> +}
> +
> +struct udev_list_entry *
> +udev_device_get_properties_list_entry(struct udev_device *udev_device)
> +{
> +	_entry_prop.entry_type = TYPE_PROP;
> +	_entry_prop.curr = 0;
> +
> +	return &_entry_prop;
> +}
> +
> +struct udev_list_entry *
> +udev_device_get_sysattr_list_entry(struct udev_device *udev_device)
> +{
> +	_entry_attr.entry_type = TYPE_ATTR;
> +	_entry_attr.curr = 0;
> +
> +	return &_entry_attr;
> +}
> +
> +const char *
> +udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr)
> +{
> +	for (int i = 0; i < udev_device->attrs; i++)
> +		if (strcmp(udev_device->attr[i].key, sysattr) == 0)
> +			return udev_device->attr[i].val;
> +
> +	return "UNKNOWN";
> +}
> +
> +const char *udev_device_get_sysname(struct udev_device *udev_device)
> +{
> +	return udev_device->syspath;
> +}
> +
> +struct udev_device *udev_device_get_parent(struct udev_device *udev_device)
> +{
> +	return udev_device->parent;
> +}
> +
> +struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate)
> +{
> +	return NULL;
> +}
> +
> +struct udev_device *udev_device_unref(struct udev_device *udev_device)
> +{
> +	return NULL;
> +}
> -- 
> 2.34.1
> 

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

* [igt-dev] ✓ Fi.CI.IGT: success for Add codename in device selection (rev4)
  2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (7 preceding siblings ...)
  2022-07-18 14:17 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2022-07-18 19:19 ` Patchwork
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2022-07-18 19:19 UTC (permalink / raw)
  To: Zbigniew Kempczyński; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 65245 bytes --]

== Series Details ==

Series: Add codename in device selection (rev4)
URL   : https://patchwork.freedesktop.org/series/106012/
State : success

== Summary ==

CI Bug Log - changes from IGT_6587_full -> IGTPW_7532_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-32x32} (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][1] +15 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-dg1-15/igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-32x32.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@device_reset@unbind-reset-rebind:
    - {shard-dg1}:        NOTRUN -> [INCOMPLETE][2]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-dg1-13/igt@device_reset@unbind-reset-rebind.html

  
New tests
---------

  New tests have been introduced between IGT_6587_full and IGTPW_7532_full:

### New IGT tests (68) ###

  * igt@kms_color@gamma@pipe-a-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.63] s

  * igt@kms_color@gamma@pipe-b-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.40] s

  * igt@kms_color@gamma@pipe-c-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.39] s

  * igt@kms_color@gamma@pipe-d-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.39] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-128x128:
    - Statuses : 1 pass(s)
    - Exec time: [5.80] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-128x42:
    - Statuses : 1 pass(s)
    - Exec time: [5.67] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-256x256:
    - Statuses : 1 pass(s)
    - Exec time: [5.72] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-256x85:
    - Statuses : 1 pass(s)
    - Exec time: [5.72] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-32x10:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-32x32:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-512x170:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-512x512:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-64x21:
    - Statuses : 1 pass(s)
    - Exec time: [5.75] s

  * igt@kms_cursor_crc@cursor-random@pipe-a-hdmi-a-4-64x64:
    - Statuses : 1 pass(s)
    - Exec time: [5.81] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-128x128:
    - Statuses : 1 pass(s)
    - Exec time: [5.66] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-128x42:
    - Statuses : 1 pass(s)
    - Exec time: [5.68] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-256x256:
    - Statuses : 1 pass(s)
    - Exec time: [5.71] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-256x85:
    - Statuses : 1 pass(s)
    - Exec time: [5.69] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-32x10:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-32x32:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-512x170:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-512x512:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-64x21:
    - Statuses : 1 pass(s)
    - Exec time: [5.78] s

  * igt@kms_cursor_crc@cursor-random@pipe-b-hdmi-a-4-64x64:
    - Statuses : 1 pass(s)
    - Exec time: [5.78] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-128x128:
    - Statuses : 1 pass(s)
    - Exec time: [5.72] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-128x42:
    - Statuses : 1 pass(s)
    - Exec time: [5.77] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-256x256:
    - Statuses : 1 pass(s)
    - Exec time: [5.74] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-256x85:
    - Statuses : 1 pass(s)
    - Exec time: [5.68] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-32x10:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-32x32:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-512x170:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-512x512:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-64x21:
    - Statuses : 1 pass(s)
    - Exec time: [5.70] s

  * igt@kms_cursor_crc@cursor-random@pipe-c-hdmi-a-4-64x64:
    - Statuses : 1 pass(s)
    - Exec time: [5.69] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-128x128:
    - Statuses : 1 pass(s)
    - Exec time: [5.72] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-128x42:
    - Statuses : 1 pass(s)
    - Exec time: [5.66] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-256x256:
    - Statuses : 1 pass(s)
    - Exec time: [5.69] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-256x85:
    - Statuses : 1 pass(s)
    - Exec time: [5.69] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-32x10:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-32x32:
    - Statuses : 1 skip(s)
    - Exec time: [0.01] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-512x170:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-512x512:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-64x21:
    - Statuses : 1 pass(s)
    - Exec time: [5.71] s

  * igt@kms_cursor_crc@cursor-random@pipe-d-hdmi-a-4-64x64:
    - Statuses : 1 pass(s)
    - Exec time: [5.71] s

  * igt@kms_flip@flip-vs-panning-interruptible@a-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [7.76] s

  * igt@kms_flip@flip-vs-panning-interruptible@b-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [7.69] s

  * igt@kms_flip@flip-vs-panning-interruptible@c-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [7.68] s

  * igt@kms_flip@flip-vs-panning-interruptible@d-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [7.67] s

  * igt@kms_flip@nonexisting-fb-interruptible@a-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip@nonexisting-fb-interruptible@b-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip@nonexisting-fb-interruptible@c-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip@nonexisting-fb-interruptible@d-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset@a-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.69] s

  * igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset@b-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.67] s

  * igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset@c-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.65] s

  * igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset@d-hdmi-a4:
    - Statuses : 1 pass(s)
    - Exec time: [0.63] s

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-a-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.64] s

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-b-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.50] s

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.48] s

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.52] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75@pipe-a-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.58] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75@pipe-b-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.51] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75@pipe-c-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.47] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75@pipe-d-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.52] s

  * igt@kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling@pipe-a-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.54] s

  * igt@kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling@pipe-b-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.51] s

  * igt@kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling@pipe-c-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.47] s

  * igt@kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling@pipe-d-hdmi-a-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.44] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@display-2x:
    - shard-iclb:         NOTRUN -> [SKIP][3] ([i915#1839])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb3/igt@feature_discovery@display-2x.html
    - shard-tglb:         NOTRUN -> [SKIP][4] ([i915#1839])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb8/igt@feature_discovery@display-2x.html

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-tglb:         NOTRUN -> [SKIP][5] ([i915#6335])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@gem_create@create-ext-cpu-access-big.html
    - shard-iclb:         NOTRUN -> [SKIP][6] ([i915#6335])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb7/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_ctx_persistence@process:
    - shard-snb:          NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#1099]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-snb6/igt@gem_ctx_persistence@process.html

  * igt@gem_ctx_persistence@smoketest:
    - shard-iclb:         [PASS][8] -> [FAIL][9] ([i915#5099])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb5/igt@gem_ctx_persistence@smoketest.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@gem_ctx_persistence@smoketest.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-tglb:         NOTRUN -> [SKIP][10] ([i915#280])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb8/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_eio@in-flight-1us:
    - shard-tglb:         [PASS][11] -> [TIMEOUT][12] ([i915#3063])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-tglb7/igt@gem_eio@in-flight-1us.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb2/igt@gem_eio@in-flight-1us.html

  * igt@gem_eio@unwedge-stress:
    - shard-iclb:         [PASS][13] -> [TIMEOUT][14] ([i915#3070])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb5/igt@gem_eio@unwedge-stress.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-keep-in-fence:
    - shard-iclb:         [PASS][15] -> [SKIP][16] ([i915#4525])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb1/igt@gem_exec_balancer@parallel-keep-in-fence.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb8/igt@gem_exec_balancer@parallel-keep-in-fence.html

  * igt@gem_exec_endless@dispatch@vcs1:
    - shard-tglb:         [PASS][17] -> [INCOMPLETE][18] ([i915#3778])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-tglb5/igt@gem_exec_endless@dispatch@vcs1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@gem_exec_endless@dispatch@vcs1.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-kbl:          [PASS][19] -> [FAIL][20] ([i915#2846])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl7/igt@gem_exec_fair@basic-deadline.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl7/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][21] ([i915#2842])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@gem_exec_fair@basic-none@vcs1.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-kbl:          [PASS][22] -> [FAIL][23] ([i915#2842])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl4/igt@gem_exec_fair@basic-none@vecs0.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl6/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [PASS][24] -> [FAIL][25] ([i915#2842])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-glk5/igt@gem_exec_fair@basic-throttle@rcs0.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk8/igt@gem_exec_fair@basic-throttle@rcs0.html
    - shard-iclb:         [PASS][26] -> [FAIL][27] ([i915#2849])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb6/igt@gem_exec_fair@basic-throttle@rcs0.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_params@secure-non-root:
    - shard-tglb:         NOTRUN -> [SKIP][28] ([fdo#112283]) +1 similar issue
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb2/igt@gem_exec_params@secure-non-root.html

  * igt@gem_lmem_swapping@basic:
    - shard-tglb:         NOTRUN -> [SKIP][29] ([i915#4613]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@verify-random-ccs:
    - shard-apl:          NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#4613]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl7/igt@gem_lmem_swapping@verify-random-ccs.html
    - shard-glk:          NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#4613]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk9/igt@gem_lmem_swapping@verify-random-ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][32] ([i915#4613]) +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb7/igt@gem_lmem_swapping@verify-random-ccs.html
    - shard-kbl:          NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#4613]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl7/igt@gem_lmem_swapping@verify-random-ccs.html

  * igt@gem_pxp@create-protected-buffer:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#4270]) +2 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@gem_pxp@create-protected-buffer.html
    - shard-iclb:         NOTRUN -> [SKIP][35] ([i915#4270]) +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb6/igt@gem_pxp@create-protected-buffer.html

  * igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][36] ([i915#768])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb7/igt@gem_render_copy@yf-tiled-to-vebox-x-tiled.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-kbl:          NOTRUN -> [SKIP][37] ([fdo#109271]) +77 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl1/igt@gem_userptr_blits@create-destroy-unsync.html
    - shard-tglb:         NOTRUN -> [SKIP][38] ([i915#3297])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@gem_userptr_blits@create-destroy-unsync.html
    - shard-iclb:         NOTRUN -> [SKIP][39] ([i915#3297])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb4/igt@gem_userptr_blits@create-destroy-unsync.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-apl:          NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#3323])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl6/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3323])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb1/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-glk:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3323])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk3/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-iclb:         NOTRUN -> [SKIP][43] ([i915#3323])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb3/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-kbl:          NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3323])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-tglb:         NOTRUN -> [SKIP][45] ([fdo#109289])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-iclb:         NOTRUN -> [SKIP][46] ([i915#2856]) +2 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-kbl:          [PASS][47] -> [DMESG-WARN][48] ([i915#5566] / [i915#716])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl6/igt@gen9_exec_parse@allowed-single.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@bb-secure:
    - shard-tglb:         NOTRUN -> [SKIP][49] ([i915#2527] / [i915#2856]) +2 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@gen9_exec_parse@bb-secure.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - shard-iclb:         NOTRUN -> [SKIP][50] ([fdo#110892])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
    - shard-tglb:         NOTRUN -> [SKIP][51] ([fdo#111644] / [i915#1397] / [i915#2411])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@i915_selftest@live@gt_lrc:
    - shard-tglb:         NOTRUN -> [DMESG-FAIL][52] ([i915#2373])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@gt_pm:
    - shard-tglb:         NOTRUN -> [DMESG-FAIL][53] ([i915#1759])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@hangcheck:
    - shard-tglb:         NOTRUN -> [DMESG-WARN][54] ([i915#5591])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@i915_selftest@live@hangcheck.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-tglb:         NOTRUN -> [SKIP][55] ([i915#3826])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb8/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
    - shard-iclb:         NOTRUN -> [SKIP][56] ([i915#3826])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#5286]) +2 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
    - shard-iclb:         NOTRUN -> [SKIP][58] ([i915#5286]) +2 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb6/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-iclb:         NOTRUN -> [SKIP][59] ([fdo#110725] / [fdo#111614])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb6/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
    - shard-tglb:         NOTRUN -> [SKIP][60] ([fdo#111614])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-tglb:         NOTRUN -> [SKIP][61] ([fdo#111615]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
    - shard-iclb:         NOTRUN -> [SKIP][62] ([fdo#110723])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_joiner@invalid-modeset:
    - shard-tglb:         NOTRUN -> [SKIP][63] ([i915#2705])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb1/igt@kms_big_joiner@invalid-modeset.html
    - shard-iclb:         NOTRUN -> [SKIP][64] ([i915#2705])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_big_joiner@invalid-modeset.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#3886]) +2 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl3/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - shard-glk:          NOTRUN -> [SKIP][66] ([fdo#109271] / [i915#3886]) +2 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk5/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][67] ([fdo#109278] / [i915#3886]) +2 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
    - shard-kbl:          NOTRUN -> [SKIP][68] ([fdo#109271] / [i915#3886]) +4 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl7/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][69] ([i915#3689] / [i915#6095]) +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][70] ([i915#3689] / [i915#3886]) +2 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb1/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_dg2_rc_ccs_cc:
    - shard-tglb:         NOTRUN -> [SKIP][71] ([i915#6095]) +2 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb8/igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][72] ([i915#3689]) +5 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109278]) +9 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb8/igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][74] ([fdo#111615] / [i915#3689])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs.html

  * igt@kms_chamelium@vga-edid-read:
    - shard-apl:          NOTRUN -> [SKIP][75] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl1/igt@kms_chamelium@vga-edid-read.html
    - shard-tglb:         NOTRUN -> [SKIP][76] ([fdo#109284] / [fdo#111827]) +4 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb2/igt@kms_chamelium@vga-edid-read.html
    - shard-iclb:         NOTRUN -> [SKIP][77] ([fdo#109284] / [fdo#111827]) +3 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@kms_chamelium@vga-edid-read.html
    - shard-kbl:          NOTRUN -> [SKIP][78] ([fdo#109271] / [fdo#111827]) +3 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl6/igt@kms_chamelium@vga-edid-read.html

  * igt@kms_color_chamelium@pipe-a-ctm-0-25:
    - shard-snb:          NOTRUN -> [SKIP][79] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-snb7/igt@kms_color_chamelium@pipe-a-ctm-0-25.html

  * igt@kms_color_chamelium@pipe-b-ctm-red-to-blue:
    - shard-glk:          NOTRUN -> [SKIP][80] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk7/igt@kms_color_chamelium@pipe-b-ctm-red-to-blue.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][81] ([i915#1063]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_content_protection@atomic-dpms.html
    - shard-iclb:         NOTRUN -> [SKIP][82] ([fdo#109300] / [fdo#111066]) +1 similar issue
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_content_protection@atomic-dpms.html
    - shard-kbl:          NOTRUN -> [TIMEOUT][83] ([i915#1319])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/igt@kms_content_protection@atomic-dpms.html
    - shard-apl:          NOTRUN -> [TIMEOUT][84] ([i915#1319])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl2/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@uevent:
    - shard-apl:          NOTRUN -> [FAIL][85] ([i915#2105])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl2/igt@kms_content_protection@uevent.html
    - shard-kbl:          NOTRUN -> [FAIL][86] ([i915#2105])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl6/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-tglb:         NOTRUN -> [SKIP][87] ([fdo#109274] / [fdo#111825]) +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
    - shard-iclb:         NOTRUN -> [SKIP][88] ([fdo#109274]) +4 similar issues
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglb:         NOTRUN -> [SKIP][89] ([fdo#109274])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_draw_crc@draw-method-rgb565-blt-xtiled:
    - shard-glk:          [PASS][90] -> [FAIL][91] ([i915#5160])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-glk9/igt@kms_draw_crc@draw-method-rgb565-blt-xtiled.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk7/igt@kms_draw_crc@draw-method-rgb565-blt-xtiled.html

  * igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-4tiled:
    - shard-tglb:         NOTRUN -> [SKIP][92] ([i915#5287]) +1 similar issue
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-4tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][93] ([i915#5287])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-4tiled.html

  * igt@kms_dsc@basic-dsc:
    - shard-iclb:         NOTRUN -> [SKIP][94] ([i915#3555] / [i915#3828])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_dsc@basic-dsc.html

  * igt@kms_flip@2x-flip-vs-blocking-wf-vblank:
    - shard-tglb:         NOTRUN -> [SKIP][95] ([fdo#109274] / [fdo#111825] / [i915#3637]) +2 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html

  * igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a2:
    - shard-glk:          [PASS][96] -> [FAIL][97] ([i915#79])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a2.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk3/igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a2.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
    - shard-tglb:         NOTRUN -> [SKIP][98] ([i915#2672]) +1 similar issue
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][99] ([i915#2672]) +5 similar issues
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render:
    - shard-tglb:         NOTRUN -> [FAIL][100] ([i915#160]) +3 similar issues
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
    - shard-iclb:         NOTRUN -> [SKIP][101] ([fdo#109280]) +11 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite:
    - shard-tglb:         NOTRUN -> [SKIP][102] ([fdo#109280] / [fdo#111825]) +14 similar issues
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_plane_alpha_blend@pipe-d-alpha-transparent-fb:
    - shard-apl:          NOTRUN -> [SKIP][103] ([fdo#109271]) +89 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl7/igt@kms_plane_alpha_blend@pipe-d-alpha-transparent-fb.html

  * igt@kms_plane_cursor@pipe-c-viewport-size-256:
    - shard-snb:          NOTRUN -> [SKIP][104] ([fdo#109271]) +164 similar issues
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-snb7/igt@kms_plane_cursor@pipe-c-viewport-size-256.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][105] ([fdo#112054])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_lowres@tiling-yf@pipe-a-edp-1:
    - shard-iclb:         NOTRUN -> [SKIP][106] ([i915#3536]) +2 similar issues
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@kms_plane_lowres@tiling-yf@pipe-a-edp-1.html

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-b-edp-1:
    - shard-iclb:         NOTRUN -> [SKIP][107] ([i915#5176]) +5 similar issues
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-b-edp-1.html

  * igt@kms_plane_scaling@plane-scaler-with-rotation-unity-scaling@pipe-c-edp-1:
    - shard-tglb:         NOTRUN -> [SKIP][108] ([i915#5176]) +7 similar issues
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_plane_scaling@plane-scaler-with-rotation-unity-scaling@pipe-c-edp-1.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1:
    - shard-iclb:         [PASS][109] -> [SKIP][110] ([i915#5235]) +2 similar issues
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb4/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html

  * igt@kms_psr2_sf@cursor-plane-update-sf:
    - shard-iclb:         NOTRUN -> [SKIP][111] ([fdo#111068] / [i915#658])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb8/igt@kms_psr2_sf@cursor-plane-update-sf.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
    - shard-apl:          NOTRUN -> [SKIP][112] ([fdo#109271] / [i915#658]) +1 similar issue
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
    - shard-tglb:         NOTRUN -> [SKIP][113] ([i915#2920]) +1 similar issue
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
    - shard-glk:          NOTRUN -> [SKIP][114] ([fdo#109271] / [i915#658]) +1 similar issue
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
    - shard-iclb:         NOTRUN -> [SKIP][115] ([i915#658])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb8/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
    - shard-kbl:          NOTRUN -> [SKIP][116] ([fdo#109271] / [i915#658]) +1 similar issue
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-iclb:         [PASS][117] -> [SKIP][118] ([fdo#109642] / [fdo#111068] / [i915#658])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb2/igt@kms_psr2_su@page_flip-xrgb8888.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb5/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@psr2_sprite_blt:
    - shard-iclb:         [PASS][119] -> [SKIP][120] ([fdo#109441]) +1 similar issue
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@kms_psr@psr2_sprite_blt.html

  * igt@kms_selftest@all:
    - shard-tglb:         NOTRUN -> [SKIP][121] ([i915#6433])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@kms_selftest@all.html
    - shard-iclb:         NOTRUN -> [SKIP][122] ([i915#6433])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb4/igt@kms_selftest@all.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-apl:          [PASS][123] -> [DMESG-WARN][124] ([i915#180]) +1 similar issue
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-apl1/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl3/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  * igt@kms_vrr@flipline:
    - shard-tglb:         NOTRUN -> [SKIP][125] ([i915#3555])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_vrr@flipline.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-apl:          NOTRUN -> [SKIP][126] ([fdo#109271] / [i915#2437])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl6/igt@kms_writeback@writeback-pixel-formats.html
    - shard-tglb:         NOTRUN -> [SKIP][127] ([i915#2437])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@kms_writeback@writeback-pixel-formats.html
    - shard-glk:          NOTRUN -> [SKIP][128] ([fdo#109271] / [i915#2437])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk2/igt@kms_writeback@writeback-pixel-formats.html
    - shard-iclb:         NOTRUN -> [SKIP][129] ([i915#2437])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@kms_writeback@writeback-pixel-formats.html
    - shard-kbl:          NOTRUN -> [SKIP][130] ([fdo#109271] / [i915#2437])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl6/igt@kms_writeback@writeback-pixel-formats.html

  * igt@nouveau_crc@pipe-c-ctx-flip-detection:
    - shard-iclb:         NOTRUN -> [SKIP][131] ([i915#2530])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@nouveau_crc@pipe-c-ctx-flip-detection.html
    - shard-tglb:         NOTRUN -> [SKIP][132] ([i915#2530])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb2/igt@nouveau_crc@pipe-c-ctx-flip-detection.html

  * igt@perf_pmu@event-wait@rcs0:
    - shard-iclb:         NOTRUN -> [SKIP][133] ([fdo#112283])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@perf_pmu@event-wait@rcs0.html

  * igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][134] ([fdo#109291]) +2 similar issues
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb7/igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name.html

  * igt@prime_nv_pcopy@test1_macro:
    - shard-iclb:         NOTRUN -> [SKIP][135] ([fdo#109291]) +2 similar issues
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb4/igt@prime_nv_pcopy@test1_macro.html

  * igt@prime_nv_pcopy@test3_3:
    - shard-glk:          NOTRUN -> [SKIP][136] ([fdo#109271]) +58 similar issues
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-glk2/igt@prime_nv_pcopy@test3_3.html

  * igt@prime_vgem@basic-userptr:
    - shard-tglb:         NOTRUN -> [SKIP][137] ([fdo#109295] / [i915#3301])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@prime_vgem@basic-userptr.html

  
#### Possible fixes ####

  * igt@fbdev@unaligned-read:
    - {shard-rkl}:        [SKIP][138] ([i915#2582]) -> [PASS][139] +1 similar issue
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-4/igt@fbdev@unaligned-read.html
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-1/igt@fbdev@unaligned-read.html

  * igt@gem_busy@close-race:
    - shard-snb:          [TIMEOUT][140] ([i915#5748]) -> [PASS][141]
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-snb4/igt@gem_busy@close-race.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-snb6/igt@gem_busy@close-race.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-tglb:         [FAIL][142] ([i915#6268]) -> [PASS][143]
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-tglb6/igt@gem_ctx_exec@basic-nohangcheck.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb1/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - shard-apl:          [DMESG-WARN][144] ([i915#180]) -> [PASS][145]
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-apl2/igt@gem_ctx_isolation@preservation-s3@bcs0.html
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl3/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_ctx_persistence@engines-hang@rcs0:
    - {shard-dg1}:        [FAIL][146] ([i915#4883]) -> [PASS][147]
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-dg1-19/igt@gem_ctx_persistence@engines-hang@rcs0.html
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-dg1-16/igt@gem_ctx_persistence@engines-hang@rcs0.html

  * igt@gem_ctx_persistence@legacy-engines-hang@blt:
    - {shard-rkl}:        [SKIP][148] ([i915#6252]) -> [PASS][149]
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-5/igt@gem_ctx_persistence@legacy-engines-hang@blt.html
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-1/igt@gem_ctx_persistence@legacy-engines-hang@blt.html

  * igt@gem_eio@unwedge-stress:
    - {shard-tglu}:       [TIMEOUT][150] ([i915#3063]) -> [PASS][151]
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-tglu-6/igt@gem_eio@unwedge-stress.html
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglu-3/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-out-fence:
    - shard-iclb:         [SKIP][152] ([i915#4525]) -> [PASS][153]
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb6/igt@gem_exec_balancer@parallel-out-fence.html
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@gem_exec_balancer@parallel-out-fence.html

  * igt@gem_exec_fair@basic-none@vcs1:
    - shard-kbl:          [FAIL][154] ([i915#2842]) -> [PASS][155] +1 similar issue
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl4/igt@gem_exec_fair@basic-none@vcs1.html
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl6/igt@gem_exec_fair@basic-none@vcs1.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - {shard-tglu}:       [FAIL][156] ([i915#2842]) -> [PASS][157]
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-tglu-1/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglu-3/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
    - {shard-rkl}:        [SKIP][158] ([fdo#109313]) -> [PASS][159]
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-6/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_reloc@basic-write-read:
    - {shard-rkl}:        [SKIP][160] ([i915#3281]) -> [PASS][161] +7 similar issues
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-1/igt@gem_exec_reloc@basic-write-read.html
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-5/igt@gem_exec_reloc@basic-write-read.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - {shard-rkl}:        [FAIL][162] ([i915#644]) -> [PASS][163]
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-5/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-1/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_readwrite@beyond-eob:
    - {shard-rkl}:        [SKIP][164] ([i915#3282]) -> [PASS][165] +4 similar issues
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-2/igt@gem_readwrite@beyond-eob.html
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-5/igt@gem_readwrite@beyond-eob.html

  * igt@gen9_exec_parse@bb-chained:
    - {shard-rkl}:        [SKIP][166] ([i915#2527]) -> [PASS][167]
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-2/igt@gen9_exec_parse@bb-chained.html
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-5/igt@gen9_exec_parse@bb-chained.html

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

  * igt@i915_pm_rc6_residency@rc6-idle@vcs0:
    - shard-apl:          [WARN][170] ([i915#6405]) -> [PASS][171]
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-apl2/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl8/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html

  * igt@i915_pm_rpm@modeset-non-lpsp:
    - {shard-dg1}:        [SKIP][172] ([i915#1397]) -> [PASS][173]
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-dg1-16/igt@i915_pm_rpm@modeset-non-lpsp.html
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-dg1-15/igt@i915_pm_rpm@modeset-non-lpsp.html

  * igt@i915_pm_rpm@system-suspend:
    - shard-kbl:          [INCOMPLETE][174] ([i915#3614]) -> [PASS][175]
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl4/igt@i915_pm_rpm@system-suspend.html
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl7/igt@i915_pm_rpm@system-suspend.html

  * igt@i915_pm_sseu@full-enable:
    - {shard-rkl}:        [SKIP][176] ([i915#4387]) -> [PASS][177]
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-2/igt@i915_pm_sseu@full-enable.html
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-5/igt@i915_pm_sseu@full-enable.html

  * igt@kms_draw_crc@draw-method-rgb565-pwrite-xtiled:
    - {shard-rkl}:        [SKIP][178] ([fdo#111314] / [i915#4098] / [i915#4369]) -> [PASS][179] +2 similar issues
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-1/igt@kms_draw_crc@draw-method-rgb565-pwrite-xtiled.html
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-6/igt@kms_draw_crc@draw-method-rgb565-pwrite-xtiled.html

  * igt@kms_flip@flip-vs-expired-vblank@a-dp1:
    - shard-apl:          [FAIL][180] ([i915#79]) -> [PASS][181]
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-apl7/igt@kms_flip@flip-vs-expired-vblank@a-dp1.html
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-apl3/igt@kms_flip@flip-vs-expired-vblank@a-dp1.html

  * igt@kms_flip@flip-vs-expired-vblank@b-dp1:
    - shard-kbl:          [FAIL][182] ([i915#79]) -> [PASS][183]
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl4/igt@kms_flip@flip-vs-expired-vblank@b-dp1.html
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/igt@kms_flip@flip-vs-expired-vblank@b-dp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-vga1:
    - shard-snb:          [SKIP][184] ([fdo#109271]) -> [PASS][185]
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-snb6/igt@kms_flip@flip-vs-suspend-interruptible@a-vga1.html
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-snb2/igt@kms_flip@flip-vs-suspend-interruptible@a-vga1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - {shard-rkl}:        [SKIP][186] ([i915#1849] / [i915#4098]) -> [PASS][187] +3 similar issues
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_hdr@bpc-switch@pipe-a-dp-1:
    - shard-kbl:          [FAIL][188] ([i915#1188]) -> [PASS][189]
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl1/igt@kms_hdr@bpc-switch@pipe-a-dp-1.html
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/igt@kms_hdr@bpc-switch@pipe-a-dp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         [SKIP][190] ([i915#5235]) -> [PASS][191] +2 similar issues
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb6/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html

  * igt@kms_properties@crtc-properties-legacy:
    - shard-tglb:         [INCOMPLETE][192] -> [PASS][193]
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-tglb8/igt@kms_properties@crtc-properties-legacy.html
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb5/igt@kms_properties@crtc-properties-legacy.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][194] ([fdo#109441]) -> [PASS][195] +2 similar issues
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_psr@sprite_plane_onoff:
    - {shard-rkl}:        [SKIP][196] ([i915#1072]) -> [PASS][197]
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-1/igt@kms_psr@sprite_plane_onoff.html
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-6/igt@kms_psr@sprite_plane_onoff.html

  * igt@kms_vblank@pipe-b-query-forked:
    - {shard-rkl}:        [SKIP][198] ([i915#1845] / [i915#4098]) -> [PASS][199] +11 similar issues
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-2/igt@kms_vblank@pipe-b-query-forked.html
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-6/igt@kms_vblank@pipe-b-query-forked.html

  * igt@perf@gen12-mi-rpc:
    - {shard-rkl}:        [SKIP][200] ([fdo#109289]) -> [PASS][201]
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-rkl-5/igt@perf@gen12-mi-rpc.html
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-rkl-1/igt@perf@gen12-mi-rpc.html

  * igt@perf_pmu@busy-double-start@rcs0:
    - {shard-dg1}:        [FAIL][202] ([i915#4349]) -> [PASS][203]
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-dg1-19/igt@perf_pmu@busy-double-start@rcs0.html
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-dg1-19/igt@perf_pmu@busy-double-start@rcs0.html

  
#### Warnings ####

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         [TIMEOUT][204] ([i915#3063]) -> [FAIL][205] ([i915#5784])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-tglb6/igt@gem_eio@unwedge-stress.html
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-tglb3/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-iclb:         [SKIP][206] ([i915#4525]) -> [FAIL][207] ([i915#6117])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb8/igt@gem_exec_balancer@parallel-ordering.html
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb1/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
    - shard-iclb:         [FAIL][208] ([i915#2842]) -> [FAIL][209] ([i915#2852])
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb7/igt@gem_exec_fair@basic-none-rrul@rcs0.html
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb4/igt@gem_exec_fair@basic-none-rrul@rcs0.html

  * igt@kms_psr2_sf@overlay-plane-update-continuous-sf:
    - shard-iclb:         [SKIP][210] ([fdo#111068] / [i915#658]) -> [SKIP][211] ([i915#2920])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-iclb8/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][212], [FAIL][213]) ([i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][214], [FAIL][215]) ([fdo#109271] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#716])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl4/igt@runner@aborted.html
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6587/shard-kbl1/igt@runner@aborted.html
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/igt@runner@aborted.html
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/shard-kbl4/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#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110254]: https://bugs.freedesktop.org/show_bug.cgi?id=110254
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
  [fdo#110892]: https://bugs.freedesktop.org/show_bug.cgi?id=110892
  [fdo#111066]: https://bugs.freedesktop.org/show_bug.cgi?id=111066
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#160]: https://gitlab.freedesktop.org/drm/intel/issues/160
  [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
  [i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029
  [i915#2105]: https://gitlab.freedesktop.org/drm/intel/issues/2105
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2373]: https://gitlab.freedesktop.org/drm/intel/issues/2373
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
  [i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849
  [i915#2852]: https://gitlab.freedesktop.org/drm/intel/issues/2852
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
  [i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3614]: https://gitlab.freedesktop.org/drm/intel/issues/3614
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
  [i915#3810]: https://gitlab.freedesktop.org/drm/intel/issues/3810
  [i915#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825
  [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3963]: https://gitlab.freedesktop.org/drm/intel/issues/3963
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#4462]: https://gitlab.freedesktop.org/drm/intel/issues/4462
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4853]: https://gitlab.freedesktop.org/drm/intel/issues/4853
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4893]: https://gitlab.freedesktop.org/drm/intel/issues/4893
  [i915#5099]: https://gitlab.freedesktop.org/drm/intel/issues/5099
  [i915#5160]: https://gitlab.freedesktop.org/drm/intel/issues/5160
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5748]: https://gitlab.freedesktop.org/drm/intel/issues/5748
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6251]: https://gitlab.freedesktop.org/drm/intel/issues/6251
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6405]: https://gitlab.freedesktop.org/drm/intel/issues/6405
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6587 -> IGTPW_7532

  CI-20190529: 20190529
  CI_DRM_11907: b6ce6eb7d8d6fea0e38563dbc7a4881a7e36992f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7532: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html
  IGT_6587: a37df4b538ae7b5bb1bb47be4804b4787410325d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7532/index.html

[-- Attachment #2: Type: text/html, Size: 74789 bytes --]

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

* Re: [igt-dev] [PATCH i-g-t v4 6/6] lib/igt_device_scan: Simulate udev drm and pci device events
  2022-07-18 17:11   ` Kamil Konieczny
@ 2022-07-19  5:00     ` Zbigniew Kempczyński
  0 siblings, 0 replies; 14+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-19  5:00 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev; +Cc: Petri Latvala

On Mon, Jul 18, 2022 at 07:11:06PM +0200, Kamil Konieczny wrote:
> Hi Zbigniew,
> 
> On 2022-07-18 at 09:11:40 +0200, Zbigniew Kempczyński wrote:
> > For all udev_*() calls used in device scan add its static counterparts.
> > Instead of transplanting real udev data structures (private ones) some
> > primitive replacement were added. Devices are added directly from code
> > - such implementation was a little bit faster than parsing some config
> > files (especially pci slot manipulation to provide some properties which
> > slightly differs).
> > 
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > ---
> > v4: Address review comments (Kamil)
> > ---
> >  lib/igt_device_scan.c          |   7 +
> >  lib/igt_device_scan_simulate.c | 448 +++++++++++++++++++++++++++++++++
> >  2 files changed, 455 insertions(+)
> >  create mode 100644 lib/igt_device_scan_simulate.c
> > 
> > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
> > index aad7966764..f4e7659e42 100644
> > --- a/lib/igt_device_scan.c
> > +++ b/lib/igt_device_scan.c
> > @@ -904,6 +904,13 @@ static void index_pci_devices(void)
> >   * Function sorts all found devices to keep same order of bus devices
> >   * for providing predictable search.
> >   */
> > +
> > +#ifdef SIMULATE_UDEV_DEVICES
> 
> One final note, please change above name into local,
> for example IGT_DEVICE_SCAN_SIMULATE_C.
> With that fixed you can add my r-b note.

+Petri

Ok, thanks for the review. With merge of this patch I'll wait until Petri
will be back. I'm going to split this series without this simulation patch.

--
Zbigniew

> 
> Regards,
> Kamil
> 
> > +
> > +#include "igt_device_scan_simulate.c"
> > +
> > +#endif
> > +
> >  static void scan_drm_devices(void)
> >  {
> >  	struct udev *udev;
> > diff --git a/lib/igt_device_scan_simulate.c b/lib/igt_device_scan_simulate.c
> > new file mode 100644
> > index 0000000000..b2a57edd1f
> > --- /dev/null
> > +++ b/lib/igt_device_scan_simulate.c
> > @@ -0,0 +1,448 @@
> > +/*
> > + * Example: Skylake
> > +1656514333.437262: --------------------
> > +1656514333.437263: SYSPATH: /sys/devices/pci0000:00/0000:00:02.0/drm/card0
> > +1656514333.437294: SUBSYSTEM: drm
> > +1656514333.437377: prop: CURRENT_TAGS, val: :seat:mutter-device-disable-kms-modifiers:master-of-seat:uaccess:
> > +1656514333.437378: prop: DEVLINKS, val: /dev/dri/by-path/pci-0000:00:02.0-card
> > +1656514333.437378: prop: DEVNAME, val: /dev/dri/card0
> > +1656514333.437379: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0/drm/card0
> > +1656514333.437379: prop: DEVTYPE, val: drm_minor
> > +1656514333.437380: prop: ID_FOR_SEAT, val: drm-pci-0000_00_02_0
> > +1656514333.437380: prop: ID_PATH, val: pci-0000:00:02.0
> > +1656514333.437382: prop: ID_PATH_TAG, val: pci-0000_00_02_0
> > +1656514333.437383: prop: MAJOR, val: 226
> > +1656514333.437383: prop: MINOR, val: 0
> > +1656514333.437383: prop: SUBSYSTEM, val: drm
> > +1656514333.437384: prop: TAGS, val: :seat:mutter-device-disable-kms-modifiers:master-of-seat:uaccess:
> > +1656514333.437384: prop: USEC_INITIALIZED, val: 31377470
> > +1656514333.438273: attr: dev, val: 226:0
> > +1656406120.387751: attr: subsystem, val: drm
> > +
> > +1656514333.440217: --------------------
> > +1656514333.440217: parent: 0000:00:02.0
> > +1656514333.440223: subsystem: pci
> > +1656514333.440224: syspath: /sys/devices/pci0000:00/0000:00:02.0
> > +1656514333.440297: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0
> > +1656514333.440298: prop: DRIVER, val: i915
> > +1656514333.440298: prop: ID_MODEL_FROM_DATABASE, val: Iris Graphics 540
> > +1656514333.440299: prop: ID_PCI_CLASS_FROM_DATABASE, val: Display controller
> > +1656514333.440299: prop: ID_PCI_INTERFACE_FROM_DATABASE, val: VGA controller
> > +1656514333.440300: prop: ID_PCI_SUBCLASS_FROM_DATABASE, val: VGA compatible controller
> > +1656514333.440300: prop: ID_VENDOR_FROM_DATABASE, val: Intel Corporation
> > +1656514333.440301: prop: MODALIAS, val: pci:v00008086d00001926sv00008086sd00002063bc03sc00i00
> > +1656514333.440302: prop: PCI_CLASS, val: 30000
> > +1656514333.440302: prop: PCI_ID, val: 8086:1926
> > +1656514333.440303: prop: PCI_SLOT_NAME, val: 0000:00:02.0
> > +1656514333.440303: prop: PCI_SUBSYS_ID, val: 8086:2063
> > +1656514333.440304: prop: SUBSYSTEM, val: pci
> > +1656514333.440304: prop: SWITCHEROO_CONTROL_PRODUCT_NAME, val: Iris(R) Graphics 540
> > +1656514333.440305: prop: SWITCHEROO_CONTROL_VENDOR_NAME, val: Intel(R)
> > +1656514333.440306: prop: USEC_INITIALIZED, val: 6111540
> > +1656514333.440692: attr: class, val: 0x030000
> > +1656514333.440750: attr: device, val: 0x1926
> > +1656514333.441116: attr: subsystem, val: pci
> > +1656514333.441130: attr: subsystem_device, val: 0x2063
> > +1656514333.441141: attr: subsystem_vendor, val: 0x8086
> > +1656514333.441162: attr: vendor, val: 0x8086
> > +
> > +1656514333.441271: --------------------
> > +1656514333.441272: SYSPATH: /sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
> > +1656514333.441305: SUBSYSTEM: drm
> > +1656514333.441390: prop: CURRENT_TAGS, val: :seat:mutter-device-disable-kms-modifiers:uaccess:
> > +1656514333.441391: prop: DEVLINKS, val: /dev/dri/by-path/pci-0000:00:02.0-render
> > +1656514333.441391: prop: DEVNAME, val: /dev/dri/renderD128
> > +1656514333.441392: prop: DEVPATH, val: /devices/pci0000:00/0000:00:02.0/drm/renderD128
> > +1656514333.441392: prop: DEVTYPE, val: drm_minor
> > +1656514333.441393: prop: ID_FOR_SEAT, val: drm-pci-0000_00_02_0
> > +1656514333.441393: prop: ID_PATH, val: pci-0000:00:02.0
> > +1656514333.441395: prop: ID_PATH_TAG, val: pci-0000_00_02_0
> > +1656514333.441395: prop: MAJOR, val: 226
> > +1656514333.441396: prop: MINOR, val: 128
> > +1656514333.441396: prop: SUBSYSTEM, val: drm
> > +1656514333.441396: prop: TAGS, val: :seat:mutter-device-disable-kms-modifiers:uaccess:
> > +1656514333.441397: prop: USEC_INITIALIZED, val: 31377515
> > +1656514333.441525: attr: dev, val: 226:128
> > +1656514333.441657: attr: subsystem, val: drm
> > +*/
> > +
> > +enum entry_type {
> > +	TYPE_DEVICE,
> > +	TYPE_PROP,
> > +	TYPE_ATTR,
> > +};
> > +
> > +struct udev_list_entry {
> > +	enum entry_type entry_type;
> > +	int curr;
> > +} _entry_dev, _entry_prop, _entry_attr;
> > +
> > +struct keyval {
> > +	char key[NAME_MAX];
> > +	char val[NAME_MAX];
> > +};
> > +
> > +#define MAXDEVS 16
> > +#define MAXPROPS 16
> > +#define MAXATTRS 8
> > +struct udev_device {
> > +	struct udev_device *parent;
> > +	char syspath[NAME_MAX];
> > +	char devnode[NAME_MAX];
> > +	char subsystem[8];
> > +	struct keyval prop[MAXPROPS];
> > +	struct udev_list_entry *prop_head;
> > +	struct keyval attr[MAXATTRS];
> > +	struct udev_list_entry *attr_head;
> > +	int props;
> > +	int attrs;
> > +};
> > +
> > +struct udev {
> > +	struct udev_device *dev[MAXDEVS];
> > +} _udev;
> > +
> > +struct udev_enumerate {
> > +	struct udev *udev;
> > +} _udev_enumerate;
> > +
> > +static void print_udev_device(const struct udev_device *dev)
> > +{
> > +#ifdef DEBUG_SCAN_SIMULATE
> > +	int i;
> > +
> > +	printf("[%s]\n", dev->syspath);
> > +
> > +	printf("props:\n");
> > +	for (i = 0; i < dev->props; i++)
> > +		printf("   %s: %s\n", dev->prop[i].key, dev->prop[i].val);
> > +
> > +	printf("attrs:\n");
> > +	for (i = 0; i < dev->attrs; i++)
> > +		printf("   %s: %s\n", dev->attr[i].key, dev->attr[i].val);
> > +#endif
> > +}
> > +
> > +#define __ADD_PROP(__dev, __key, __args...) do { \
> > +	struct keyval *kv; \
> > +	igt_assert((__dev)->props <= MAXPROPS); \
> > +	kv = &(__dev)->prop[(__dev)->props]; \
> > +	strncpy(kv->key, (__key), NAME_MAX); \
> > +	snprintf(kv->val, NAME_MAX, args); \
> > +	(__dev)->props++; \
> > +	} while (0)
> > +
> > +#define __ADD_ATTR(__dev, __key, __args...) do { \
> > +	struct keyval *kv; \
> > +	igt_assert((__dev)->attrs <= MAXATTRS); \
> > +	kv = &(__dev)->attr[(__dev)->attrs]; \
> > +	strncpy(kv->key, (__key), NAME_MAX); \
> > +	snprintf(kv->val, NAME_MAX, args); \
> > +	(__dev)->attrs++; \
> > +	} while (0)
> > +
> > +static struct udev_device *
> > +create_pci_udev_device(struct udev *udev,
> > +		       const char *syspath, const char *bdf,
> > +		       uint16_t vendor, uint16_t device, uint16_t subsystem)
> > +{
> > +	struct udev_device *dev;
> > +	char bus[13];
> > +
> > +	igt_assert(strlen(bdf) == 12);
> > +
> > +	dev = calloc(1, sizeof(*dev));
> > +	igt_assert(dev);
> > +
> > +	dev->parent = dev;
> > +	snprintf(dev->syspath, NAME_MAX, "%s", syspath);
> > +	strncpy(dev->subsystem, "pci", 4);
> > +
> > +	/* avoid compiler warning when copying less than 12 */
> > +	strncpy(bus, bdf, 13);
> > +	bus[7] = '\0';
> > +
> > +	__ADD_PROP(dev, "DEVPATH", "/devices/pci%s/%s", bus, bdf);
> > +	__ADD_PROP(dev, "DRIVER", "i915");
> > +	__ADD_PROP(dev, "PCI_CLASS", "30000");
> > +	__ADD_PROP(dev, "PCI_ID", "%04x:%04x", vendor, device);
> > +	__ADD_PROP(dev, "PCI_SLOT_NAME", "%s", bdf);
> > +	__ADD_PROP(dev, "PCI_SUBSYS_ID", "%04x:%04x", vendor, subsystem);
> > +	__ADD_PROP(dev, "SUBSYSTEM", "pci");
> > +
> > +	__ADD_ATTR(dev, "class", "0x030000");
> > +	__ADD_ATTR(dev, "device", "0x%04x", device);
> > +	__ADD_ATTR(dev, "subsystem", "pci");
> > +	__ADD_ATTR(dev, "subsystem_device", "0x%04x", subsystem);
> > +	__ADD_ATTR(dev, "subsystem_vendor", "0x%04x", vendor);
> > +	__ADD_ATTR(dev, "vendor", "0x%04x", vendor);
> > +
> > +	return dev;
> > +}
> > +
> > +static struct udev_device *
> > +create_drm_udev_device(struct udev *udev, struct udev_device *parent,
> > +		       const char *syspath, const char *bdf, int card,
> > +		       int major, int minor)
> > +{
> > +	struct udev_device *dev;
> > +	const char *name = card < 128 ? "card" : "render";
> > +	const char *drmname = card < 128 ? "card" : "renderD";
> > +	char bus[13];
> > +
> > +	igt_assert(strlen(bdf) == 12);
> > +
> > +	dev = calloc(1, sizeof(*dev));
> > +	igt_assert(dev);
> > +
> > +	dev->parent = parent;
> > +	snprintf(dev->syspath, NAME_MAX, "%s", syspath);
> > +	strncpy(dev->subsystem, "drm", 4);
> > +	snprintf(dev->devnode, NAME_MAX, "/dev/dri/%s%d", drmname, card);
> > +
> > +	/* avoid compiler warning when copying less than 12 */
> > +	strncpy(bus, bdf, 13);
> > +	bus[7] = '\0';
> > +
> > +	__ADD_PROP(dev, "DEVLINKS", "/dev/dri/by-path/pci-%s-%s", bdf, name);
> > +	__ADD_PROP(dev, "DEVNAME", "/dev/dri/%s%d", drmname, card);
> > +	__ADD_PROP(dev, "DEVPATH", "/devices/pci%s/%s/drm/%s%d", bus, bdf,
> > +		   drmname, card);
> > +	__ADD_PROP(dev, "DEVTYPE", "drm_minor");
> > +	__ADD_PROP(dev, "ID_PATH", "pci-%s", bdf);
> > +	__ADD_PROP(dev, "MAJOR", "%d", major);
> > +	__ADD_PROP(dev, "MINOR", "%d", minor);
> > +	__ADD_PROP(dev, "SUBSYSTEM", "drm");
> > +
> > +	__ADD_ATTR(dev, "dev", "%d:%d", major, minor);
> > +	__ADD_ATTR(dev, "subsystem", "drm");
> > +
> > +	return dev;
> > +}
> > +
> > +static struct udev_device **add_intel_dev(struct udev *udev, struct udev_device **dev,
> > +					  const char *pci_slot, uint16_t pci_device)
> > +{
> > +	struct udev_device **parent;
> > +	char bd[13], path[NAME_MAX];
> > +	static int card;
> > +
> > +	strncpy(bd, pci_slot, 13);
> > +	bd[7] = 0;
> > +
> > +	parent = dev;
> > +
> > +	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s", bd, pci_slot);
> > +	*dev++ = create_pci_udev_device(udev, path, pci_slot,
> > +					0x8086, pci_device, 0x2063);
> > +
> > +	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s/drm/card%d",
> > +		 bd, pci_slot, card);
> > +	*dev++ = create_drm_udev_device(udev, *parent, path, pci_slot,
> > +					card, 226, card);
> > +
> > +	snprintf(path, NAME_MAX, "/sys/devices/pci%s/%s/drm/renderD%d",
> > +		 bd, pci_slot, card + 128);
> > +	*dev++ = create_drm_udev_device(udev, *parent, path, pci_slot,
> > +					card + 128, 226, card + 128);
> > +
> > +	card++;
> > +
> > +	return dev;
> > +}
> > +
> > +struct udev *udev_new(void)
> > +{
> > +	struct udev *udev = &_udev;
> > +	struct udev_device **dev = udev->dev;
> > +
> > +	memset(dev, 0, sizeof(_udev.dev));
> > +
> > +	dev = add_intel_dev(udev, dev, "0000:00:02.0", 0x1926); /* skl */
> > +	dev = add_intel_dev(udev, dev, "0000:01:00.0", 0x56a1); /* dg2 */
> > +	dev = add_intel_dev(udev, dev, "0000:02:02.1", 0x9a40); /* tgl */
> > +	dev = add_intel_dev(udev, dev, "0000:03:01.0", 0x56a0); /* dg2 */
> > +	dev = add_intel_dev(udev, dev, "0000:04:02.0", 0x56a2); /* dg2 */
> > +
> > +	dev = udev->dev;
> > +	while (*dev)
> > +		print_udev_device(*dev++);
> > +
> > +	return &_udev;
> > +}
> > +
> > +struct udev_enumerate *udev_enumerate_new(struct udev *udev)
> > +{
> > +	_udev_enumerate.udev = udev;
> > +
> > +	return &_udev_enumerate;
> > +}
> > +
> > +int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate,
> > +				       const char *subsystem)
> > +{
> > +	return 0;
> > +}
> > +
> > +int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate,
> > +				      const char *property, const char *value)
> > +{
> > +	return 0;
> > +}
> > +
> > +int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate)
> > +{
> > +	return 0;
> > +}
> > +
> > +struct udev_list_entry *
> > +udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate)
> > +{
> > +	_entry_dev.entry_type = TYPE_DEVICE;
> > +	_entry_dev.curr = 0;
> > +
> > +	return &_entry_dev;
> > +}
> > +
> > +struct udev_list_entry *
> > +udev_list_entry_get_next(struct udev_list_entry *list_entry)
> > +{
> > +	int curr, currdev = _entry_dev.curr;
> > +
> > +	switch (list_entry->entry_type) {
> > +	case TYPE_DEVICE:
> > +		if (_udev.dev[++list_entry->curr])
> > +			return list_entry;
> > +		break;
> > +	case TYPE_PROP:
> > +		curr = ++list_entry->curr;
> > +		if (curr < _udev.dev[currdev]->props)
> > +			return list_entry;
> > +		break;
> > +	case TYPE_ATTR:
> > +		curr = ++list_entry->curr;
> > +		if (curr < _udev.dev[currdev]->attrs)
> > +			return list_entry;
> > +		break;
> > +	}
> > +
> > +	return NULL;
> > +}
> > +
> > +const char *udev_list_entry_get_name(struct udev_list_entry *list_entry)
> > +{
> > +	int curr, currdev = _entry_dev.curr;
> > +
> > +	switch (list_entry->entry_type) {
> > +	case TYPE_DEVICE:
> > +		return _udev.dev[list_entry->curr]->syspath;
> > +	case TYPE_PROP:
> > +		curr = _entry_prop.curr;
> > +		return _udev.dev[currdev]->prop[curr].key;
> > +	case TYPE_ATTR:
> > +		curr = _entry_attr.curr;
> > +		return _udev.dev[currdev]->attr[curr].key;
> > +	}
> > +
> > +	return "UNKNOWN";
> > +}
> > +
> > +const char *udev_list_entry_get_value(struct udev_list_entry *list_entry)
> > +{
> > +	int curr, currdev = _entry_dev.curr;
> > +
> > +	switch (list_entry->entry_type) {
> > +	case TYPE_DEVICE:
> > +		return "";
> > +	case TYPE_PROP:
> > +		curr = _entry_prop.curr;
> > +		return _udev.dev[currdev]->prop[curr].val;
> > +	case TYPE_ATTR:
> > +		curr = _entry_attr.curr;
> > +		return _udev.dev[currdev]->attr[curr].val;
> > +	}
> > +
> > +	return "UNKNOWN";
> > +}
> > +
> > +struct udev_device *udev_device_new_from_syspath(struct udev *udev,
> > +						 const char *syspath)
> > +{
> > +	int i;
> > +
> > +	for (i = 0; i < sizeof(udev->dev); i++) {
> > +		if (!udev->dev[i])
> > +			return NULL;
> > +
> > +		if (strcmp(udev->dev[i]->syspath, syspath) == 0)
> > +			return udev->dev[i];
> > +	}
> > +
> > +	return NULL;
> > +}
> > +
> > +const char *udev_device_get_subsystem(struct udev_device *udev_device)
> > +{
> > +	return udev_device->subsystem;
> > +}
> > +
> > +const char *udev_device_get_syspath(struct udev_device *udev_device)
> > +{
> > +	return udev_device->syspath;
> > +}
> > +
> > +const char *udev_device_get_devnode(struct udev_device *udev_device)
> > +{
> > +	if (udev_device->devnode[0] == '\0')
> > +		return NULL;
> > +
> > +	return udev_device->devnode;
> > +}
> > +
> > +struct udev_list_entry *
> > +udev_device_get_properties_list_entry(struct udev_device *udev_device)
> > +{
> > +	_entry_prop.entry_type = TYPE_PROP;
> > +	_entry_prop.curr = 0;
> > +
> > +	return &_entry_prop;
> > +}
> > +
> > +struct udev_list_entry *
> > +udev_device_get_sysattr_list_entry(struct udev_device *udev_device)
> > +{
> > +	_entry_attr.entry_type = TYPE_ATTR;
> > +	_entry_attr.curr = 0;
> > +
> > +	return &_entry_attr;
> > +}
> > +
> > +const char *
> > +udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr)
> > +{
> > +	for (int i = 0; i < udev_device->attrs; i++)
> > +		if (strcmp(udev_device->attr[i].key, sysattr) == 0)
> > +			return udev_device->attr[i].val;
> > +
> > +	return "UNKNOWN";
> > +}
> > +
> > +const char *udev_device_get_sysname(struct udev_device *udev_device)
> > +{
> > +	return udev_device->syspath;
> > +}
> > +
> > +struct udev_device *udev_device_get_parent(struct udev_device *udev_device)
> > +{
> > +	return udev_device->parent;
> > +}
> > +
> > +struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate)
> > +{
> > +	return NULL;
> > +}
> > +
> > +struct udev_device *udev_device_unref(struct udev_device *udev_device)
> > +{
> > +	return NULL;
> > +}
> > -- 
> > 2.34.1
> > 

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

end of thread, other threads:[~2022-07-19  5:00 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-18  7:11 [igt-dev] [PATCH i-g-t v4 0/6] Add codename in device selection Zbigniew Kempczyński
2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 1/6] lib/igt_device_scan: Migrate pci assignment Zbigniew Kempczyński
2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 2/6] lib/igt_device_scan: Introduce codename for platform selection Zbigniew Kempczyński
2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 3/6] tools/lsgpu: Add codename switch (-c) Zbigniew Kempczyński
2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 4/6] lib/igt_device_scan: Align microseconds to six leading zeros Zbigniew Kempczyński
2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 5/6] lib/igt_device_scan: Add discrete/integrated pseudo-codenames Zbigniew Kempczyński
2022-07-18  7:11 ` [igt-dev] [PATCH i-g-t v4 6/6] lib/igt_device_scan: Simulate udev drm and pci device events Zbigniew Kempczyński
2022-07-18 17:11   ` Kamil Konieczny
2022-07-19  5:00     ` Zbigniew Kempczyński
2022-07-18  8:02 ` [igt-dev] ✗ Fi.CI.BAT: failure for Add codename in device selection (rev4) Patchwork
2022-07-18  8:41   ` Zbigniew Kempczyński
2022-07-18 15:18     ` Vudum, Lakshminarayana
2022-07-18 14:17 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2022-07-18 19:19 ` [igt-dev] ✓ Fi.CI.IGT: " 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.