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