User friendly lsgpu/intel_gpu_top device listing
cover User friendly lsgpu/intel_gpu_top device listing
From: Tvrtko Ursulin <[email protected]>
Please see individual path commit messages for details, but essentially I implemented this:
$ sudo tools/lsgpu card1 8086:4905 drm:/dev/dri/card1 └─renderD129 drm:/dev/dri/renderD129 card0 8086:3E98 drm:/dev/dri/card0 └─renderD128 drm:/dev/dri/renderD128
$ sudo tools/lsgpu --pci card1 8086:4905 pci:vendor=8086,device=4905,card=0 └─renderD129 card0 8086:3E98 pci:vendor=8086,device=3E98,card=0 └─renderD128
$ sudo tools/lsgpu --sysfs card1 8086:4905 sys:/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0 └─renderD129 sys:/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/renderD129 card0 8086:3E98 sys:/sys/devices/pci0000:00/0000:00:02.0 └─renderD128 sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
I need to find a machine with two GPUs of the same device id to finish testing this hence still RFC.
Tvrtko Ursulin (5):
intel_gpu_top: User friendly device listing
lsgpu: User friendly device listing lib/igt_device_scan: Remember PCI card index after scanning
lsgpu: Add filter type print-out selection
intel_gpu_top: Default GPU list to PCI mode
lib/igt_device_scan.c | 205 +++++++++++++++++++++++++++++++++++++----- lib/igt_device_scan.h | 16 +++- tools/intel_gpu_top.c | 8 +- tools/lsgpu.c | 38 ++++++-- 4 files changed, 233 insertions(+), 34 deletions(-)
Signature · 6 lines
2.25.1 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
RFC 1/5 intel_gpu_top: User friendly device listing
From: Tvrtko Ursulin <[email protected]>
Adding a new device selection print type suitable for user-facing use cases like intel_gpu_top -L and later lsgpu.
Instead of:
sys:/sys/devices/pci0000:00/0000:00:02.0/drm/card0
subsystem : drm
drm card : /dev/dri/card0
parent : sys:/sys/devices/pci0000:00/0000:00:02.0sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
subsystem : drm
drm render : /dev/dri/renderD128
parent : sys:/sys/devices/pci0000:00/0000:00:02.0sys:/sys/devices/pci0000:00/0000:00:02.0
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
vendor : 8086
device : 193BNew format looks like:
card0 8086:193B drm:/dev/dri/card0
└─renderD128 drm:/dev/dri/renderD128
Advantages are more compact, more readable, one entry per GPU, shorter string to copy and paste to intel_gpu_top -d, or respective usage.
v2:
* Increase stack filter size. (Zbigniew)
--- lib/igt_device_scan.c | 109 +++++++++++++++++++++++++++++++++++++----- lib/igt_device_scan.h | 1 + tools/intel_gpu_top.c | 3 +- 3 files changed, 100 insertions(+), 13 deletions(-)
lib/igt_device_scan.c +98 -11
@@ -735,18 +735,26 @@ static inline void _pr_simple2(const char *k, const char *v1, const char *v2)printf (" %-16s: %s:%s\n" , k, v1, v2); } -static void igt_devs_print_simple (struct igt_list_head *view) +static bool __check_empty (struct igt_list_head *view) { -struct igt_device *dev; -if (!view) -return ; +return true;if (igt_list_empty (view)) {printf ("No GPU devices found\n" ); -return ; +return true; } +return false; +} + +static void igt_devs_print_simple (struct igt_list_head *view) +{ +struct igt_device *dev; + +if (__check_empty (view)) +return ; +igt_list_for_each_entry (dev, view, link) {printf ("sys:%s\n" , dev->syspath);if (dev->subsystem)
@@ -768,6 +776,89 @@ static void igt_devs_print_simple(struct igt_list_head *view) } } +static struct igt_device * +__find_pci (struct igt_list_head *view,const char *drm) +{ +struct igt_device *dev; + +igt_list_for_each_entry (dev, view, link) { +if (!is_pci_subsystem (dev) || !dev->drm_card) +continue ; + +if (!strcmp (dev->drm_card, drm)) +return dev; + } + +return NULL ; +} + +static void igt_devs_print_user (struct igt_list_head *view) +{ +struct igt_device *dev; + +if (__check_empty (view)) +return ; + +igt_list_for_each_entry (dev, view, link) { +unsigned int i, num_children; +struct igt_device *pci_dev; +struct igt_device *dev2; +char filter[256 ]; +char *drm_name; +int ret; + +if (!is_drm_subsystem (dev)) +continue ; +if (!dev->drm_card || dev->drm_render) +continue ; + + drm_name =rindex (dev->drm_card,'/' ); +if (!drm_name || !*++drm_name) +continue ; + + ret =snprintf (filter,sizeof (filter),"drm:%s" , dev->drm_card); +igt_assert (ret <sizeof (filter)); + + pci_dev =__find_pci (view, dev->drm_card); +if (pci_dev) +printf ("%-24s%4s:%4s %s\n" , + drm_name, pci_dev->vendor, pci_dev->device, + filter); +else +printf ("%-24s %s\n" , drm_name, filter); + + num_children =0 ; +igt_list_for_each_entry (dev2, view, link) { +if (!is_drm_subsystem (dev2) || !dev2->drm_render) +continue ; +if (strcmp (dev2->parent->syspath, dev->parent->syspath)) +continue ; + + num_children++; + } + + i =0 ; +igt_list_for_each_entry (dev2, view, link) { +if (!is_drm_subsystem (dev2) || !dev2->drm_render) +continue ; +if (strcmp (dev2->parent->syspath, dev->parent->syspath)) +continue ; + + drm_name =rindex (dev2->drm_render,'/' ); +if (!drm_name || !*++drm_name) +continue ; + + ret =snprintf (filter,sizeof (filter),"drm:%s" , + dev2->drm_render); +igt_assert (ret <sizeof (filter)); + +printf ("%s%-22s %s\n" , + (++i == num_children) ?"└─" :"├─" , + drm_name, filter); + } + } +} +static inline void _print_key_value (const char * k,const char *v) {printf ("%-32s: %s\n" , k, v);
@@ -792,14 +883,9 @@ static void igt_devs_print_detail(struct igt_list_head *view) {struct igt_device *dev; -if (!view) +if (__check_empty (view))return ; -if (igt_list_empty (view)) { -printf ("No GPU devices found\n" ); -return ; - } -igt_list_for_each_entry (dev, view, link) {printf ("========== %s:%s ==========\n" , dev->subsystem, dev->syspath);
@@ -821,6 +907,7 @@ static struct print_func { } print_functions[] = { [IGT_PRINT_SIMPLE] = { .prn = igt_devs_print_simple }, [IGT_PRINT_DETAIL] = { .prn = igt_devs_print_detail }, + [IGT_PRINT_USER] = { .prn = igt_devs_print_user }, };/**
lib/igt_device_scan.h +1 -0
@@ -37,6 +37,7 @@enum igt_devices_print_type {IGT_PRINT_SIMPLE ,IGT_PRINT_DETAIL , +IGT_PRINT_USER ,/* End user friendly. */ };#define INTEGRATED_I915_GPU_PCI_ID "0000:00:02.0"
tools/intel_gpu_top.c +1 -2
@@ -1313,7 +1313,6 @@ int main(int argc, char **argv)unsigned int i;int ret =0 , ch;bool list_device = false; -enum igt_devices_print_type printtype =IGT_PRINT_SIMPLE ;char *pmu_device, *opt_device =NULL ;struct igt_device_card card;
@@ -1388,7 +1387,7 @@ int main(int argc, char **argv)igt_devices_scan (false);if (list_device) { -igt_devices_print (printtype); +igt_devices_print (IGT_PRINT_USER ); goto exit; }
Signature · 6 lines
2.25.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
RFC 2/5 lsgpu: User friendly device listing
In reply to Tvrtko UrsulinFrom: Tvrtko Ursulin <[email protected]>
New default user frindly device listing mode which replaces:
sys:/sys/devices/pci0000:00/0000:00:02.0/drm/card0
subsystem : drm
drm card : /dev/dri/card0
parent : sys:/sys/devices/pci0000:00/0000:00:02.0sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
subsystem : drm drm render : /dev/dri/renderD128 parent : sys:/sys/devices/pci0000:00/0000:00:02.0
sys:/sys/devices/pci0000:00/0000:00:02.0
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
vendor : 8086
device : 193BWith:
card0 8086:193B drm:/dev/dri/card0
└─renderD128 drm:/dev/dri/renderD128
Advantages are more compact, more readable, one entry per GPU.
Legacy format can be chose using the -s / --print-simple command line switches.
--- tools/lsgpu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
tools/lsgpu.c +8 -2
@@ -70,6 +70,7 @@*/ enum { +OPT_PRINT_SIMPLE ='s' ,OPT_PRINT_DETAIL ='p' ,OPT_LIST_VENDORS ='v' ,OPT_LIST_FILTERS ='l' ,
@@ -85,6 +86,7 @@ static char *igt_device;static const char *usage_str ="usage: lsgpu [options]\n\n" "Options:\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" " -l, --list-filter-types List registered device filters types\n"
@@ -151,6 +153,7 @@ static char *get_device_from_rc(void)int main (int argc,char *argv[]) {static struct option long_options[] = { + {"print-simple" , no_argument,NULL ,OPT_PRINT_SIMPLE }, {"print-detail" , no_argument,NULL ,OPT_PRINT_DETAIL }, {"list-vendors" , no_argument,NULL ,OPT_LIST_VENDORS }, {"list-filter-types" , no_argument,NULL ,OPT_LIST_FILTERS },
@@ -160,12 +163,15 @@ int main(int argc, char *argv[]) };int c, index =0 ;char *env_device =NULL , *opt_device =NULL , *rc_device =NULL ; -enum igt_devices_print_type printtype =IGT_PRINT_SIMPLE ; +enum igt_devices_print_type printtype =IGT_PRINT_USER ; -while ((c =getopt_long (argc, argv,"pvld:h" , +while ((c =getopt_long (argc, argv,"spvld:h" , long_options, &index)) !=-1 ) {switch (c) { +case OPT_PRINT_SIMPLE : + printtype =IGT_PRINT_SIMPLE ; +break ;case OPT_PRINT_DETAIL : printtype =IGT_PRINT_DETAIL ;break ;
Signature · 6 lines
2.25.1 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
RFC 3/5 lib/igt_device_scan: Remember PCI card index after scanning
In reply to Tvrtko UrsulinFrom: Tvrtko Ursulin <[email protected]>
After devices are sorted post scanning, assing a card index to each so it can be easily accessed if PCI filter for a card needs to be printed out.
--- lib/igt_device_scan.c | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-)
lib/igt_device_scan.c +36 -7
@@ -166,6 +166,7 @@ struct igt_device {char *vendor;char *device;char *pci_slot_name; +int pci_index;struct igt_list_head link; };
@@ -601,6 +602,33 @@ static void sort_all_devices(void)free (devs); } +static void index_pci_devices (void ) +{ +struct igt_device *dev; + +igt_list_for_each_entry (dev, &igt_devs.all, link) { +struct igt_device *dev2; +int index =0 ; + +if (!is_pci_subsystem (dev)) +continue ; + +igt_list_for_each_entry (dev2, &igt_devs.all, link) { +if (!is_pci_subsystem (dev2)) +continue ; + +if (dev2 == dev) +break ; + +if (!strcasecmp (dev->vendor, dev2->vendor) && + !strcasecmp (dev->device, dev2->device)) + index++; + } + + dev->pci_index = index; + } +} +/* Core scanning function. * * All scanned devices are kept inside igt_devs.all pointer array.
@@ -657,6 +685,7 @@ static void scan_drm_devices(void)udev_unref (udev);sort_all_devices (); +index_pci_devices ();igt_list_for_each_entry (dev, &igt_devs.all, link) {struct igt_device *dev_dup =duplicate_device (dev);
@@ -1105,13 +1134,13 @@ static struct igt_list_head *filter_pci(const struct filter_class *fcls,if (filter->data.device &&strcasecmp (filter->data.device, dev->device))continue ; -/* We get n-th card */ -if (!card) { -struct igt_device *dup =duplicate_device (dev); -igt_list_add_tail (&dup->link, &igt_devs.filtered); -break ; - } - card--; +/* Skip if 'card' doesn't match */ +if (card != dev->pci_index) +continue ; + + dev =duplicate_device (dev); +igt_list_add_tail (&dev->link, &igt_devs.filtered); +break ; }DBG ("Filter pci filtered size: %d\n" ,igt_list_length (&igt_devs.filtered));
Signature · 6 lines
2.25.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [igt-dev] [RFC i-g-t 3/5] lib/igt_device_scan: Remember PCI card index after scanning
Quoted 74 lines · Tvrtko Ursulin
From: Tvrtko Ursulin <[email protected]>
After devices are sorted post scanning, assing a card index to each so it can be easily accessed if PCI filter for a card needs to be printed out.
Signed-off-by Tvrtko Ursulin <[email protected]>Cc Petri Latvala <[email protected]>Cc Zbigniew Kempczyński <[email protected]>--- lib/igt_device_scan.c | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-)lib/igt_device_scan.c +29
-4@@ -166,6 +166,7 @@ struct igt_device {char *vendor;char *device;char *pci_slot_name; +int pci_index;struct igt_list_head link; };@@ -601,6 +602,33 @@ static void sort_all_devices(void)free (devs); } +static void index_pci_devices (void ) +{ +struct igt_device *dev; + +igt_list_for_each_entry (dev, &igt_devs.all, link) { +struct igt_device *dev2; +int index =0 ; + +if (!is_pci_subsystem (dev)) +continue ; + +igt_list_for_each_entry (dev2, &igt_devs.all, link) { +if (!is_pci_subsystem (dev2)) +continue ; + +if (dev2 == dev) +break ; + +if (!strcasecmp (dev->vendor, dev2->vendor) && + !strcasecmp (dev->device, dev2->device)) + index++; + } + + dev->pci_index = index; + } +} +/* Core scanning function. * * All scanned devices are kept inside igt_devs.all pointer array. @@ -657,6 +685,7 @@ static void scan_drm_devices(void)udev_unref (udev);sort_all_devices (); +index_pci_devices ();igt_list_for_each_entry (dev, &igt_devs.all, link) {struct igt_device *dev_dup =duplicate_device (dev);@@ -1105,13 +1134,13 @@ static struct igt_list_head *filter_pci(const struct filter_class *fcls,if (filter->data.device &&strcasecmp (filter->data.device, dev->device))continue ; -/* We get n-th card */ -if (!card) { -struct igt_device *dup =duplicate_device (dev); -igt_list_add_tail (&dup->link, &igt_devs.filtered);
lib/igt_device_scan.c static struct igt_list_head *filter_pci(const struct filter_class *fcls, · line 1143
Quoted 10 lines
lib/igt_device_scan.c +7
-3-break ; - } - card--; +/* Skip if 'card' doesn't match */ +if (card != dev->pci_index) +continue ; + + dev =duplicate_device (dev); +igt_list_add_tail (&dev->link, &igt_devs.filtered); +break ;
I may wrong (I got no such testing env) but devs_compare() function along with index_pci_devices() can lead us to such (example) situation:
igt_devs.all contains devices with syspaths and subsystem pci:
/sys/devices/pci0000:00/0000:00:04.0 -> vendor 8086, device 1234 pci_index == 0
/sys/devices/pci0000:00/0000:00:05.0 -> vendor 8086, device 4321 pci_index == 1
/sys/devices/pci0000:00/0000:00:06.0 -> vendor 8086, device 1234 pci_index == 2
If would try filter: pci=vendor=8086,device=1234,card=1 I would expect to select (second card [index == 1]) from filtered devices which match device 1234.
--
Zbigniew
Quoted 6 lines
lib/igt_device_scan.c +0
-0}DBG ("Filter pci filtered size: %d\n" ,igt_list_length (&igt_devs.filtered));Signature · 1 line
2.25.1
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] [RFC i-g-t 3/5] lib/igt_device_scan: Remember PCI card index after scanning
Quoted 89 lines · Zbigniew Kempczyński
Quoted 74 lines · Tvrtko Ursulin
From: Tvrtko Ursulin <[email protected]>
After devices are sorted post scanning, assing a card index to each so it can be easily accessed if PCI filter for a card needs to be printed out.
Signed-off-by Tvrtko Ursulin <[email protected]>Cc Petri Latvala <[email protected]>Cc Zbigniew Kempczyński <[email protected]>--- lib/igt_device_scan.c | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-)lib/igt_device_scan.c +29
-4@@ -166,6 +166,7 @@ struct igt_device {char *vendor;char *device;char *pci_slot_name; +int pci_index;struct igt_list_head link; };@@ -601,6 +602,33 @@ static void sort_all_devices(void)free (devs); } +static void index_pci_devices (void ) +{ +struct igt_device *dev; + +igt_list_for_each_entry (dev, &igt_devs.all, link) { +struct igt_device *dev2; +int index =0 ; + +if (!is_pci_subsystem (dev)) +continue ; + +igt_list_for_each_entry (dev2, &igt_devs.all, link) { +if (!is_pci_subsystem (dev2)) +continue ; + +if (dev2 == dev) +break ; + +if (!strcasecmp (dev->vendor, dev2->vendor) && + !strcasecmp (dev->device, dev2->device)) + index++; + } + + dev->pci_index = index; + } +} +/* Core scanning function. * * All scanned devices are kept inside igt_devs.all pointer array. @@ -657,6 +685,7 @@ static void scan_drm_devices(void)udev_unref (udev);sort_all_devices (); +index_pci_devices ();igt_list_for_each_entry (dev, &igt_devs.all, link) {struct igt_device *dev_dup =duplicate_device (dev);@@ -1105,13 +1134,13 @@ static struct igt_list_head *filter_pci(const struct filter_class *fcls,if (filter->data.device &&strcasecmp (filter->data.device, dev->device))continue ; -/* We get n-th card */ -if (!card) { -struct igt_device *dup =duplicate_device (dev); -igt_list_add_tail (&dup->link, &igt_devs.filtered);lib/igt_device_scan.c static struct igt_list_head *filter_pci(const struct filter_class *fcls, · line 1143
Quoted 10 lines
lib/igt_device_scan.c +7
-3-break ; - } - card--; +/* Skip if 'card' doesn't match */ +if (card != dev->pci_index) +continue ; + + dev =duplicate_device (dev); +igt_list_add_tail (&dev->link, &igt_devs.filtered); +break ;I may wrong (I got no such testing env) but
devs_compare()function along withindex_pci_devices()can lead us to such (example) situation:
Quoted 8 lines
igt_devs.all contains devices with syspaths and subsystem pci:
/sys/devices/pci0000:00/0000:00:04.0 -> vendor 8086, device 1234pci_index== 0
/sys/devices/pci0000:00/0000:00:05.0 -> vendor 8086, device 4321pci_index== 1
/sys/devices/pci0000:00/0000:00:06.0 -> vendor 8086, device 1234pci_index== 2If would try filter: pci=vendor=8086,device=1234,card=1 I would expect to select (second card [index == 1]) from filtered devices which match device 1234.
It is supposed to be like you say, each pci_index being in the namespace of equal vendor & device only.
Like from a dual GPU system:
$ tools/lsgpu --pci card1 8086:4905 pci:vendor=8086,device=4905,card=0 └─renderD129 card0 8086:3E98 pci:vendor=8086,device=3E98,card=0 └─renderD128
Or two identical GPUs (mocked by manual addition of an almost duplicate entry to list of scanned devices:
$ tools/lsgpu --pci card0 8086:193B pci:vendor=8086,device=193B,card=0 ├─renderD128 └─renderD128 card0x 8086:193B pci:vendor=8086,device=193B,card=1 ├─renderD128 └─renderD128
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] [RFC i-g-t 3/5] lib/igt_device_scan: Remember PCI card index after scanning
On Mon, Nov 16, 2020 at 03:09:43PM +0000, Tvrtko Ursulin wrote:
<cut>
Quoted 62 lines
Quoted 31 lines
Quoted 17 lines
lib/igt_device_scan.c +2
-4+/* Core scanning function. * * All scanned devices are kept inside igt_devs.all pointer array. @@ -657,6 +685,7 @@ static void scan_drm_devices(void)udev_unref (udev);sort_all_devices (); +index_pci_devices ();igt_list_for_each_entry (dev, &igt_devs.all, link) {struct igt_device *dev_dup =duplicate_device (dev);@@ -1105,13 +1134,13 @@ static struct igt_list_head *filter_pci(const struct filter_class *fcls,if (filter->data.device &&strcasecmp (filter->data.device, dev->device))continue ; -/* We get n-th card */ -if (!card) { -struct igt_device *dup =duplicate_device (dev); -igt_list_add_tail (&dup->link, &igt_devs.filtered);lib/igt_device_scan.c static struct igt_list_head *filter_pci(const struct filter_class *fcls, · line 1142
Quoted 10 lines
lib/igt_device_scan.c +7
-3-break ; - } - card--; +/* Skip if 'card' doesn't match */ +if (card != dev->pci_index) +continue ; + + dev =duplicate_device (dev); +igt_list_add_tail (&dev->link, &igt_devs.filtered); +break ;I may wrong (I got no such testing env) but
devs_compare()function along withindex_pci_devices()can lead us to such (example) situation:Quoted 8 lines
igt_devs.all contains devices with syspaths and subsystem pci:
/sys/devices/pci0000:00/0000:00:04.0 -> vendor 8086, device 1234pci_index== 0
/sys/devices/pci0000:00/0000:00:05.0 -> vendor 8086, device 4321pci_index== 1
/sys/devices/pci0000:00/0000:00:06.0 -> vendor 8086, device 1234pci_index== 2If would try filter: pci=vendor=8086,device=1234,card=1 I would expect to select (second card [index == 1]) from filtered devices which match device 1234.
It is supposed to be like you say, each
pci_indexbeing in the namespace of equal vendor & device only.Like from a dual GPU system:
$ tools/lsgpu --pci card1 8086:4905 pci:vendor=8086,device=4905,card=0 └─renderD129 card0 8086:3E98 pci:vendor=8086,device=3E98,card=0 └─renderD128Or two identical GPUs (mocked by manual addition of an almost duplicate entry to list of scanned devices:
$ tools/lsgpu --pci card0 8086:193B pci:vendor=8086,device=193B,card=0 ├─renderD128 └─renderD128 card0x 8086:193B pci:vendor=8086,device=193B,card=1 ├─renderD128 └─renderD128
Quoted 3 lines
Regards,
Tvrtko
I made a mistake in above listing, it should be:
/sys/devices/pci0000:00/0000:00:04.0 -> vendor 8086, device 1234 pci_index == 0
/sys/devices/pci0000:00/0000:00:05.0 -> vendor 8086, device 4321 pci_index == 0
/sys/devices/pci0000:00/0000:00:06.0 -> vendor 8086, device 1234 pci_index == 1
What if I would go over all Intel cards using pci filter:
pci:vendor=8086,card=N where n is 0... until there's no Intel pci device.
This way we loose possibility to iterate over all pci devices imo.
--
Zbigniew
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] [RFC i-g-t 3/5] lib/igt_device_scan: Remember PCI card index after scanning
Quoted 75 lines · Zbigniew Kempczyński
On Mon, Nov 16, 2020 at 03:09:43PM +0000, Tvrtko Ursulin wrote:
<cut>
Quoted 62 lines
Quoted 31 lines
Quoted 17 lines
lib/igt_device_scan.c +2
-4+/* Core scanning function. * * All scanned devices are kept inside igt_devs.all pointer array. @@ -657,6 +685,7 @@ static void scan_drm_devices(void)udev_unref (udev);sort_all_devices (); +index_pci_devices ();igt_list_for_each_entry (dev, &igt_devs.all, link) {struct igt_device *dev_dup =duplicate_device (dev);@@ -1105,13 +1134,13 @@ static struct igt_list_head *filter_pci(const struct filter_class *fcls,if (filter->data.device &&strcasecmp (filter->data.device, dev->device))continue ; -/* We get n-th card */ -if (!card) { -struct igt_device *dup =duplicate_device (dev); -igt_list_add_tail (&dup->link, &igt_devs.filtered);lib/igt_device_scan.c static struct igt_list_head *filter_pci(const struct filter_class *fcls, · line 1142
Quoted 10 lines
lib/igt_device_scan.c +7
-3-break ; - } - card--; +/* Skip if 'card' doesn't match */ +if (card != dev->pci_index) +continue ; + + dev =duplicate_device (dev); +igt_list_add_tail (&dev->link, &igt_devs.filtered); +break ;I may wrong (I got no such testing env) but
devs_compare()function along withindex_pci_devices()can lead us to such (example) situation:Quoted 8 lines
igt_devs.all contains devices with syspaths and subsystem pci:
/sys/devices/pci0000:00/0000:00:04.0 -> vendor 8086, device 1234pci_index== 0
/sys/devices/pci0000:00/0000:00:05.0 -> vendor 8086, device 4321pci_index== 1
/sys/devices/pci0000:00/0000:00:06.0 -> vendor 8086, device 1234pci_index== 2If would try filter: pci=vendor=8086,device=1234,card=1 I would expect to select (second card [index == 1]) from filtered devices which match device 1234.
It is supposed to be like you say, each
pci_indexbeing in the namespace of equal vendor & device only.Like from a dual GPU system:
$ tools/lsgpu --pci card1 8086:4905 pci:vendor=8086,device=4905,card=0 └─renderD129 card0 8086:3E98 pci:vendor=8086,device=3E98,card=0 └─renderD128Or two identical GPUs (mocked by manual addition of an almost duplicate entry to list of scanned devices:
$ tools/lsgpu --pci card0 8086:193B pci:vendor=8086,device=193B,card=0 ├─renderD128 └─renderD128 card0x 8086:193B pci:vendor=8086,device=193B,card=1 ├─renderD128 └─renderD128Quoted 3 lines
Regards,
Tvrtko
I made a mistake in above listing, it should be:
/sys/devices/pci0000:00/0000:00:04.0 -> vendor 8086, device 1234pci_index== 0
/sys/devices/pci0000:00/0000:00:05.0 -> vendor 8086, device 4321pci_index== 0
/sys/devices/pci0000:00/0000:00:06.0 -> vendor 8086, device 1234pci_index== 1
Quoted 5 lines
What if I would go over all Intel cards using pci filter:
pci:vendor=8086,card=N where n is 0... until there's no Intel pci device.
This way we loose possibility to iterate over all pci devices imo.
Oh I get it know, I misunderstood how this all works. So the card argument to the pci filter is nothing about the actual PCI card, but just "match number" - match with this filter and return card=N Nth match.
So I should leave the code in filter_pci as is.
Will my new filters work like that. I think so. Ok, will update.
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
RFC 4/5 lsgpu: Add filter type print-out selection
In reply to Tvrtko UrsulinFrom: Tvrtko Ursulin <[email protected]>
In the previous patch we switched the lsgpu output to a short and user friendly format but some users will need a shorthand for getting other types of device selection filters than the defaut drm.
Add some command line switches to enable this:
$ lsgpu card0 8086:193B drm:/dev/dri/card0 └─renderD128 drm:/dev/dri/renderD128
$ lsgpu --sysfs card0 8086:193B sys:/sys/devices/pci0000:00/0000:00:02.0/drm/card0 └─renderD128 sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
$ lsgpu --pci card0 8086:193B pci:vendor=8086,device=193B,card=0 └─renderD128
v2
* Fix pci filter format.
--- lib/igt_device_scan.c | 83 ++++++++++++++++++++++++++++++++----------- lib/igt_device_scan.h | 15 ++++++-- tools/intel_gpu_top.c | 6 +++- tools/lsgpu.c | 32 +++++++++++++---- 4 files changed, 106 insertions(+), 30 deletions(-)
lib/igt_device_scan.c +63 -20
@@ -777,7 +777,9 @@ static bool __check_empty(struct igt_list_head *view)return false; } -static void igt_devs_print_simple (struct igt_list_head *view) +static void +igt_devs_print_simple (struct igt_list_head *view, +const struct igt_devices_print_format *fmt) {struct igt_device *dev;
@@ -821,7 +823,38 @@ __find_pci(struct igt_list_head *view, const char *drm)return NULL ; } -static void igt_devs_print_user (struct igt_list_head *view) +static void __print_filter (char *buf,int len, +const struct igt_devices_print_format *fmt, +struct igt_device *dev, +bool render) +{ +int ret; + +switch (fmt->option) { +case IGT_PRINT_DRM : + ret =snprintf (buf, len,"drm:%s" , + render ? dev->drm_render : dev->drm_card); +igt_assert (ret < len); +break ; +case IGT_PRINT_SYSFS : + ret =snprintf (buf, len,"sys:%s" , dev->syspath); +igt_assert (ret < len); +break ; +case IGT_PRINT_PCI : +if (!render) { + ret =snprintf (buf, len, +"pci:vendor=%s,device=%s,card=%d" , + dev->vendor, dev->device, + dev->pci_index); +igt_assert (ret < len); + } +break ; + }; +} + +static void +igt_devs_print_user (struct igt_list_head *view, +const struct igt_devices_print_format *fmt) {struct igt_device *dev;
@@ -834,7 +867,6 @@ static void igt_devs_print_user(struct igt_list_head *view)struct igt_device *dev2;char filter[256 ];char *drm_name; -int ret;if (!is_drm_subsystem (dev))continue ;
@@ -845,16 +877,21 @@ static void igt_devs_print_user(struct igt_list_head *view)if (!drm_name || !*++drm_name)continue ; - ret =snprintf (filter,sizeof (filter),"drm:%s" , dev->drm_card); -igt_assert (ret <sizeof (filter)); - pci_dev =__find_pci (view, dev->drm_card); -if (pci_dev) + +if (fmt->option ==IGT_PRINT_PCI && !pci_dev) +continue ; + +if (pci_dev) { +__print_filter (filter,sizeof (filter), fmt, pci_dev, + false);printf ("%-24s%4s:%4s %s\n" , drm_name, pci_dev->vendor, pci_dev->device, filter); -else + }else { +__print_filter (filter,sizeof (filter), fmt, dev, false);printf ("%-24s %s\n" , drm_name, filter); + } num_children =0 ;igt_list_for_each_entry (dev2, view, link) {
@@ -877,13 +914,15 @@ static void igt_devs_print_user(struct igt_list_head *view)if (!drm_name || !*++drm_name)continue ; - ret =snprintf (filter,sizeof (filter),"drm:%s" , - dev2->drm_render); -igt_assert (ret <sizeof (filter)); - -printf ("%s%-22s %s\n" , - (++i == num_children) ?"└─" :"├─" , - drm_name, filter); +printf ("%s%-22s" , + (++i == num_children) ?"└─" :"├─" , drm_name); +if (fmt->option !=IGT_PRINT_PCI ) { +__print_filter (filter,sizeof (filter), fmt, + dev2, true); +printf (" %s\n" , filter); + }else { +printf ("\n" ); + } } } }
@@ -908,7 +947,10 @@ static void print_ht(GHashTable *ht)g_list_free (keys); } -static void igt_devs_print_detail (struct igt_list_head *view) +static void +igt_devs_print_detail (struct igt_list_head *view, +const struct igt_devices_print_format *fmt) + {struct igt_device *dev;
@@ -932,7 +974,8 @@ static void igt_devs_print_detail(struct igt_list_head *view) }static struct print_func { -void (*prn)(struct igt_list_head *view); +void (*prn)(struct igt_list_head *view, +const struct igt_devices_print_format *); } print_functions[] = { [IGT_PRINT_SIMPLE ] = { .prn = igt_devs_print_simple }, [IGT_PRINT_DETAIL ] = { .prn = igt_devs_print_detail },
@@ -941,15 +984,15 @@ static struct print_func {/** * igt_devices_print -* @printtype: IGT_PRINT_SIMPLE or IGT_PRINT_DETAIL +* @fmt: Print format as specified by struct igt_devices_print_format * * Function can be used by external tool to print device array in simple * or detailed form. This function is added here to avoid exposing * internal implementation data structures. */ -void igt_devices_print (enum igt_devices_print_type printtype) +void igt_devices_print (const struct igt_devices_print_format *fmt) { - print_functions[printtype].prn (&igt_devs.filtered); + print_functions[fmt->type].prn (&igt_devs.filtered, fmt); }/**
lib/igt_device_scan.h +13 -2
@@ -35,11 +35,22 @@#include <unistd.h> enum igt_devices_print_type { -IGT_PRINT_SIMPLE , +IGT_PRINT_SIMPLE =0 ,IGT_PRINT_DETAIL ,IGT_PRINT_USER ,/* End user friendly. */ }; +enum igt_devices_print_option { +IGT_PRINT_DRM =0 , +IGT_PRINT_SYSFS , +IGT_PRINT_PCI , +}; + +struct igt_devices_print_format { +enum igt_devices_print_type type; +enum igt_devices_print_option option; +}; +#define INTEGRATED_I915_GPU_PCI_ID "0000:00:02.0"#define PCI_SLOT_NAME_SIZE 12struct igt_device_card {
@@ -51,7 +62,7 @@ struct igt_device_card {void igt_devices_scan (bool force); -void igt_devices_print (enum igt_devices_print_type printtype); +void igt_devices_print (const struct igt_devices_print_format *fmt);void igt_devices_print_vendors (void );void igt_device_print_filter_types (void );
tools/intel_gpu_top.c +5 -1
@@ -1387,7 +1387,11 @@ int main(int argc, char **argv)igt_devices_scan (false);if (list_device) { -igt_devices_print (IGT_PRINT_USER ); +struct igt_devices_print_format fmt = { + .type =IGT_PRINT_USER + }; + +igt_devices_print (&fmt); goto exit; }
tools/lsgpu.c +25 -7
@@ -91,7 +91,11 @@ static const char *usage_str =" -v, --list-vendors List recognized vendors\n" " -l, --list-filter-types List registered device filters types\n" " -d, --device filter Device filter, can be given multiple times\n" -" -h, --help Show this help message and exit\n" ; +" -h, --help Show this help message and exit\n" +"\nOptions valid for default print out mode only:\n" +" --drm Show DRM filters (default) for each device\n" +" --sysfs Show sysfs filters for each device\n" +" --pci Show PCI filters for each device\n" ;static void test_device_open (struct igt_device_card *card) {
@@ -153,6 +157,9 @@ static char *get_device_from_rc(void)int main (int argc,char *argv[]) {static struct option long_options[] = { + {"drm" , no_argument,NULL ,0 }, + {"sysfs" , no_argument,NULL ,1 }, + {"pci" , no_argument,NULL ,2 }, {"print-simple" , no_argument,NULL ,OPT_PRINT_SIMPLE }, {"print-detail" , no_argument,NULL ,OPT_PRINT_DETAIL }, {"list-vendors" , no_argument,NULL ,OPT_LIST_VENDORS },
@@ -163,17 +170,19 @@ int main(int argc, char *argv[]) };int c, index =0 ;char *env_device =NULL , *opt_device =NULL , *rc_device =NULL ; -enum igt_devices_print_type printtype =IGT_PRINT_USER ; +struct igt_devices_print_format fmt = { + .type =IGT_PRINT_USER , + };while ((c =getopt_long (argc, argv,"spvld:h" , long_options, &index)) !=-1 ) {switch (c) {case OPT_PRINT_SIMPLE : - printtype =IGT_PRINT_SIMPLE ; + fmt.type =IGT_PRINT_SIMPLE ;break ;case OPT_PRINT_DETAIL : - printtype =IGT_PRINT_DETAIL ; + fmt.type =IGT_PRINT_DETAIL ;break ;case OPT_LIST_VENDORS : g_show_vendors = true;
@@ -187,6 +196,15 @@ int main(int argc, char *argv[])case OPT_HELP : g_help = true;break ; +case 0 : + fmt.option =IGT_PRINT_DRM ; +break ; +case 1 : + fmt.option =IGT_PRINT_SYSFS ; +break ; +case 2 : + fmt.option =IGT_PRINT_PCI ; +break ; } }
@@ -239,14 +257,14 @@ int main(int argc, char *argv[])printf ("Device detail:\n" );print_card (&card);test_device_open (&card); -if (printtype ==IGT_PRINT_DETAIL ) { +if (fmt.type ==IGT_PRINT_DETAIL ) {printf ("\n" ); -igt_devices_print (printtype); +igt_devices_print (&fmt); }printf ("-------------------------------------------\n" ); }else { -igt_devices_print (printtype); +igt_devices_print (&fmt); }free (rc_device);
Signature · 6 lines
2.25.1 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
RFC 5/5 intel_gpu_top: Default GPU list to PCI mode
In reply to Tvrtko UrsulinFrom: Tvrtko Ursulin <[email protected]>
It is more obvious for the user to only shows filters for DRM master nodes since those are the ones that intel_gpu_top monitors.
v2:
* Filter prefix needs to be sys: when listing PCI devices.
--- tools/intel_gpu_top.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
tools/intel_gpu_top.c +2 -1
@@ -1388,7 +1388,8 @@ int main(int argc, char **argv)if (list_device) {struct igt_devices_print_format fmt = { - .type =IGT_PRINT_USER + .type =IGT_PRINT_USER , + .option =IGT_PRINT_PCI , };igt_devices_print (&fmt);
Signature · 6 lines
2.25.1 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✓ Fi.CI.BAT: success for User friendly lsgpu/intel_gpu_top device listing
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: User friendly lsgpu/intel_gpu_top device listing
URL : https://patchwork.freedesktop.org/series/83820/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9326 -> IGTPW_5168
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/index.html
Known issues
------------
Here are the changes found in IGTPW_5168 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_module_load@reload:
- fi-icl-u2: [PASS][1] -> [DMESG-WARN][2] ([i915#1982]) +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/fi-icl-u2/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/fi-icl-u2/igt@[email protected]
- fi-kbl-soraka: [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/fi-kbl-soraka/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/fi-kbl-soraka/igt@[email protected]
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-glk-dsi: [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/fi-glk-dsi/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/fi-glk-dsi/igt@[email protected]
* igt@kms_flip@basic-flip-vs-dpms@c-hdmi-a1:
- fi-cml-s: [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/fi-cml-s/igt@kms_flip@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/fi-cml-s/igt@kms_flip@[email protected]
#### Possible fixes ####
* igt@kms_chamelium@dp-crc-fast:
- fi-cml-u2: [FAIL][9] ([i915#1161] / [i915#262]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/fi-cml-u2/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/fi-cml-u2/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#1161]: https://gitlab.freedesktop.org/drm/intel/issues/1161
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262
Participating hosts (46 -> 40)
------------------------------
Missing (6): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-tgl-y fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5850 -> IGTPW_5168
CI-20190529: 20190529
CI_DRM_9326: 3048c2a1dcf02422e89930148ffad9e91d690499 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5168: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/index.html
IGT_5850: 9748a4a0f93d108955d374a866e60cb962da9b5d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✗ Fi.CI.IGT: failure for User friendly lsgpu/intel_gpu_top device listing
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: User friendly lsgpu/intel_gpu_top device listing
URL : https://patchwork.freedesktop.org/series/83820/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_9326_full -> IGTPW_5168_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_5168_full absolutely need to be verified manually.
If you think the reported changes have nothing to do with the changes introduced in IGTPW_5168_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_5168_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_exec_whisper@basic-queues-forked-all:
- shard-iclb: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb4/igt@[email protected]
#### Warnings ####
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [WARN][2] ([i915#1515]) -> [WARN][3]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb4/igt@[email protected]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb1/igt@[email protected]
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-tglb: [WARN][4] ([i915#2681]) -> [FAIL][5]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb3/igt@[email protected]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb1/igt@[email protected]
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses. They do not affect the overall result.
* {igt@gem_mmap_gtt@hang-busy}:
- shard-kbl: [PASS][6] -> [INCOMPLETE][7]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl7/igt@[email protected]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl6/igt@[email protected]
Known issues
------------
Here are the changes found in IGTPW_5168_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_endless@dispatch@rcs0:
- shard-iclb: [PASS][8] -> [INCOMPLETE][9] ([i915#2502])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb6/igt@gem_exec_endless@[email protected]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb2/igt@gem_exec_endless@[email protected]
* igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-glk: [PASS][10] -> [FAIL][11] ([i915#2389])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk7/igt@gem_exec_reloc@[email protected]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk2/igt@gem_exec_reloc@[email protected]
* igt@gem_exec_whisper@basic-forked-all:
- shard-glk: [PASS][12] -> [DMESG-WARN][13] ([i915#118] / [i915#95])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk9/igt@[email protected]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk9/igt@[email protected]
* igt@i915_module_load@reload:
- shard-hsw: [PASS][14] -> [DMESG-WARN][15] ([i915#1982])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw1/igt@[email protected]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw6/igt@[email protected]
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [PASS][16] -> [FAIL][17] ([i915#454])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb7/igt@[email protected]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb6/igt@[email protected]
* igt@i915_pm_rpm@gem-idle:
- shard-kbl: [PASS][18] -> [SKIP][19] ([fdo#109271]) +1 similar issue
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl2/igt@[email protected]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl1/igt@[email protected]
- shard-glk: [PASS][20] -> [SKIP][21] ([fdo#109271]) +1 similar issue
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk9/igt@[email protected]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk9/igt@[email protected]
* igt@kms_big_fb@yf-tiled-32bpp-rotate-90:
- shard-kbl: [PASS][22] -> [DMESG-WARN][23] ([i915#1982])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl3/igt@[email protected]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl1/igt@[email protected]
* igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
- shard-hsw: [PASS][24] -> [FAIL][25] ([i915#2370])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw2/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw7/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
- shard-tglb: [PASS][26] -> [FAIL][27] ([i915#2346])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb8/igt@[email protected]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb3/igt@[email protected]
* igt@kms_draw_crc@draw-method-xrgb8888-render-untiled:
- shard-glk: [PASS][28] -> [DMESG-WARN][29] ([i915#1982]) +5 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk1/igt@[email protected]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk1/igt@[email protected]
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1:
- shard-glk: [PASS][30] -> [FAIL][31] ([i915#79])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk2/igt@kms_flip@[email protected]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk3/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-expired-vblank@c-edp1:
- shard-iclb: [PASS][32] -> [FAIL][33] ([i915#79])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb1/igt@kms_flip@[email protected]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb5/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
- shard-hsw: [PASS][34] -> [INCOMPLETE][35] ([i915#2055])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw5/igt@kms_flip@[email protected]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw2/igt@kms_flip@[email protected]
* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-iclb: [PASS][36] -> [DMESG-WARN][37] ([i915#1982])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb7/igt@[email protected]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb5/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-farfromfence:
- shard-tglb: [PASS][38] -> [DMESG-WARN][39] ([i915#1982]) +2 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb1/igt@[email protected]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb1/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-suspend:
- shard-iclb: [PASS][40] -> [INCOMPLETE][41] ([i915#1185] / [i915#123])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb1/igt@[email protected]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb4/igt@[email protected]
* igt@kms_universal_plane@universal-plane-gen9-features-pipe-b:
- shard-apl: [PASS][42] -> [DMESG-WARN][43] ([i915#1635] / [i915#1982]) +1 similar issue
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl6/igt@[email protected]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-apl7/igt@[email protected]
* igt@kms_vblank@pipe-b-ts-continuation-dpms-rpm:
- shard-apl: [PASS][44] -> [SKIP][45] ([fdo#109271] / [i915#1635]) +1 similar issue
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl1/igt@[email protected]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-apl6/igt@[email protected]
- shard-iclb: [PASS][46] -> [SKIP][47] ([fdo#109278])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb5/igt@[email protected]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb5/igt@[email protected]
- shard-hsw: [PASS][48] -> [SKIP][49] ([fdo#109271]) +1 similar issue
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw8/igt@[email protected]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw1/igt@[email protected]
* igt@perf@gen12-oa-tlb-invalidate:
- shard-tglb: [PASS][50] -> [SKIP][51] ([i915#1354])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb7/igt@[email protected]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb7/igt@[email protected]
#### Possible fixes ####
* igt@gem_exec_whisper@basic-queues-priority:
- shard-glk: [DMESG-WARN][52] ([i915#118] / [i915#95]) -> [PASS][53]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk1/igt@[email protected]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk7/igt@[email protected]
* igt@gem_softpin@noreloc-s3:
- shard-iclb: [INCOMPLETE][54] ([i915#1373]) -> [PASS][55]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb8/igt@[email protected]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb1/igt@[email protected]
- shard-apl: [INCOMPLETE][56] ([i915#1635] / [i915#2635]) -> [PASS][57] +1 similar issue
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl4/igt@[email protected]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-apl3/igt@[email protected]
- shard-glk: [INCOMPLETE][58] ([i915#2199] / [i915#2635]) -> [PASS][59]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk8/igt@[email protected]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk8/igt@[email protected]
- shard-hsw: [INCOMPLETE][60] ([i915#2637]) -> [PASS][61]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw5/igt@[email protected]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw7/igt@[email protected]
- shard-kbl: [INCOMPLETE][62] -> [PASS][63]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl6/igt@[email protected]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl4/igt@[email protected]
* igt@i915_module_load@reload:
- shard-iclb: [DMESG-WARN][64] ([i915#1982]) -> [PASS][65]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb2/igt@[email protected]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb6/igt@[email protected]
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][66] ([i915#1515]) -> [PASS][67]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb4/igt@[email protected]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb2/igt@[email protected]
* igt@i915_pm_rpm@i2c:
- shard-glk: [DMESG-WARN][68] ([i915#1982]) -> [PASS][69] +8 similar issues
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk9/igt@[email protected]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk5/igt@[email protected]
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
- shard-hsw: [FAIL][70] ([i915#96]) -> [PASS][71]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw8/igt@[email protected]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw6/igt@[email protected]
* igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
- shard-kbl: [DMESG-WARN][72] ([i915#1982]) -> [PASS][73] +2 similar issues
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl1/igt@[email protected]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl1/igt@[email protected]
* igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-ytiled:
- shard-apl: [DMESG-WARN][74] ([i915#1635] / [i915#1982]) -> [PASS][75] +6 similar issues
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl6/igt@[email protected]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-apl7/igt@[email protected]
* igt@kms_draw_crc@draw-method-xrgb8888-blt-untiled:
- shard-snb: [FAIL][76] ([i915#54]) -> [PASS][77]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-snb5/igt@[email protected]
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-snb5/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite:
- shard-tglb: [DMESG-WARN][78] ([i915#1982]) -> [PASS][79] +2 similar issues
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-hsw: [INCOMPLETE][80] ([i915#2055] / [i915#2637]) -> [PASS][81]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw2/igt@[email protected]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw6/igt@[email protected]
- shard-kbl: [INCOMPLETE][82] ([i915#155]) -> [PASS][83]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl6/igt@[email protected]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl3/igt@[email protected]
- shard-glk: [INCOMPLETE][84] ([i915#2635]) -> [PASS][85]
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk8/igt@[email protected]
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk1/igt@[email protected]
- shard-iclb: [INCOMPLETE][86] ([i915#1185]) -> [PASS][87]
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb5/igt@[email protected]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb3/igt@[email protected]
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [SKIP][88] ([fdo#109441]) -> [PASS][89]
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb5/igt@kms_psr@psr2_primary_mmap_cpu.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
* igt@perf@polling-parameterized:
- shard-hsw: [FAIL][90] ([i915#1542]) -> [PASS][91]
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-hsw6/igt@[email protected]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-hsw8/igt@[email protected]
#### Warnings ####
* igt@gem_softpin@noreloc-s3:
- shard-tglb: [DMESG-WARN][92] ([i915#1436]) -> [DMESG-WARN][93] ([i915#2411])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb5/igt@[email protected]
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb8/igt@[email protected]
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [DMESG-WARN][94] ([i915#1226]) -> [SKIP][95] ([fdo#109349])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb2/igt@[email protected]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb8/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-suspend:
- shard-tglb: [DMESG-WARN][96] ([i915#2411]) -> [INCOMPLETE][97] ([i915#1436] / [i915#456])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb6/igt@[email protected]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb6/igt@[email protected]
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-tglb: [INCOMPLETE][98] ([i915#1436] / [i915#456]) -> [DMESG-WARN][99] ([i915#2411])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb6/igt@[email protected]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb5/igt@[email protected]
* igt@kms_vblank@pipe-b-ts-continuation-dpms-rpm:
- shard-tglb: [DMESG-WARN][100] ([i915#2411]) -> [SKIP][101] ([i915#2648])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb2/igt@[email protected]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb6/igt@[email protected]
* igt@perf@gen12-oa-tlb-invalidate:
- shard-kbl: [SKIP][102] ([fdo#109271]) -> [SKIP][103] ([fdo#109271] / [i915#1354])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl3/igt@[email protected]
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl6/igt@[email protected]
- shard-glk: [SKIP][104] ([fdo#109271]) -> [SKIP][105] ([fdo#109271] / [i915#1354])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk1/igt@[email protected]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk5/igt@[email protected]
- shard-apl: [SKIP][106] ([fdo#109271] / [i915#1635]) -> [SKIP][107] ([fdo#109271] / [i915#1354] / [i915#1635])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl4/igt@[email protected]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-apl1/igt@[email protected]
- shard-iclb: [SKIP][108] ([fdo#109289]) -> [SKIP][109] ([i915#1354])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb7/igt@[email protected]
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb8/igt@[email protected]
* igt@runner@aborted:
- shard-kbl: [FAIL][110] ([i915#1611] / [i915#2295] / [i915#2439]) -> [FAIL][111] ([i915#1611] / [i915#2295] / [i915#2439] / [i915#483])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-kbl7/igt@[email protected]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-kbl2/igt@[email protected]
- shard-iclb: ([FAIL][112], [FAIL][113], [FAIL][114]) ([i915#1814] / [i915#2295] / [i915#2439] / [i915#483]) -> ([FAIL][115], [FAIL][116]) ([i915#1814] / [i915#2295] / [i915#2439])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb5/igt@[email protected]
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb6/igt@[email protected]
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-iclb8/igt@[email protected]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb4/igt@[email protected]
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-iclb4/igt@[email protected]
- shard-apl: ([FAIL][117], [FAIL][118], [FAIL][119]) ([fdo#109271] / [i915#1611] / [i915#1635] / [i915#1814] / [i915#2295] / [i915#2439]) -> [FAIL][120] ([i915#1611] / [i915#1635] / [i915#2295] / [i915#2439])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl4/igt@[email protected]
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl2/igt@[email protected]
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-apl2/igt@[email protected]
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-apl4/igt@[email protected]
- shard-glk: ([FAIL][121], [FAIL][122], [FAIL][123]) ([i915#1611] / [i915#1814] / [i915#2295] / [i915#2439] / [i915#86] / [k.org#202321]) -> [FAIL][124] ([i915#1611] / [i915#2295] / [i915#2439] / [i915#483] / [k.org#202321])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk8/igt@[email protected]
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk8/igt@[email protected]
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-glk1/igt@[email protected]
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-glk3/igt@[email protected]
- shard-tglb: ([FAIL][125], [FAIL][126], [FAIL][127]) ([i915#1602] / [i915#2295] / [i915#2439] / [i915#456]) -> ([FAIL][128], [FAIL][129]) ([i915#1814] / [i915#2295] / [i915#2439] / [i915#456])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb6/igt@[email protected]
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb3/igt@[email protected]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9326/shard-tglb5/igt@[email protected]
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb6/igt@[email protected]
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/shard-tglb6/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
[i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
[i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123
[i915#1354]: https://gitlab.freedesktop.org/drm/intel/issues/1354
[i915#1373]: https://gitlab.freedesktop.org/drm/intel/issues/1373
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1515]: https://gitlab.freedesktop.org/drm/intel/issues/1515
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1611]: https://gitlab.freedesktop.org/drm/intel/issues/1611
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
[i915#2199]: https://gitlab.freedesktop.org/drm/intel/issues/2199
[i915#2295]: https://gitlab.freedesktop.org/drm/intel/issues/2295
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2370]: https://gitlab.freedesktop.org/drm/intel/issues/2370
[i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2439]: https://gitlab.freedesktop.org/drm/intel/issues/2439
[i915#2502]: https://gitlab.freedesktop.org/drm/intel/issues/2502
[i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
[i915#2635]: https://gitlab.freedesktop.org/drm/intel/issues/2635
[i915#2637]: https://gitlab.freedesktop.org/drm/intel/issues/2637
[i915#2648]: https://gitlab.freedesktop.org/drm/intel/issues/2648
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#86]: https://gitlab.freedesktop.org/drm/intel/issues/86
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
[i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321
Participating hosts (11 -> 8)
------------------------------
Missing (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5850 -> IGTPW_5168
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_9326: 3048c2a1dcf02422e89930148ffad9e91d690499 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5168: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/index.html
IGT_5850: 9748a4a0f93d108955d374a866e60cb962da9b5d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5168/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoted 17 lines · Tvrtko Ursulin
From: Tvrtko Ursulin <[email protected]>
Please see individual path commit messages for details, but essentially I implemented this:
$ sudo tools/lsgpu card1 8086:4905 drm:/dev/dri/card1 └─renderD129 drm:/dev/dri/renderD129 card0 8086:3E98 drm:/dev/dri/card0 └─renderD128 drm:/dev/dri/renderD128$ sudo tools/lsgpu --pci card1 8086:4905 pci:vendor=8086,device=4905,card=0 └─renderD129 card0 8086:3E98 pci:vendor=8086,device=3E98,card=0 └─renderD128
Quoted 8 lines
$ sudo tools/lsgpu --sysfs card1 8086:4905 sys:/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0 └─renderD129 sys:/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/renderD129 card0 8086:3E98 sys:/sys/devices/pci0000:00/0000:00:02.0 └─renderD128 sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128I need to find a machine with two GPUs of the same device id to finish testing this hence still RFC.
I mock tested the PCI card index generating code and it seems to work fine:
$ tools/lsgpu --pci card0 8086:193B pci:vendor=8086,device=193B,card=0 ├─renderD128 └─renderD128 card0x 8086:193B pci:vendor=8086,device=193B,card=1 ├─renderD128 └─renderD128
Regards,
Tvrtko
Quoted 7 lines
Tvrtko Ursulin (5):
intel_gpu_top: User friendly device listing
lsgpu: User friendly device listinglib/igt_device_scan: Remember PCI card index after scanning
lsgpu: Add filter type print-out selection
intel_gpu_top: Default GPU list to PCI mode
Quoted 6 lines
lib/igt_device_scan.c | 205 +++++++++++++++++++++++++++++++++++++----- lib/igt_device_scan.h | 16 +++- tools/intel_gpu_top.c | 8 +- tools/lsgpu.c | 38 ++++++-- 4 files changed, 233 insertions(+), 34 deletions(-)
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev