All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection
@ 2022-07-07  6:59 Zbigniew Kempczyński
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 1/6] lib/igt_device_scan: Migrate pci assignment Zbigniew Kempczyński
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-07  6:59 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.

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          | 179 ++++++++++++-
 lib/igt_device_scan.h          |   1 +
 lib/igt_device_scan_simulate.c | 450 +++++++++++++++++++++++++++++++++
 tools/lsgpu.c                  |   8 +-
 4 files changed, 624 insertions(+), 14 deletions(-)
 create mode 100644 lib/igt_device_scan_simulate.c

-- 
2.34.1

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

* [igt-dev] [PATCH i-g-t 1/6] lib/igt_device_scan: Migrate pci assignment
  2022-07-07  6:59 [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection Zbigniew Kempczyński
@ 2022-07-07  6:59 ` Zbigniew Kempczyński
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 2/6] lib/igt_device_scan: Introduce codename for platform selection Zbigniew Kempczyński
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-07  6:59 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>
---
 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] 15+ messages in thread

* [igt-dev] [PATCH i-g-t 2/6] lib/igt_device_scan: Introduce codename for platform selection
  2022-07-07  6:59 [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection Zbigniew Kempczyński
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 1/6] lib/igt_device_scan: Migrate pci assignment Zbigniew Kempczyński
@ 2022-07-07  6:59 ` Zbigniew Kempczyński
  2022-07-11 14:26   ` Kamil Konieczny
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 3/6] tools/lsgpu: Add codename switch (-c) Zbigniew Kempczyński
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-07  6:59 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

we may pass:

pci:vendor=8086,device=skylake

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
 lib/igt_device_scan.c | 89 +++++++++++++++++++++++++++++++++++++++----
 lib/igt_device_scan.h |  1 +
 2 files changed, 83 insertions(+), 7 deletions(-)

diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index 83a488aa7c..afb6f07e18 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -85,7 +85,7 @@
  *
  * - 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
@@ -117,6 +117,12 @@
  *
  *   It selects the second one.
  *
+ *   We may use device codename instead 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,9 @@ struct igt_device {
 	char *pci_slot_name;
 	int gpu_index; /* For more than one GPU with same vendor and device. */
 
+	/* For grouping by codename */
+	char *codename;
+
 	struct igt_list_head link;
 };
 
@@ -248,13 +257,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 +309,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 +345,18 @@ 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, bool numeric)
+{
+	devname_fn fn;
+
+	if (!numeric)
+		fn = get_pci_vendor_device_codename_fn(vendor);
+	else
+		fn = devname_hex;
+
+	return fn(vendor, device);
+}
+
 /* Reading sysattr values can take time (even seconds),
  * we want to avoid reading such keys.
  */
@@ -514,8 +566,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, false);
 	}
 
 	return idev;
@@ -558,6 +614,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 +893,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 +1005,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 +1093,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, fmt->numeric);
+			else
+				devname = __pci_pretty_name(vendor, device, fmt->numeric);
 
 			__print_filter(filter, sizeof(filter), fmt, pci_dev,
 				       false);
@@ -1106,6 +1180,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 +1407,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 +1487,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] 15+ messages in thread

* [igt-dev] [PATCH i-g-t 3/6] tools/lsgpu: Add codename switch (-c)
  2022-07-07  6:59 [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection Zbigniew Kempczyński
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 1/6] lib/igt_device_scan: Migrate pci assignment Zbigniew Kempczyński
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 2/6] lib/igt_device_scan: Introduce codename for platform selection Zbigniew Kempczyński
@ 2022-07-07  6:59 ` Zbigniew Kempczyński
  2022-07-11  8:52   ` Kamil Konieczny
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 4/6] lib/igt_device_scan: Align microseconds to six leading zeros Zbigniew Kempczyński
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-07  6:59 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>
---
 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] 15+ messages in thread

* [igt-dev] [PATCH i-g-t 4/6] lib/igt_device_scan: Align microseconds to six leading zeros
  2022-07-07  6:59 [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (2 preceding siblings ...)
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 3/6] tools/lsgpu: Add codename switch (-c) Zbigniew Kempczyński
@ 2022-07-07  6:59 ` Zbigniew Kempczyński
  2022-07-11 11:33   ` Kamil Konieczny
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 5/6] lib/igt_device_scan: Add discrete/integrated pseudo-codenames Zbigniew Kempczyński
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-07  6:59 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>
---
 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 afb6f07e18..e41c9f8b64 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] 15+ messages in thread

* [igt-dev] [PATCH i-g-t 5/6] lib/igt_device_scan: Add discrete/integrated pseudo-codenames
  2022-07-07  6:59 [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (3 preceding siblings ...)
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 4/6] lib/igt_device_scan: Align microseconds to six leading zeros Zbigniew Kempczyński
@ 2022-07-07  6:59 ` Zbigniew Kempczyński
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 6/6] lib/igt_device_scan: Simulate udev drm and pci device events Zbigniew Kempczyński
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-07  6:59 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

or

pci:vendor=8086,device=discrete

or (when there're more discrete cards)

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

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@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 e41c9f8b64..0140460261 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 pci device id:
+ *   We may use device codename or pseudo-codename (integrated/discrete)
+ *   instead 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)
@@ -214,6 +230,7 @@ struct igt_device {
 
 	/* For grouping by codename */
 	char *codename;
+	enum dev_type dev_type;
 
 	struct igt_list_head link;
 };
@@ -226,6 +243,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)
 {
@@ -274,14 +292,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, },
 };
 
@@ -324,6 +363,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)
 {
@@ -358,6 +411,15 @@ static char *__pci_codename(uint16_t vendor, uint16_t device, bool numeric)
 	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.
  */
@@ -573,6 +635,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, false);
+		idev->dev_type = __pci_devtype(vendor, device, idev->pci_slot_name);
 	}
 
 	return idev;
@@ -624,6 +687,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] 15+ messages in thread

* [igt-dev] [PATCH i-g-t 6/6] lib/igt_device_scan: Simulate udev drm and pci device events
  2022-07-07  6:59 [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (4 preceding siblings ...)
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 5/6] lib/igt_device_scan: Add discrete/integrated pseudo-codenames Zbigniew Kempczyński
@ 2022-07-07  6:59 ` Zbigniew Kempczyński
  2022-07-07  7:37 ` [igt-dev] ✓ Fi.CI.BAT: success for Add codename in device selection Patchwork
  2022-07-07 15:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-07  6:59 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>
---
 lib/igt_device_scan.c          |   7 +
 lib/igt_device_scan_simulate.c | 450 +++++++++++++++++++++++++++++++++
 2 files changed, 457 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 0140460261..a629b3efc0 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -908,6 +908,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..5108f55924
--- /dev/null
+++ b/lib/igt_device_scan_simulate.c
@@ -0,0 +1,450 @@
+/*
+ * 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)
+{
+//#define DEBUG_SCAN_SIMULATE
+#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] 15+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Add codename in device selection
  2022-07-07  6:59 [igt-dev] [PATCH i-g-t 0/6] Add codename in device selection Zbigniew Kempczyński
                   ` (5 preceding siblings ...)
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 6/6] lib/igt_device_scan: Simulate udev drm and pci device events Zbigniew Kempczyński
@ 2022-07-07  7:37 ` Patchwork
  2022-07-07 15:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2022-07-07  7:37 UTC (permalink / raw)
  To: Zbigniew Kempczyński; +Cc: igt-dev

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from IGT_6560 -> IGTPW_7474
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (41 -> 33)
------------------------------

  Additional (1): fi-rkl-11600 
  Missing    (9): bat-dg1-6 bat-dg1-5 bat-dg2-9 bat-adlp-6 fi-ctg-p8600 bat-adln-1 bat-jsl-3 bat-rpls-2 bat-jsl-1 

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

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

### IGT changes ###

#### Issues hit ####

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

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

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

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

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

  * igt@i915_selftest@live@requests:
    - fi-blb-e6850:       [PASS][7] -> [DMESG-FAIL][8] ([i915#4528])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/fi-blb-e6850/igt@i915_selftest@live@requests.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/fi-blb-e6850/igt@i915_selftest@live@requests.html

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

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-snb-2600:        NOTRUN -> [SKIP][10] ([fdo#109271] / [fdo#111827])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/fi-snb-2600/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-rkl-11600:       NOTRUN -> [SKIP][11] ([fdo#111827]) +7 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/fi-rkl-11600/igt@kms_chamelium@hdmi-hpd-fast.html

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

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions:
    - fi-bsw-kefka:       [PASS][13] -> [FAIL][14] ([i915#6298])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html

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

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

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

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

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

  * igt@runner@aborted:
    - fi-hsw-4770:        NOTRUN -> [FAIL][20] ([fdo#109271] / [i915#4312] / [i915#5594] / [i915#6246])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/fi-hsw-4770/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - fi-snb-2600:        [INCOMPLETE][21] ([i915#3921]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/fi-snb-2600/igt@i915_selftest@live@hangcheck.html

  
  [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#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [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#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594
  [i915#5982]: https://gitlab.freedesktop.org/drm/intel/issues/5982
  [i915#6246]: https://gitlab.freedesktop.org/drm/intel/issues/6246
  [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6560 -> IGTPW_7474

  CI-20190529: 20190529
  CI_DRM_11855: 265d69db28bf1e49171ce63c702f57c9d03726b9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7474: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/index.html
  IGT_6560: 8aad1e6351d7932b33d4b460d863252eae1123b2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

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

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from IGT_6560_full -> IGTPW_7474_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Additional (3): shard-rkl shard-dg1 shard-tglu 

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

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

### IGT changes ###

#### Suppressed ####

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

  * igt@kms_cursor_crc@cursor-sliding@pipe-a-hdmi-a-1-128x128:
    - {shard-tglu}:       NOTRUN -> [INCOMPLETE][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglu-4/igt@kms_cursor_crc@cursor-sliding@pipe-a-hdmi-a-1-128x128.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][2] ([i915#180]) +3 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_ctx_persistence@smoketest:
    - shard-snb:          NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#1099])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-snb4/igt@gem_ctx_persistence@smoketest.html

  * igt@gem_eio@kms:
    - shard-tglb:         [PASS][4] -> [FAIL][5] ([i915#5784])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-tglb7/igt@gem_eio@kms.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-iclb:         [PASS][6] -> [SKIP][7] ([i915#4525])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb4/igt@gem_exec_balancer@parallel-contexts.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb3/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_endless@dispatch@bcs0:
    - shard-tglb:         [PASS][8] -> [INCOMPLETE][9] ([i915#3778])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-tglb8/igt@gem_exec_endless@dispatch@bcs0.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb8/igt@gem_exec_endless@dispatch@bcs0.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-tglb:         [PASS][10] -> [FAIL][11] ([i915#2842])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-tglb8/igt@gem_exec_fair@basic-none-share@rcs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb2/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][12] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk5/igt@gem_exec_fair@basic-none@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-tglb:         NOTRUN -> [FAIL][13] ([i915#2842]) +4 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-none@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][14] ([i915#2842]) +4 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@gem_exec_fair@basic-none@vcs1.html
    - shard-kbl:          NOTRUN -> [FAIL][15] ([i915#2842]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl4/igt@gem_exec_fair@basic-none@vcs1.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [PASS][16] -> [FAIL][17] ([i915#2849])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb5/igt@gem_exec_fair@basic-throttle@rcs0.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-kbl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#4613]) +4 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_lmem_swapping@parallel-random:
    - shard-apl:          NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#4613]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl3/igt@gem_lmem_swapping@parallel-random.html
    - shard-tglb:         NOTRUN -> [SKIP][20] ([i915#4613])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb8/igt@gem_lmem_swapping@parallel-random.html
    - shard-glk:          NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#4613])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk3/igt@gem_lmem_swapping@parallel-random.html
    - shard-iclb:         NOTRUN -> [SKIP][22] ([i915#4613])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb4/igt@gem_lmem_swapping@parallel-random.html

  * igt@gem_pxp@reject-modify-context-protection-off-1:
    - shard-tglb:         NOTRUN -> [SKIP][23] ([i915#4270])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb1/igt@gem_pxp@reject-modify-context-protection-off-1.html
    - shard-iclb:         NOTRUN -> [SKIP][24] ([i915#4270])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb1/igt@gem_pxp@reject-modify-context-protection-off-1.html

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

  * igt@gem_softpin@evict-single-offset:
    - shard-kbl:          NOTRUN -> [FAIL][26] ([i915#4171])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl7/igt@gem_softpin@evict-single-offset.html

  * igt@gen3_mixed_blits:
    - shard-tglb:         NOTRUN -> [SKIP][27] ([fdo#109289]) +2 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@gen3_mixed_blits.html
    - shard-iclb:         NOTRUN -> [SKIP][28] ([fdo#109289]) +2 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@gen3_mixed_blits.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - shard-tglb:         NOTRUN -> [SKIP][29] ([i915#2527] / [i915#2856]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb7/igt@gen9_exec_parse@batch-invalid-length.html
    - shard-iclb:         NOTRUN -> [SKIP][30] ([i915#2856]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb5/igt@gen9_exec_parse@batch-invalid-length.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-apl:          NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#658]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl7/igt@i915_pm_dc@dc3co-vpb-simulation.html
    - shard-tglb:         NOTRUN -> [SKIP][32] ([i915#1904])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
    - shard-glk:          NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#658])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk9/igt@i915_pm_dc@dc3co-vpb-simulation.html
    - shard-iclb:         NOTRUN -> [SKIP][34] ([i915#658])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb7/igt@i915_pm_dc@dc3co-vpb-simulation.html

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

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

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

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

  * igt@kms_big_fb@4-tiled-addfb:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([i915#5286]) +1 similar issue
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb7/igt@kms_big_fb@4-tiled-addfb.html
    - shard-iclb:         NOTRUN -> [SKIP][41] ([i915#5286]) +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@kms_big_fb@4-tiled-addfb.html

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][42] ([fdo#111614]) +1 similar issue
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb8/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-90:
    - shard-iclb:         NOTRUN -> [SKIP][43] ([fdo#110725] / [fdo#111614]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb3/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][44] ([fdo#109271]) +260 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][45] ([i915#6095]) +3 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb1/igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_mc_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#3886]) +11 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][47] ([i915#3689] / [i915#6095])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][48] ([i915#3689])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb1/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs.html

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][49] ([fdo#109271] / [i915#3886]) +7 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl6/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html
    - shard-glk:          NOTRUN -> [SKIP][50] ([fdo#109271] / [i915#3886]) +4 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk7/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#109278] / [i915#3886]) +4 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb6/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][52] ([i915#3689] / [i915#3886]) +2 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb7/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][53] ([fdo#109278]) +15 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb3/igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([fdo#111615] / [i915#3689]) +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb2/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][55] ([fdo#109271]) +77 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk1/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_chamelium@hdmi-hpd-storm:
    - shard-apl:          NOTRUN -> [SKIP][56] ([fdo#109271] / [fdo#111827]) +9 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl6/igt@kms_chamelium@hdmi-hpd-storm.html

  * igt@kms_color_chamelium@pipe-a-ctm-max:
    - shard-kbl:          NOTRUN -> [SKIP][57] ([fdo#109271] / [fdo#111827]) +15 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl7/igt@kms_color_chamelium@pipe-a-ctm-max.html
    - shard-snb:          NOTRUN -> [SKIP][58] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-snb7/igt@kms_color_chamelium@pipe-a-ctm-max.html

  * igt@kms_color_chamelium@pipe-c-gamma:
    - shard-iclb:         NOTRUN -> [SKIP][59] ([fdo#109284] / [fdo#111827]) +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb8/igt@kms_color_chamelium@pipe-c-gamma.html

  * igt@kms_color_chamelium@pipe-d-ctm-red-to-blue:
    - shard-tglb:         NOTRUN -> [SKIP][60] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb7/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html
    - shard-glk:          NOTRUN -> [SKIP][61] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk8/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html
    - shard-iclb:         NOTRUN -> [SKIP][62] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb3/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-kbl:          NOTRUN -> [TIMEOUT][63] ([i915#1319])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl4/igt@kms_content_protection@atomic-dpms.html
    - shard-apl:          NOTRUN -> [TIMEOUT][64] ([i915#1319])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl4/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@mei_interface:
    - shard-tglb:         NOTRUN -> [SKIP][65] ([i915#1063])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@kms_content_protection@mei_interface.html
    - shard-iclb:         NOTRUN -> [SKIP][66] ([fdo#109300] / [fdo#111066])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb1/igt@kms_content_protection@mei_interface.html

  * igt@kms_cursor_crc@cursor-rapid-movement@pipe-b-dp-1-32x10:
    - shard-apl:          NOTRUN -> [SKIP][67] ([fdo#109271]) +155 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl7/igt@kms_cursor_crc@cursor-rapid-movement@pipe-b-dp-1-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement@pipe-b-edp-1-32x32:
    - shard-iclb:         NOTRUN -> [SKIP][68] ([i915#4462]) +5 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb3/igt@kms_cursor_crc@cursor-rapid-movement@pipe-b-edp-1-32x32.html

  * igt@kms_cursor_crc@cursor-rapid-movement@pipe-c-edp-1-32x10:
    - shard-tglb:         NOTRUN -> [SKIP][69] ([i915#4462]) +7 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb3/igt@kms_cursor_crc@cursor-rapid-movement@pipe-c-edp-1-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement@pipe-c-edp-1-512x512:
    - shard-iclb:         NOTRUN -> [SKIP][70] ([i915#3359]) +5 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb3/igt@kms_cursor_crc@cursor-rapid-movement@pipe-c-edp-1-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement@pipe-d-edp-1-512x170:
    - shard-tglb:         NOTRUN -> [SKIP][71] ([i915#3359]) +7 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb3/igt@kms_cursor_crc@cursor-rapid-movement@pipe-d-edp-1-512x170.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1:
    - shard-kbl:          [PASS][72] -> [DMESG-WARN][73] ([i915#180]) +1 similar issue
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-b-dp-1:
    - shard-apl:          [PASS][74] -> [DMESG-WARN][75] ([i915#180]) +2 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-apl6/igt@kms_cursor_crc@cursor-suspend@pipe-b-dp-1.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl3/igt@kms_cursor_crc@cursor-suspend@pipe-b-dp-1.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-tglb:         NOTRUN -> [SKIP][76] ([fdo#109274] / [fdo#111825])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
    - shard-iclb:         NOTRUN -> [SKIP][77] ([fdo#109274]) +3 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
    - shard-glk:          [PASS][78] -> [FAIL][79] ([i915#2346])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-4tiled:
    - shard-tglb:         NOTRUN -> [SKIP][80] ([i915#5287])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-4tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][81] ([i915#5287])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb1/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-4tiled.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-apl:          NOTRUN -> [FAIL][82] ([i915#4767])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl1/igt@kms_fbcon_fbt@fbc-suspend.html
    - shard-glk:          NOTRUN -> [FAIL][83] ([i915#4767])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk7/igt@kms_fbcon_fbt@fbc-suspend.html
    - shard-kbl:          NOTRUN -> [FAIL][84] ([i915#4767])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl7/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-tglb:         NOTRUN -> [SKIP][85] ([fdo#109274] / [fdo#111825] / [i915#3637] / [i915#3966])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@kms_flip@2x-absolute-wf_vblank.html

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

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1:
    - shard-apl:          [PASS][87] -> [FAIL][88] ([i915#79])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl6/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1.html

  * igt@kms_flip@flip-vs-expired-vblank@d-edp1:
    - shard-tglb:         [PASS][89] -> [FAIL][90] ([i915#79])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-tglb8/igt@kms_flip@flip-vs-expired-vblank@d-edp1.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb3/igt@kms_flip@flip-vs-expired-vblank@d-edp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][91] ([i915#2672]) +3 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][92] ([i915#2672] / [i915#3555])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-iclb:         NOTRUN -> [SKIP][93] ([fdo#109280]) +19 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-blt:
    - shard-tglb:         NOTRUN -> [SKIP][94] ([fdo#109280] / [fdo#111825]) +19 similar issues
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-blt.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
    - shard-apl:          NOTRUN -> [FAIL][95] ([fdo#108145] / [i915#265])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html
    - shard-kbl:          NOTRUN -> [FAIL][96] ([fdo#108145] / [i915#265]) +1 similar issue
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl4/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-4:
    - shard-tglb:         NOTRUN -> [SKIP][97] ([i915#5288]) +1 similar issue
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@kms_plane_multiple@atomic-pipe-a-tiling-4.html

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][98] ([fdo#111615]) +3 similar issues
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb7/igt@kms_plane_multiple@atomic-pipe-c-tiling-yf.html

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

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-kbl:          NOTRUN -> [SKIP][101] ([fdo#109271] / [i915#658]) +2 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl4/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@psr2_primary_render:
    - shard-tglb:         NOTRUN -> [FAIL][102] ([i915#132] / [i915#3467])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb3/igt@kms_psr@psr2_primary_render.html
    - shard-iclb:         NOTRUN -> [SKIP][103] ([fdo#109441])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb8/igt@kms_psr@psr2_primary_render.html

  * igt@kms_psr@psr2_sprite_blt:
    - shard-iclb:         [PASS][104] -> [SKIP][105] ([fdo#109441]) +2 similar issues
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb5/igt@kms_psr@psr2_sprite_blt.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-tglb:         [PASS][106] -> [SKIP][107] ([i915#5519])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-tglb3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_vblank@pipe-c-query-busy-hang:
    - shard-snb:          NOTRUN -> [SKIP][108] ([fdo#109271]) +134 similar issues
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-snb4/igt@kms_vblank@pipe-c-query-busy-hang.html

  * igt@kms_vblank@pipe-d-wait-idle:
    - shard-apl:          NOTRUN -> [SKIP][109] ([fdo#109271] / [i915#533])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl7/igt@kms_vblank@pipe-d-wait-idle.html
    - shard-kbl:          NOTRUN -> [SKIP][110] ([fdo#109271] / [i915#533])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl7/igt@kms_vblank@pipe-d-wait-idle.html

  * igt@kms_writeback@writeback-fb-id:
    - shard-kbl:          NOTRUN -> [SKIP][111] ([fdo#109271] / [i915#2437])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@kms_writeback@writeback-fb-id.html
    - shard-apl:          NOTRUN -> [SKIP][112] ([fdo#109271] / [i915#2437])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl6/igt@kms_writeback@writeback-fb-id.html

  * igt@nouveau_crc@pipe-a-ctx-flip-detection:
    - shard-iclb:         NOTRUN -> [SKIP][113] ([i915#2530])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb6/igt@nouveau_crc@pipe-a-ctx-flip-detection.html
    - shard-tglb:         NOTRUN -> [SKIP][114] ([i915#2530]) +1 similar issue
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb8/igt@nouveau_crc@pipe-a-ctx-flip-detection.html

  * igt@nouveau_crc@pipe-d-ctx-flip-skip-current-frame:
    - shard-iclb:         NOTRUN -> [SKIP][115] ([fdo#109278] / [i915#2530])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb7/igt@nouveau_crc@pipe-d-ctx-flip-skip-current-frame.html

  * igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][116] ([fdo#109291]) +1 similar issue
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb2/igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name.html

  * igt@prime_nv_api@nv_self_import:
    - shard-iclb:         NOTRUN -> [SKIP][117] ([fdo#109291]) +1 similar issue
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb1/igt@prime_nv_api@nv_self_import.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-tglb:         NOTRUN -> [SKIP][118] ([fdo#109295])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb7/igt@prime_vgem@fence-flip-hang.html
    - shard-iclb:         NOTRUN -> [SKIP][119] ([fdo#109295])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@prime_vgem@fence-flip-hang.html

  * igt@sysfs_clients@sema-25:
    - shard-apl:          NOTRUN -> [SKIP][120] ([fdo#109271] / [i915#2994]) +1 similar issue
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl8/igt@sysfs_clients@sema-25.html
    - shard-tglb:         NOTRUN -> [SKIP][121] ([i915#2994]) +1 similar issue
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb8/igt@sysfs_clients@sema-25.html
    - shard-glk:          NOTRUN -> [SKIP][122] ([fdo#109271] / [i915#2994]) +1 similar issue
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk3/igt@sysfs_clients@sema-25.html
    - shard-iclb:         NOTRUN -> [SKIP][123] ([i915#2994]) +1 similar issue
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb7/igt@sysfs_clients@sema-25.html
    - shard-kbl:          NOTRUN -> [SKIP][124] ([fdo#109271] / [i915#2994]) +3 similar issues
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl7/igt@sysfs_clients@sema-25.html

  
#### Possible fixes ####

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

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-iclb:         [SKIP][127] ([i915#4525]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb5/igt@gem_exec_balancer@parallel-bb-first.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [FAIL][129] ([i915#2842]) -> [PASS][130]
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-tglb2/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-kbl:          [FAIL][131] ([i915#2842]) -> [PASS][132]
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - shard-glk:          [FAIL][133] ([i915#2842]) -> [PASS][134]
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-glk7/igt@gem_exec_fair@basic-pace@rcs0.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk1/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-kbl:          [DMESG-WARN][135] ([i915#180]) -> [PASS][136] +5 similar issues
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@gem_workarounds@suspend-resume-fd.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-kbl:          [DMESG-WARN][137] ([i915#5566] / [i915#716]) -> [PASS][138]
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl7/igt@gen9_exec_parse@allowed-single.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl4/igt@gen9_exec_parse@allowed-single.html
    - shard-apl:          [DMESG-WARN][139] ([i915#5566] / [i915#716]) -> [PASS][140]
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-apl2/igt@gen9_exec_parse@allowed-single.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl4/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [FAIL][141] ([i915#454]) -> [PASS][142]
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb4/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
    - shard-glk:          [DMESG-WARN][143] ([i915#118]) -> [PASS][144]
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-glk8/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-glk5/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html

  * igt@kms_async_flips@crc@pipe-b-dp-1:
    - shard-kbl:          [FAIL][145] -> [PASS][146]
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@kms_async_flips@crc@pipe-b-dp-1.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@kms_async_flips@crc@pipe-b-dp-1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@b-dp1:
    - shard-apl:          [DMESG-WARN][147] ([i915#180]) -> [PASS][148] +1 similar issue
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-apl7/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html

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

  * igt@kms_psr@psr2_primary_mmap_gtt:
    - shard-iclb:         [SKIP][151] ([fdo#109441]) -> [PASS][152] +1 similar issue
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb5/igt@kms_psr@psr2_primary_mmap_gtt.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-iclb:         [SKIP][153] ([i915#5519]) -> [PASS][154]
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  
#### Warnings ####

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-iclb:         [FAIL][155] ([i915#6117]) -> [SKIP][156] ([i915#4525])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb1/igt@gem_exec_balancer@parallel-ordering.html
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb6/igt@gem_exec_balancer@parallel-ordering.html

  * igt@i915_pm_rc6_residency@rc6-idle@vecs0:
    - shard-iclb:         [WARN][157] ([i915#2684]) -> [FAIL][158] ([i915#2684])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area:
    - shard-iclb:         [SKIP][159] ([fdo#111068] / [i915#658]) -> [SKIP][160] ([i915#2920])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb7/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
    - shard-iclb:         [SKIP][161] ([i915#2920]) -> [SKIP][162] ([i915#658]) +1 similar issue
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-iclb4/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][163], [FAIL][164], [FAIL][165], [FAIL][166], [FAIL][167], [FAIL][168], [FAIL][169], [FAIL][170], [FAIL][171], [FAIL][172]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#716]) -> ([FAIL][173], [FAIL][174], [FAIL][175], [FAIL][176], [FAIL][177], [FAIL][178]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@runner@aborted.html
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl4/igt@runner@aborted.html
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@runner@aborted.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@runner@aborted.html
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@runner@aborted.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@runner@aborted.html
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl1/igt@runner@aborted.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl7/igt@runner@aborted.html
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl7/igt@runner@aborted.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6560/shard-kbl7/igt@runner@aborted.html
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl7/igt@runner@aborted.html
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl4/igt@runner@aborted.html
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@runner@aborted.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@runner@aborted.html
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/igt@runner@aborted.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/shard-kbl1/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).

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [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#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#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [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#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
  [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#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [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#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [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#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
  [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#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
  [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#1904]: https://gitlab.freedesktop.org/drm/intel/issues/1904
  [i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2373]: https://gitlab.freedesktop.org/drm/intel/issues/2373
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
  [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#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
  [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#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849
  [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#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [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#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3376]: https://gitlab.freedesktop.org/drm/intel/issues/3376
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [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#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3810]: https://gitlab.freedesktop.org/drm/intel/issues/3810
  [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#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3963]: https://gitlab.freedesktop.org/drm/intel/issues/3963
  [i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
  [i915#4016]: https://gitlab.freedesktop.org/drm/intel/issues/4016
  [i915#4032]: https://gitlab.freedesktop.org/drm/intel/issues/4032
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [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#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4278]: https://gitlab.freedesktop.org/drm/intel/issues/4278
  [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#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818
  [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#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
  [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4893]: https://gitlab.freedesktop.org/drm/intel/issues/4893
  [i915#4904]: https://gitlab.freedesktop.org/drm/intel/issues/4904
  [i915#4941]: https://gitlab.freedesktop.org/drm/intel/issues/4941
  [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5182]: https://gitlab.freedesktop.org/drm/intel/issues/5182
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5264]: https://gitlab.freedesktop.org/drm/intel/issues/5264
  [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#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
  [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#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
  [i915#6011]: https://gitlab.freedesktop.org/drm/intel/issues/6011
  [i915#6054]: https://gitlab.freedesktop.org/drm/intel/issues/6054
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6140]: https://gitlab.freedesktop.org/drm/intel/issues/6140
  [i915#6141]: https://gitlab.freedesktop.org/drm/intel/issues/6141
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6259]: https://gitlab.freedesktop.org/drm/intel/issues/6259
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6331]: https://gitlab.freedesktop.org/drm/intel/issues/6331
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
  [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_6560 -> IGTPW_7474

  CI-20190529: 20190529
  CI_DRM_11855: 265d69db28bf1e49171ce63c702f57c9d03726b9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7474: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7474/index.html
  IGT_6560: 8aad1e6351d7932b33d4b460d863252eae1123b2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t 3/6] tools/lsgpu: Add codename switch (-c)
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 3/6] tools/lsgpu: Add codename switch (-c) Zbigniew Kempczyński
@ 2022-07-11  8:52   ` Kamil Konieczny
  0 siblings, 0 replies; 15+ messages in thread
From: Kamil Konieczny @ 2022-07-11  8:52 UTC (permalink / raw)
  To: igt-dev

On 2022-07-07 at 08:59:36 +0200, Zbigniew Kempczyński wrote:
> 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	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 4/6] lib/igt_device_scan: Align microseconds to six leading zeros
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 4/6] lib/igt_device_scan: Align microseconds to six leading zeros Zbigniew Kempczyński
@ 2022-07-11 11:33   ` Kamil Konieczny
  2022-07-12  8:12     ` Zbigniew Kempczyński
  0 siblings, 1 reply; 15+ messages in thread
From: Kamil Konieczny @ 2022-07-11 11:33 UTC (permalink / raw)
  To: igt-dev

On 2022-07-07 at 08:59:37 +0200, Zbigniew Kempczyński wrote:
> 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>
> ---
>  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 afb6f07e18..e41c9f8b64 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); \
---------------- ^
I checked other debug prints and this is the only place which
uses 10ld for seconds, in other places there is %ld, so maybe
it is worth to change this ?

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

>  	printf(__VA_ARGS__); \
>  }
>  
> -- 
> 2.34.1
> 

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

* Re: [igt-dev] [PATCH i-g-t 2/6] lib/igt_device_scan: Introduce codename for platform selection
  2022-07-07  6:59 ` [igt-dev] [PATCH i-g-t 2/6] lib/igt_device_scan: Introduce codename for platform selection Zbigniew Kempczyński
@ 2022-07-11 14:26   ` Kamil Konieczny
  2022-07-12  8:02     ` Zbigniew Kempczyński
  2022-07-12  9:08     ` Zbigniew Kempczyński
  0 siblings, 2 replies; 15+ messages in thread
From: Kamil Konieczny @ 2022-07-11 14:26 UTC (permalink / raw)
  To: igt-dev

Hi Zbigniew,

On 2022-07-07 at 08:59:35 +0200, Zbigniew Kempczyński wrote:
> Platform rare is defined by single pci device id. Adding platform group
---------- ^
Maybe s/rare/rarely/ ? or maybe seldom ?

> selection will make device selection more convenient. Now instead using
> 
> pci:vendor=8086,device=0x1927
> 
> we may pass:
> 
> pci:vendor=8086,device=skylake

As we are at this, even better would be:
vendor=intel,device=skylake

> 
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> ---
>  lib/igt_device_scan.c | 89 +++++++++++++++++++++++++++++++++++++++----
>  lib/igt_device_scan.h |  1 +
>  2 files changed, 83 insertions(+), 7 deletions(-)
> 
> diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
> index 83a488aa7c..afb6f07e18 100644
> --- a/lib/igt_device_scan.c
> +++ b/lib/igt_device_scan.c
> @@ -85,7 +85,7 @@
>   *
>   * - 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
> @@ -117,6 +117,12 @@
>   *
>   *   It selects the second one.
>   *
> + *   We may use device codename instead 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,9 @@ struct igt_device {
>  	char *pci_slot_name;
>  	int gpu_index; /* For more than one GPU with same vendor and device. */
>  
> +	/* For grouping by codename */

Please put this comment after var name, just like above at
gpu_index.

> +	char *codename;
> +
>  	struct igt_list_head link;
>  };
>  
> @@ -248,13 +257,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 +309,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 +345,18 @@ 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, bool numeric)
---------------------------------------------------------------  ^
imho you should drop this bool param here.

> +{
> +	devname_fn fn;
> +
> +	if (!numeric)
> +		fn = get_pci_vendor_device_codename_fn(vendor);

Use this unconditionally for getting fn.

> +	else
> +		fn = devname_hex;
> +
> +	return fn(vendor, device);
> +}
> +
>  /* Reading sysattr values can take time (even seconds),
>   * we want to avoid reading such keys.
>   */
> @@ -514,8 +566,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, false);
--------------------------------------------------------------  ^
This looks bad, imho you drop this param.

>  	}
>  
>  	return idev;
> @@ -558,6 +614,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 +893,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 +1005,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 +1093,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, fmt->numeric);

This mixing codename and fmt->numeric looks bad. Is it OK to use
both -c option and numeric here ? so imho this should be just
				devname = __pci_codename(vendor, device);

Regards,
Kamil

> +			else
> +				devname = __pci_pretty_name(vendor, device, fmt->numeric);
>  
>  			__print_filter(filter, sizeof(filter), fmt, pci_dev,
>  				       false);
> @@ -1106,6 +1180,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 +1407,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 +1487,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	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/6] lib/igt_device_scan: Introduce codename for platform selection
  2022-07-11 14:26   ` Kamil Konieczny
@ 2022-07-12  8:02     ` Zbigniew Kempczyński
  2022-07-12  9:08     ` Zbigniew Kempczyński
  1 sibling, 0 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-12  8:02 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev

On Mon, Jul 11, 2022 at 04:26:24PM +0200, Kamil Konieczny wrote:
> Hi Zbigniew,
> 
> On 2022-07-07 at 08:59:35 +0200, Zbigniew Kempczyński wrote:
> > Platform rare is defined by single pci device id. Adding platform group
> ---------- ^
> Maybe s/rare/rarely/ ? or maybe seldom ?
> 
> > selection will make device selection more convenient. Now instead using
> > 
> > pci:vendor=8086,device=0x1927
> > 
> > we may pass:
> > 
> > pci:vendor=8086,device=skylake
> 
> As we are at this, even better would be:
> vendor=intel,device=skylake

This works either. You want me to add this in comment?

--
Zbigniew

> 
> > 
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > ---
> >  lib/igt_device_scan.c | 89 +++++++++++++++++++++++++++++++++++++++----
> >  lib/igt_device_scan.h |  1 +
> >  2 files changed, 83 insertions(+), 7 deletions(-)
> > 
> > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
> > index 83a488aa7c..afb6f07e18 100644
> > --- a/lib/igt_device_scan.c
> > +++ b/lib/igt_device_scan.c
> > @@ -85,7 +85,7 @@
> >   *
> >   * - 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
> > @@ -117,6 +117,12 @@
> >   *
> >   *   It selects the second one.
> >   *
> > + *   We may use device codename instead 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,9 @@ struct igt_device {
> >  	char *pci_slot_name;
> >  	int gpu_index; /* For more than one GPU with same vendor and device. */
> >  
> > +	/* For grouping by codename */
> 
> Please put this comment after var name, just like above at
> gpu_index.
> 
> > +	char *codename;
> > +
> >  	struct igt_list_head link;
> >  };
> >  
> > @@ -248,13 +257,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 +309,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 +345,18 @@ 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, bool numeric)
> ---------------------------------------------------------------  ^
> imho you should drop this bool param here.
> 
> > +{
> > +	devname_fn fn;
> > +
> > +	if (!numeric)
> > +		fn = get_pci_vendor_device_codename_fn(vendor);
> 
> Use this unconditionally for getting fn.
> 
> > +	else
> > +		fn = devname_hex;
> > +
> > +	return fn(vendor, device);
> > +}
> > +
> >  /* Reading sysattr values can take time (even seconds),
> >   * we want to avoid reading such keys.
> >   */
> > @@ -514,8 +566,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, false);
> --------------------------------------------------------------  ^
> This looks bad, imho you drop this param.
> 
> >  	}
> >  
> >  	return idev;
> > @@ -558,6 +614,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 +893,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 +1005,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 +1093,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, fmt->numeric);
> 
> This mixing codename and fmt->numeric looks bad. Is it OK to use
> both -c option and numeric here ? so imho this should be just
> 				devname = __pci_codename(vendor, device);
> 
> Regards,
> Kamil
> 
> > +			else
> > +				devname = __pci_pretty_name(vendor, device, fmt->numeric);
> >  
> >  			__print_filter(filter, sizeof(filter), fmt, pci_dev,
> >  				       false);
> > @@ -1106,6 +1180,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 +1407,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 +1487,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	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 4/6] lib/igt_device_scan: Align microseconds to six leading zeros
  2022-07-11 11:33   ` Kamil Konieczny
@ 2022-07-12  8:12     ` Zbigniew Kempczyński
  0 siblings, 0 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-12  8:12 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev

On Mon, Jul 11, 2022 at 01:33:42PM +0200, Kamil Konieczny wrote:
> On 2022-07-07 at 08:59:37 +0200, Zbigniew Kempczyński wrote:
> > 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>
> > ---
> >  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 afb6f07e18..e41c9f8b64 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); \
> ---------------- ^
> I checked other debug prints and this is the only place which
> uses 10ld for seconds, in other places there is %ld, so maybe
> it is worth to change this ?

I've enforced alignment to 10 digit to be sure time it will be 
well formatted even if on test machine date would be 1970 (I got 
this in my mind from the past). We will switch to 11ld in 2286-11-20
so if nothing amazing will happen I likely won't see this jump
in the future.

If you want I will change this - this code is blocked anyway unless
you're playing with debug.

--
Zbigniew 

> 
> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> 
> >  	printf(__VA_ARGS__); \
> >  }
> >  
> > -- 
> > 2.34.1
> > 

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

* Re: [igt-dev] [PATCH i-g-t 2/6] lib/igt_device_scan: Introduce codename for platform selection
  2022-07-11 14:26   ` Kamil Konieczny
  2022-07-12  8:02     ` Zbigniew Kempczyński
@ 2022-07-12  9:08     ` Zbigniew Kempczyński
  1 sibling, 0 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-07-12  9:08 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev

On Mon, Jul 11, 2022 at 04:26:24PM +0200, Kamil Konieczny wrote:
> Hi Zbigniew,
> 
> On 2022-07-07 at 08:59:35 +0200, Zbigniew Kempczyński wrote:
> > Platform rare is defined by single pci device id. Adding platform group
> ---------- ^
> Maybe s/rare/rarely/ ? or maybe seldom ?
> 
> > selection will make device selection more convenient. Now instead using
> > 
> > pci:vendor=8086,device=0x1927
> > 
> > we may pass:
> > 
> > pci:vendor=8086,device=skylake
> 
> As we are at this, even better would be:
> vendor=intel,device=skylake
> 
> > 
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > ---
> >  lib/igt_device_scan.c | 89 +++++++++++++++++++++++++++++++++++++++----
> >  lib/igt_device_scan.h |  1 +
> >  2 files changed, 83 insertions(+), 7 deletions(-)
> > 
> > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
> > index 83a488aa7c..afb6f07e18 100644
> > --- a/lib/igt_device_scan.c
> > +++ b/lib/igt_device_scan.c
> > @@ -85,7 +85,7 @@
> >   *
> >   * - 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
> > @@ -117,6 +117,12 @@
> >   *
> >   *   It selects the second one.
> >   *
> > + *   We may use device codename instead 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,9 @@ struct igt_device {
> >  	char *pci_slot_name;
> >  	int gpu_index; /* For more than one GPU with same vendor and device. */
> >  
> > +	/* For grouping by codename */
> 
> Please put this comment after var name, just like above at
> gpu_index.
> 
> > +	char *codename;
> > +
> >  	struct igt_list_head link;
> >  };
> >  
> > @@ -248,13 +257,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 +309,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 +345,18 @@ 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, bool numeric)
> ---------------------------------------------------------------  ^
> imho you should drop this bool param here.
> 
> > +{
> > +	devname_fn fn;
> > +
> > +	if (!numeric)
> > +		fn = get_pci_vendor_device_codename_fn(vendor);
> 
> Use this unconditionally for getting fn.
> 
> > +	else
> > +		fn = devname_hex;
> > +
> > +	return fn(vendor, device);
> > +}
> > +
> >  /* Reading sysattr values can take time (even seconds),
> >   * we want to avoid reading such keys.
> >   */
> > @@ -514,8 +566,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, false);
> --------------------------------------------------------------  ^
> This looks bad, imho you drop this param.
> 
> >  	}
> >  
> >  	return idev;
> > @@ -558,6 +614,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 +893,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 +1005,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 +1093,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, fmt->numeric);
> 
> This mixing codename and fmt->numeric looks bad. Is it OK to use
> both -c option and numeric here ? so imho this should be just
> 				devname = __pci_codename(vendor, device);

Agree, I will fix this in next series.

--
Zbigniew

> 
> Regards,
> Kamil
> 
> > +			else
> > +				devname = __pci_pretty_name(vendor, device, fmt->numeric);
> >  
> >  			__print_filter(filter, sizeof(filter), fmt, pci_dev,
> >  				       false);
> > @@ -1106,6 +1180,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 +1407,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 +1487,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	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2022-07-12  9:08 UTC | newest]

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