* [igt-dev] [RFC 0/3] User friendly lsgpu default output
@ 2020-11-09 10:48 ` Tvrtko Ursulin
0 siblings, 0 replies; 27+ messages in thread
From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw)
To: igt-dev; +Cc: Intel-gfx, Tvrtko Ursulin
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
As per individual changelogs end result is:
$ 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:/sys/devices/pci0000:00/0000:00:02.0
└─renderD128
Tvrtko Ursulin (3):
intel_gpu_top: User friendly device listing
lsgpu: User friendly device listing
lsgpu: Add filter type print-out selection
lib/igt_device_scan.c | 154 +++++++++++++++++++++++++++++++++++++-----
lib/igt_device_scan.h | 16 ++++-
tools/intel_gpu_top.c | 7 +-
tools/lsgpu.c | 38 +++++++++--
4 files changed, 188 insertions(+), 27 deletions(-)
--
2.25.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 27+ messages in thread* [Intel-gfx] [RFC 0/3] User friendly lsgpu default output @ 2020-11-09 10:48 ` Tvrtko Ursulin 0 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw) To: igt-dev; +Cc: Intel-gfx From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> As per individual changelogs end result is: $ 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:/sys/devices/pci0000:00/0000:00:02.0 └─renderD128 Tvrtko Ursulin (3): intel_gpu_top: User friendly device listing lsgpu: User friendly device listing lsgpu: Add filter type print-out selection lib/igt_device_scan.c | 154 +++++++++++++++++++++++++++++++++++++----- lib/igt_device_scan.h | 16 ++++- tools/intel_gpu_top.c | 7 +- tools/lsgpu.c | 38 +++++++++-- 4 files changed, 188 insertions(+), 27 deletions(-) -- 2.25.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* [igt-dev] [RFC 1/3] intel_gpu_top: User friendly device listing 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin @ 2020-11-09 10:48 ` Tvrtko Ursulin -1 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw) To: igt-dev; +Cc: Intel-gfx, Petri Latvala, Tvrtko Ursulin From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> 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.0 sys:/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 : 193B New 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. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- 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(-) diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c index c581a31ae55e..e66ccdc25aeb 100644 --- a/lib/igt_device_scan.c +++ b/lib/igt_device_scan.c @@ -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[64]; + 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 }, }; /** diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h index 99daee0c52d6..9822c22cb69c 100644 --- a/lib/igt_device_scan.h +++ b/lib/igt_device_scan.h @@ -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" diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c index 298defa4e6ed..5230472d2af4 100644 --- a/tools/intel_gpu_top.c +++ b/tools/intel_gpu_top.c @@ -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; } -- 2.25.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Intel-gfx] [RFC 1/3] intel_gpu_top: User friendly device listing @ 2020-11-09 10:48 ` Tvrtko Ursulin 0 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw) To: igt-dev; +Cc: Intel-gfx From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> 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.0 sys:/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 : 193B New 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. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- 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(-) diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c index c581a31ae55e..e66ccdc25aeb 100644 --- a/lib/igt_device_scan.c +++ b/lib/igt_device_scan.c @@ -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[64]; + 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 }, }; /** diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h index 99daee0c52d6..9822c22cb69c 100644 --- a/lib/igt_device_scan.h +++ b/lib/igt_device_scan.h @@ -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" diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c index 298defa4e6ed..5230472d2af4 100644 --- a/tools/intel_gpu_top.c +++ b/tools/intel_gpu_top.c @@ -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; } -- 2.25.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [igt-dev] [RFC 1/3] intel_gpu_top: User friendly device listing 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin @ 2020-11-10 11:13 ` Zbigniew Kempczyński -1 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:13 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx, Petri Latvala, Tvrtko Ursulin On Mon, Nov 09, 2020 at 10:48:09AM +0000, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > 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.0 > > sys:/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 : 193B > > New 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. > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > 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(-) > > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c > index c581a31ae55e..e66ccdc25aeb 100644 > --- a/lib/igt_device_scan.c > +++ b/lib/igt_device_scan.c > @@ -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[64]; > + 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 }, > }; > > /** > diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h > index 99daee0c52d6..9822c22cb69c 100644 > --- a/lib/igt_device_scan.h > +++ b/lib/igt_device_scan.h > @@ -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" > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > index 298defa4e6ed..5230472d2af4 100644 > --- a/tools/intel_gpu_top.c > +++ b/tools/intel_gpu_top.c > @@ -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); I would add at least possibility to use simple view to suggest how to use pci/sys filter. With USER print format we see only drm paths. But I won't insist for that, using drm selection is ok for me. Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> -- Zbigniew > goto exit; > } > > -- > 2.25.1 > _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 1/3] intel_gpu_top: User friendly device listing @ 2020-11-10 11:13 ` Zbigniew Kempczyński 0 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:13 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx On Mon, Nov 09, 2020 at 10:48:09AM +0000, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > 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.0 > > sys:/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 : 193B > > New 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. > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > 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(-) > > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c > index c581a31ae55e..e66ccdc25aeb 100644 > --- a/lib/igt_device_scan.c > +++ b/lib/igt_device_scan.c > @@ -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[64]; > + 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 }, > }; > > /** > diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h > index 99daee0c52d6..9822c22cb69c 100644 > --- a/lib/igt_device_scan.h > +++ b/lib/igt_device_scan.h > @@ -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" > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > index 298defa4e6ed..5230472d2af4 100644 > --- a/tools/intel_gpu_top.c > +++ b/tools/intel_gpu_top.c > @@ -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); I would add at least possibility to use simple view to suggest how to use pci/sys filter. With USER print format we see only drm paths. But I won't insist for that, using drm selection is ok for me. Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> -- Zbigniew > goto exit; > } > > -- > 2.25.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [igt-dev] [RFC 1/3] intel_gpu_top: User friendly device listing 2020-11-10 11:13 ` [Intel-gfx] " Zbigniew Kempczyński @ 2020-11-10 11:19 ` Tvrtko Ursulin -1 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-10 11:19 UTC (permalink / raw) To: Zbigniew Kempczyński Cc: igt-dev, Intel-gfx, Petri Latvala, Tvrtko Ursulin On 10/11/2020 11:13, Zbigniew Kempczyński wrote: > On Mon, Nov 09, 2020 at 10:48:09AM +0000, Tvrtko Ursulin wrote: >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> >> 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.0 >> >> sys:/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 : 193B >> >> New 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. >> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Cc: Petri Latvala <petri.latvala@intel.com> >> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> >> --- >> 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(-) >> >> diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c >> index c581a31ae55e..e66ccdc25aeb 100644 >> --- a/lib/igt_device_scan.c >> +++ b/lib/igt_device_scan.c >> @@ -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[64]; >> + 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 }, >> }; >> >> /** >> diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h >> index 99daee0c52d6..9822c22cb69c 100644 >> --- a/lib/igt_device_scan.h >> +++ b/lib/igt_device_scan.h >> @@ -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" >> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c >> index 298defa4e6ed..5230472d2af4 100644 >> --- a/tools/intel_gpu_top.c >> +++ b/tools/intel_gpu_top.c >> @@ -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); > > I would add at least possibility to use simple view to suggest > how to use pci/sys filter. With USER print format we see only You mean the blurb printed out by igt_device_print_filter_types (currently printed as part of help text) or something else? > drm paths. But I won't insist for that, using drm selection > is ok for me. Good point actually, intel_gpu_top should probably default to "--pci" listing type since it monitors GPUs with no notion of DRM master/render. > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Thanks! Let me know if you agree with "--pci" by default for intel_gpu_top and if it is okay to keep the r-b? Regards, Tvrtko _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 1/3] intel_gpu_top: User friendly device listing @ 2020-11-10 11:19 ` Tvrtko Ursulin 0 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-10 11:19 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev, Intel-gfx On 10/11/2020 11:13, Zbigniew Kempczyński wrote: > On Mon, Nov 09, 2020 at 10:48:09AM +0000, Tvrtko Ursulin wrote: >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> >> 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.0 >> >> sys:/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 : 193B >> >> New 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. >> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Cc: Petri Latvala <petri.latvala@intel.com> >> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> >> --- >> 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(-) >> >> diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c >> index c581a31ae55e..e66ccdc25aeb 100644 >> --- a/lib/igt_device_scan.c >> +++ b/lib/igt_device_scan.c >> @@ -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[64]; >> + 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 }, >> }; >> >> /** >> diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h >> index 99daee0c52d6..9822c22cb69c 100644 >> --- a/lib/igt_device_scan.h >> +++ b/lib/igt_device_scan.h >> @@ -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" >> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c >> index 298defa4e6ed..5230472d2af4 100644 >> --- a/tools/intel_gpu_top.c >> +++ b/tools/intel_gpu_top.c >> @@ -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); > > I would add at least possibility to use simple view to suggest > how to use pci/sys filter. With USER print format we see only You mean the blurb printed out by igt_device_print_filter_types (currently printed as part of help text) or something else? > drm paths. But I won't insist for that, using drm selection > is ok for me. Good point actually, intel_gpu_top should probably default to "--pci" listing type since it monitors GPUs with no notion of DRM master/render. > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Thanks! Let me know if you agree with "--pci" by default for intel_gpu_top and if it is okay to keep the r-b? Regards, Tvrtko _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [igt-dev] [RFC 1/3] intel_gpu_top: User friendly device listing 2020-11-10 11:19 ` [Intel-gfx] " Tvrtko Ursulin @ 2020-11-10 11:46 ` Zbigniew Kempczyński -1 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:46 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx, Petri Latvala, Tvrtko Ursulin On Tue, Nov 10, 2020 at 11:19:46AM +0000, Tvrtko Ursulin wrote: > > On 10/11/2020 11:13, Zbigniew Kempczyński wrote: > > On Mon, Nov 09, 2020 at 10:48:09AM +0000, Tvrtko Ursulin wrote: > > > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > > > > 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.0 > > > > > > sys:/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 : 193B > > > > > > New 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. > > > > > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > Cc: Petri Latvala <petri.latvala@intel.com> > > > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > > --- > > > 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(-) > > > > > > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c > > > index c581a31ae55e..e66ccdc25aeb 100644 > > > --- a/lib/igt_device_scan.c > > > +++ b/lib/igt_device_scan.c > > > @@ -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[64]; > > > + 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 }, > > > }; > > > /** > > > diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h > > > index 99daee0c52d6..9822c22cb69c 100644 > > > --- a/lib/igt_device_scan.h > > > +++ b/lib/igt_device_scan.h > > > @@ -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" > > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > > > index 298defa4e6ed..5230472d2af4 100644 > > > --- a/tools/intel_gpu_top.c > > > +++ b/tools/intel_gpu_top.c > > > @@ -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); > > > > I would add at least possibility to use simple view to suggest > > how to use pci/sys filter. With USER print format we see only > > You mean the blurb printed out by igt_device_print_filter_types (currently > printed as part of help text) or something else? Yes. We know lsgpu and intel_gpu_top selection is same and you're also printing filter syntax on 'intel_gpu_top -h'. But without using 'lsgpu -s' you won't guess how to specify sys:... filter. > > > drm paths. But I won't insist for that, using drm selection > > is ok for me. > > Good point actually, intel_gpu_top should probably default to "--pci" > listing type since it monitors GPUs with no notion of DRM master/render. > > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > Thanks! Let me know if you agree with "--pci" by default for intel_gpu_top > and if it is okay to keep the r-b? If it is not problem you could provide --pci and --sysfs too to be compliant with lsgpu switches. But there are minor nits and you can keep r-b with the code as it is. > > Regards, > > Tvrtko -- Zbigniew _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 1/3] intel_gpu_top: User friendly device listing @ 2020-11-10 11:46 ` Zbigniew Kempczyński 0 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:46 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx On Tue, Nov 10, 2020 at 11:19:46AM +0000, Tvrtko Ursulin wrote: > > On 10/11/2020 11:13, Zbigniew Kempczyński wrote: > > On Mon, Nov 09, 2020 at 10:48:09AM +0000, Tvrtko Ursulin wrote: > > > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > > > > 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.0 > > > > > > sys:/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 : 193B > > > > > > New 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. > > > > > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > Cc: Petri Latvala <petri.latvala@intel.com> > > > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > > --- > > > 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(-) > > > > > > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c > > > index c581a31ae55e..e66ccdc25aeb 100644 > > > --- a/lib/igt_device_scan.c > > > +++ b/lib/igt_device_scan.c > > > @@ -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[64]; > > > + 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 }, > > > }; > > > /** > > > diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h > > > index 99daee0c52d6..9822c22cb69c 100644 > > > --- a/lib/igt_device_scan.h > > > +++ b/lib/igt_device_scan.h > > > @@ -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" > > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > > > index 298defa4e6ed..5230472d2af4 100644 > > > --- a/tools/intel_gpu_top.c > > > +++ b/tools/intel_gpu_top.c > > > @@ -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); > > > > I would add at least possibility to use simple view to suggest > > how to use pci/sys filter. With USER print format we see only > > You mean the blurb printed out by igt_device_print_filter_types (currently > printed as part of help text) or something else? Yes. We know lsgpu and intel_gpu_top selection is same and you're also printing filter syntax on 'intel_gpu_top -h'. But without using 'lsgpu -s' you won't guess how to specify sys:... filter. > > > drm paths. But I won't insist for that, using drm selection > > is ok for me. > > Good point actually, intel_gpu_top should probably default to "--pci" > listing type since it monitors GPUs with no notion of DRM master/render. > > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > Thanks! Let me know if you agree with "--pci" by default for intel_gpu_top > and if it is okay to keep the r-b? If it is not problem you could provide --pci and --sysfs too to be compliant with lsgpu switches. But there are minor nits and you can keep r-b with the code as it is. > > Regards, > > Tvrtko -- Zbigniew _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 1/3] intel_gpu_top: User friendly device listing 2020-11-10 11:46 ` [Intel-gfx] " Zbigniew Kempczyński (?) @ 2020-11-10 11:52 ` Tvrtko Ursulin 2020-11-10 12:27 ` [Intel-gfx] " Zbigniew Kempczyński -1 siblings, 1 reply; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-10 11:52 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev, Intel-gfx On 10/11/2020 11:46, Zbigniew Kempczyński wrote: [snip] >>>> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c >>>> index 298defa4e6ed..5230472d2af4 100644 >>>> --- a/tools/intel_gpu_top.c >>>> +++ b/tools/intel_gpu_top.c >>>> @@ -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); >>> >>> I would add at least possibility to use simple view to suggest >>> how to use pci/sys filter. With USER print format we see only >> >> You mean the blurb printed out by igt_device_print_filter_types (currently >> printed as part of help text) or something else? > > Yes. We know lsgpu and intel_gpu_top selection is same and you're > also printing filter syntax on 'intel_gpu_top -h'. But without > using 'lsgpu -s' you won't guess how to specify sys:... filter. My thinking is that typical intel_gpu_top user wouldn't want/need to concern themselves with different filters but just copy&paste what was listed from intel_gpu_top -L. In which case.. >> >>> drm paths. But I won't insist for that, using drm selection >>> is ok for me. >> >> Good point actually, intel_gpu_top should probably default to "--pci" >> listing type since it monitors GPUs with no notion of DRM master/render. >> >>> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> >> >> Thanks! Let me know if you agree with "--pci" by default for intel_gpu_top >> and if it is okay to keep the r-b? > > If it is not problem you could provide --pci and --sysfs too to be compliant > with lsgpu switches. But there are minor nits and you can keep r-b with > the code as it is. ... I did not see the value of supporting --drm/--pci/--sysfs from intel_gpu_top. So "--pci" by default should "JustWork" and make end users happy. As long as the help text is clear enough what needs to be copy&pasted, which may need improvement. If I am not missing something else. Regards, Tvrtko _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [igt-dev] [RFC 1/3] intel_gpu_top: User friendly device listing 2020-11-10 11:52 ` Tvrtko Ursulin @ 2020-11-10 12:27 ` Zbigniew Kempczyński 0 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 12:27 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx, Petri Latvala, Tvrtko Ursulin On Tue, Nov 10, 2020 at 11:52:50AM +0000, Tvrtko Ursulin wrote: > > On 10/11/2020 11:46, Zbigniew Kempczyński wrote: > > [snip] > > > > > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > > > > > index 298defa4e6ed..5230472d2af4 100644 > > > > > --- a/tools/intel_gpu_top.c > > > > > +++ b/tools/intel_gpu_top.c > > > > > @@ -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); > > > > > > > > I would add at least possibility to use simple view to suggest > > > > how to use pci/sys filter. With USER print format we see only > > > > > > You mean the blurb printed out by igt_device_print_filter_types (currently > > > printed as part of help text) or something else? > > > > Yes. We know lsgpu and intel_gpu_top selection is same and you're > > also printing filter syntax on 'intel_gpu_top -h'. But without > > using 'lsgpu -s' you won't guess how to specify sys:... filter. > > My thinking is that typical intel_gpu_top user wouldn't want/need to concern > themselves with different filters but just copy&paste what was listed from > intel_gpu_top -L. In which case.. > > > > > > > > drm paths. But I won't insist for that, using drm selection > > > > is ok for me. > > > > > > Good point actually, intel_gpu_top should probably default to "--pci" > > > listing type since it monitors GPUs with no notion of DRM master/render. > > > > > > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > > > > > Thanks! Let me know if you agree with "--pci" by default for intel_gpu_top > > > and if it is okay to keep the r-b? > > > > If it is not problem you could provide --pci and --sysfs too to be compliant > > with lsgpu switches. But there are minor nits and you can keep r-b with > > the code as it is. > > ... I did not see the value of supporting --drm/--pci/--sysfs from > intel_gpu_top. > > So "--pci" by default should "JustWork" and make end users happy. As long as > the help text is clear enough what needs to be copy&pasted, which may need > improvement. If I am not missing something else. > > Regards, > > Tvrtko Ok. Probably you're right and users won't need any other selectors. If they will we will change the code. -- Zbigniew _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 1/3] intel_gpu_top: User friendly device listing @ 2020-11-10 12:27 ` Zbigniew Kempczyński 0 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 12:27 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx On Tue, Nov 10, 2020 at 11:52:50AM +0000, Tvrtko Ursulin wrote: > > On 10/11/2020 11:46, Zbigniew Kempczyński wrote: > > [snip] > > > > > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > > > > > index 298defa4e6ed..5230472d2af4 100644 > > > > > --- a/tools/intel_gpu_top.c > > > > > +++ b/tools/intel_gpu_top.c > > > > > @@ -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); > > > > > > > > I would add at least possibility to use simple view to suggest > > > > how to use pci/sys filter. With USER print format we see only > > > > > > You mean the blurb printed out by igt_device_print_filter_types (currently > > > printed as part of help text) or something else? > > > > Yes. We know lsgpu and intel_gpu_top selection is same and you're > > also printing filter syntax on 'intel_gpu_top -h'. But without > > using 'lsgpu -s' you won't guess how to specify sys:... filter. > > My thinking is that typical intel_gpu_top user wouldn't want/need to concern > themselves with different filters but just copy&paste what was listed from > intel_gpu_top -L. In which case.. > > > > > > > > drm paths. But I won't insist for that, using drm selection > > > > is ok for me. > > > > > > Good point actually, intel_gpu_top should probably default to "--pci" > > > listing type since it monitors GPUs with no notion of DRM master/render. > > > > > > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > > > > > Thanks! Let me know if you agree with "--pci" by default for intel_gpu_top > > > and if it is okay to keep the r-b? > > > > If it is not problem you could provide --pci and --sysfs too to be compliant > > with lsgpu switches. But there are minor nits and you can keep r-b with > > the code as it is. > > ... I did not see the value of supporting --drm/--pci/--sysfs from > intel_gpu_top. > > So "--pci" by default should "JustWork" and make end users happy. As long as > the help text is clear enough what needs to be copy&pasted, which may need > improvement. If I am not missing something else. > > Regards, > > Tvrtko Ok. Probably you're right and users won't need any other selectors. If they will we will change the code. -- Zbigniew _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* [igt-dev] [RFC 2/3] lsgpu: User friendly device listing 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin @ 2020-11-09 10:48 ` Tvrtko Ursulin -1 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw) To: igt-dev; +Cc: Intel-gfx, Petri Latvala, Tvrtko Ursulin From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> 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.0 sys:/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 : 193B With: 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. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tools/lsgpu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/lsgpu.c b/tools/lsgpu.c index 2541d1c24e66..3b234b73361a 100644 --- a/tools/lsgpu.c +++ b/tools/lsgpu.c @@ -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; -- 2.25.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Intel-gfx] [RFC 2/3] lsgpu: User friendly device listing @ 2020-11-09 10:48 ` Tvrtko Ursulin 0 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw) To: igt-dev; +Cc: Intel-gfx From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> 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.0 sys:/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 : 193B With: 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. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tools/lsgpu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/lsgpu.c b/tools/lsgpu.c index 2541d1c24e66..3b234b73361a 100644 --- a/tools/lsgpu.c +++ b/tools/lsgpu.c @@ -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; -- 2.25.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [igt-dev] [RFC 2/3] lsgpu: User friendly device listing 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin @ 2020-11-10 11:03 ` Zbigniew Kempczyński -1 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:03 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx, Petri Latvala, Tvrtko Ursulin On Mon, Nov 09, 2020 at 10:48:10AM +0000, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > 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.0 > > sys:/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 : 193B > > With: > > 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. > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > tools/lsgpu.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/tools/lsgpu.c b/tools/lsgpu.c > index 2541d1c24e66..3b234b73361a 100644 > --- a/tools/lsgpu.c > +++ b/tools/lsgpu.c > @@ -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; > -- > 2.25.1 > Looks ok: Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> -- Zbigniew _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 2/3] lsgpu: User friendly device listing @ 2020-11-10 11:03 ` Zbigniew Kempczyński 0 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:03 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx On Mon, Nov 09, 2020 at 10:48:10AM +0000, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > 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.0 > > sys:/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 : 193B > > With: > > 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. > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > tools/lsgpu.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/tools/lsgpu.c b/tools/lsgpu.c > index 2541d1c24e66..3b234b73361a 100644 > --- a/tools/lsgpu.c > +++ b/tools/lsgpu.c > @@ -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; > -- > 2.25.1 > Looks ok: Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> -- Zbigniew _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [igt-dev] [RFC 2/3] lsgpu: User friendly device listing 2020-11-10 11:03 ` [Intel-gfx] " Zbigniew Kempczyński @ 2020-11-10 11:20 ` Tvrtko Ursulin -1 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-10 11:20 UTC (permalink / raw) To: Zbigniew Kempczyński Cc: igt-dev, Intel-gfx, Petri Latvala, Tvrtko Ursulin On 10/11/2020 11:03, Zbigniew Kempczyński wrote: > On Mon, Nov 09, 2020 at 10:48:10AM +0000, Tvrtko Ursulin wrote: >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> >> 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.0 >> >> sys:/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 : 193B >> >> With: >> >> 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. >> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Cc: Petri Latvala <petri.latvala@intel.com> >> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> >> --- >> tools/lsgpu.c | 10 ++++++++-- >> 1 file changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/tools/lsgpu.c b/tools/lsgpu.c >> index 2541d1c24e66..3b234b73361a 100644 >> --- a/tools/lsgpu.c >> +++ b/tools/lsgpu.c >> @@ -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; >> -- >> 2.25.1 >> > > Looks ok: > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Thanks. Any concerns about potential existence of tools which parse lsgpu output and may depend on the default format? Regards, Tvrtko _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 2/3] lsgpu: User friendly device listing @ 2020-11-10 11:20 ` Tvrtko Ursulin 0 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-10 11:20 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev, Intel-gfx On 10/11/2020 11:03, Zbigniew Kempczyński wrote: > On Mon, Nov 09, 2020 at 10:48:10AM +0000, Tvrtko Ursulin wrote: >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> >> 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.0 >> >> sys:/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 : 193B >> >> With: >> >> 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. >> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Cc: Petri Latvala <petri.latvala@intel.com> >> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> >> --- >> tools/lsgpu.c | 10 ++++++++-- >> 1 file changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/tools/lsgpu.c b/tools/lsgpu.c >> index 2541d1c24e66..3b234b73361a 100644 >> --- a/tools/lsgpu.c >> +++ b/tools/lsgpu.c >> @@ -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; >> -- >> 2.25.1 >> > > Looks ok: > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Thanks. Any concerns about potential existence of tools which parse lsgpu output and may depend on the default format? Regards, Tvrtko _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [igt-dev] [RFC 2/3] lsgpu: User friendly device listing 2020-11-10 11:20 ` [Intel-gfx] " Tvrtko Ursulin @ 2020-11-10 11:35 ` Zbigniew Kempczyński -1 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:35 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx, Petri Latvala, Tvrtko Ursulin On Tue, Nov 10, 2020 at 11:20:46AM +0000, Tvrtko Ursulin wrote: > > On 10/11/2020 11:03, Zbigniew Kempczyński wrote: > > On Mon, Nov 09, 2020 at 10:48:10AM +0000, Tvrtko Ursulin wrote: > > > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > > > > 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.0 > > > > > > sys:/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 : 193B > > > > > > With: > > > > > > 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. > > > > > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > Cc: Petri Latvala <petri.latvala@intel.com> > > > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > > --- > > > tools/lsgpu.c | 10 ++++++++-- > > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > > > diff --git a/tools/lsgpu.c b/tools/lsgpu.c > > > index 2541d1c24e66..3b234b73361a 100644 > > > --- a/tools/lsgpu.c > > > +++ b/tools/lsgpu.c > > > @@ -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; > > > -- > > > 2.25.1 > > > > > > > Looks ok: > > > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > Thanks. > > Any concerns about potential existence of tools which parse lsgpu output and > may depend on the default format? > > Regards, > > Tvrtko At the moment I don't know about any tool which parses lsgpu output. But if we provide switches which print specific user/simple/detail format we always can enforce tool to output in format we expect. IMO more important are "stable" filters, I mean they should expect same syntax and provide same semantic. -- Zbigniew _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 2/3] lsgpu: User friendly device listing @ 2020-11-10 11:35 ` Zbigniew Kempczyński 0 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:35 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx On Tue, Nov 10, 2020 at 11:20:46AM +0000, Tvrtko Ursulin wrote: > > On 10/11/2020 11:03, Zbigniew Kempczyński wrote: > > On Mon, Nov 09, 2020 at 10:48:10AM +0000, Tvrtko Ursulin wrote: > > > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > > > > 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.0 > > > > > > sys:/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 : 193B > > > > > > With: > > > > > > 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. > > > > > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > > Cc: Petri Latvala <petri.latvala@intel.com> > > > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > > --- > > > tools/lsgpu.c | 10 ++++++++-- > > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > > > diff --git a/tools/lsgpu.c b/tools/lsgpu.c > > > index 2541d1c24e66..3b234b73361a 100644 > > > --- a/tools/lsgpu.c > > > +++ b/tools/lsgpu.c > > > @@ -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; > > > -- > > > 2.25.1 > > > > > > > Looks ok: > > > > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > Thanks. > > Any concerns about potential existence of tools which parse lsgpu output and > may depend on the default format? > > Regards, > > Tvrtko At the moment I don't know about any tool which parses lsgpu output. But if we provide switches which print specific user/simple/detail format we always can enforce tool to output in format we expect. IMO more important are "stable" filters, I mean they should expect same syntax and provide same semantic. -- Zbigniew _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* [igt-dev] [RFC 3/3] lsgpu: Add filter type print-out selection 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin @ 2020-11-09 10:48 ` Tvrtko Ursulin -1 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw) To: igt-dev; +Cc: Intel-gfx, Petri Latvala, Tvrtko Ursulin From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> 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:/sys/devices/pci0000:00/0000:00:02.0 └─renderD128 Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Suggested-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> --- lib/igt_device_scan.c | 69 ++++++++++++++++++++++++++++++++----------- lib/igt_device_scan.h | 15 ++++++++-- tools/intel_gpu_top.c | 6 +++- tools/lsgpu.c | 32 +++++++++++++++----- 4 files changed, 95 insertions(+), 27 deletions(-) diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c index e66ccdc25aeb..54b565b68524 100644 --- a/lib/igt_device_scan.c +++ b/lib/igt_device_scan.c @@ -748,7 +748,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; @@ -792,7 +794,36 @@ __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:%s", + dev->parent->syspath); + 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; @@ -805,7 +836,6 @@ static void igt_devs_print_user(struct igt_list_head *view) struct igt_device *dev2; char filter[64]; char *drm_name; - int ret; if (!is_drm_subsystem(dev)) continue; @@ -816,8 +846,7 @@ 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)); + __print_filter(filter, sizeof(filter), fmt, dev, false); pci_dev = __find_pci(view, dev->drm_card); if (pci_dev) @@ -848,13 +877,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"); + } } } } @@ -879,7 +910,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; @@ -903,7 +937,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 }, @@ -912,15 +947,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); } /** diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h index 9822c22cb69c..bb4be72345fb 100644 --- a/lib/igt_device_scan.h +++ b/lib/igt_device_scan.h @@ -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 12 struct 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); diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c index 5230472d2af4..07f88d555dc8 100644 --- a/tools/intel_gpu_top.c +++ b/tools/intel_gpu_top.c @@ -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; } diff --git a/tools/lsgpu.c b/tools/lsgpu.c index 3b234b73361a..169ab0c29e50 100644 --- a/tools/lsgpu.c +++ b/tools/lsgpu.c @@ -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); -- 2.25.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Intel-gfx] [RFC 3/3] lsgpu: Add filter type print-out selection @ 2020-11-09 10:48 ` Tvrtko Ursulin 0 siblings, 0 replies; 27+ messages in thread From: Tvrtko Ursulin @ 2020-11-09 10:48 UTC (permalink / raw) To: igt-dev; +Cc: Intel-gfx From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> 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:/sys/devices/pci0000:00/0000:00:02.0 └─renderD128 Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Suggested-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> --- lib/igt_device_scan.c | 69 ++++++++++++++++++++++++++++++++----------- lib/igt_device_scan.h | 15 ++++++++-- tools/intel_gpu_top.c | 6 +++- tools/lsgpu.c | 32 +++++++++++++++----- 4 files changed, 95 insertions(+), 27 deletions(-) diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c index e66ccdc25aeb..54b565b68524 100644 --- a/lib/igt_device_scan.c +++ b/lib/igt_device_scan.c @@ -748,7 +748,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; @@ -792,7 +794,36 @@ __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:%s", + dev->parent->syspath); + 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; @@ -805,7 +836,6 @@ static void igt_devs_print_user(struct igt_list_head *view) struct igt_device *dev2; char filter[64]; char *drm_name; - int ret; if (!is_drm_subsystem(dev)) continue; @@ -816,8 +846,7 @@ 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)); + __print_filter(filter, sizeof(filter), fmt, dev, false); pci_dev = __find_pci(view, dev->drm_card); if (pci_dev) @@ -848,13 +877,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"); + } } } } @@ -879,7 +910,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; @@ -903,7 +937,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 }, @@ -912,15 +947,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); } /** diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h index 9822c22cb69c..bb4be72345fb 100644 --- a/lib/igt_device_scan.h +++ b/lib/igt_device_scan.h @@ -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 12 struct 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); diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c index 5230472d2af4..07f88d555dc8 100644 --- a/tools/intel_gpu_top.c +++ b/tools/intel_gpu_top.c @@ -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; } diff --git a/tools/lsgpu.c b/tools/lsgpu.c index 3b234b73361a..169ab0c29e50 100644 --- a/tools/lsgpu.c +++ b/tools/lsgpu.c @@ -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); -- 2.25.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [RFC 3/3] lsgpu: Add filter type print-out selection 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin (?) @ 2020-11-10 11:02 ` Zbigniew Kempczyński -1 siblings, 0 replies; 27+ messages in thread From: Zbigniew Kempczyński @ 2020-11-10 11:02 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev, Intel-gfx On Mon, Nov 09, 2020 at 10:48:11AM +0000, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > 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:/sys/devices/pci0000:00/0000:00:02.0 > └─renderD128 > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Suggested-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > --- > lib/igt_device_scan.c | 69 ++++++++++++++++++++++++++++++++----------- > lib/igt_device_scan.h | 15 ++++++++-- > tools/intel_gpu_top.c | 6 +++- > tools/lsgpu.c | 32 +++++++++++++++----- > 4 files changed, 95 insertions(+), 27 deletions(-) > > diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c > index e66ccdc25aeb..54b565b68524 100644 > --- a/lib/igt_device_scan.c > +++ b/lib/igt_device_scan.c > @@ -748,7 +748,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; > > @@ -792,7 +794,36 @@ __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:%s", > + dev->parent->syspath); > + 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; > > @@ -805,7 +836,6 @@ static void igt_devs_print_user(struct igt_list_head *view) > struct igt_device *dev2; > char filter[64]; Too small, for two machines I got (printed returned size) : (lsgpu:15601) igt_device_scan-INFO: path: /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/card0, ret: 89, len: 64 (lsgpu:15601) igt_device_scan-CRITICAL: Test assertion failure function __print_filter, file ../lib/igt_device_scan.c:815: (lsgpu:15601) igt_device_scan-CRITICAL: Failed assertion: ret < len I would extend that to at least 128 or 256 (in this case we can completely forget about the path length). -- Zbigniew > char *drm_name; > - int ret; > > if (!is_drm_subsystem(dev)) > continue; > @@ -816,8 +846,7 @@ 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)); > + __print_filter(filter, sizeof(filter), fmt, dev, false); > > pci_dev = __find_pci(view, dev->drm_card); > if (pci_dev) > @@ -848,13 +877,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"); > + } > } > } > } > @@ -879,7 +910,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; > > @@ -903,7 +937,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 }, > @@ -912,15 +947,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); > } > > /** > diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h > index 9822c22cb69c..bb4be72345fb 100644 > --- a/lib/igt_device_scan.h > +++ b/lib/igt_device_scan.h > @@ -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 12 > struct 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); > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > index 5230472d2af4..07f88d555dc8 100644 > --- a/tools/intel_gpu_top.c > +++ b/tools/intel_gpu_top.c > @@ -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; > } > > diff --git a/tools/lsgpu.c b/tools/lsgpu.c > index 3b234b73361a..169ab0c29e50 100644 > --- a/tools/lsgpu.c > +++ b/tools/lsgpu.c > @@ -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); > -- > 2.25.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BUILD: failure for User friendly lsgpu default output 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin ` (3 preceding siblings ...) (?) @ 2020-11-09 11:21 ` Patchwork -1 siblings, 0 replies; 27+ messages in thread From: Patchwork @ 2020-11-09 11:21 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: intel-gfx == Series Details == Series: User friendly lsgpu default output URL : https://patchwork.freedesktop.org/series/83640/ State : failure == Summary == Applying: intel_gpu_top: User friendly device listing error: sha1 information is lacking or useless (lib/igt_device_scan.c). error: could not build fake ancestor hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 intel_gpu_top: User friendly device listing When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 27+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for User friendly lsgpu default output 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin ` (4 preceding siblings ...) (?) @ 2020-11-09 11:21 ` Patchwork -1 siblings, 0 replies; 27+ messages in thread From: Patchwork @ 2020-11-09 11:21 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev [-- Attachment #1.1: Type: text/plain, Size: 4076 bytes --] == Series Details == Series: User friendly lsgpu default output URL : https://patchwork.freedesktop.org/series/83639/ State : success == Summary == CI Bug Log - changes from CI_DRM_9295 -> IGTPW_5145 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/index.html Known issues ------------ Here are the changes found in IGTPW_5145 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_gttfill@basic: - fi-tgl-y: [PASS][1] -> [DMESG-WARN][2] ([i915#402]) +2 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-tgl-y/igt@gem_exec_gttfill@basic.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-tgl-y/igt@gem_exec_gttfill@basic.html * igt@gem_exec_suspend@basic-s0: - fi-glk-dsi: [PASS][3] -> [DMESG-WARN][4] ([i915#1982]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-glk-dsi/igt@gem_exec_suspend@basic-s0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-glk-dsi/igt@gem_exec_suspend@basic-s0.html * igt@i915_module_load@reload: - fi-byt-j1900: [PASS][5] -> [DMESG-WARN][6] ([i915#1982]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-byt-j1900/igt@i915_module_load@reload.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-byt-j1900/igt@i915_module_load@reload.html - fi-skl-lmem: [PASS][7] -> [DMESG-WARN][8] ([i915#2605]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-skl-lmem/igt@i915_module_load@reload.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-skl-lmem/igt@i915_module_load@reload.html * igt@i915_pm_rpm@basic-pci-d3-state: - fi-bsw-kefka: [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html #### Possible fixes #### * igt@i915_module_load@reload: - fi-kbl-soraka: [DMESG-WARN][11] ([i915#1982]) -> [PASS][12] +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-kbl-soraka/igt@i915_module_load@reload.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-kbl-soraka/igt@i915_module_load@reload.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - fi-byt-j1900: [DMESG-WARN][13] ([i915#1982]) -> [PASS][14] +1 similar issue [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@vgem_basic@setversion: - fi-tgl-y: [DMESG-WARN][15] ([i915#402]) -> [PASS][16] +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/fi-tgl-y/igt@vgem_basic@setversion.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/fi-tgl-y/igt@vgem_basic@setversion.html [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2605]: https://gitlab.freedesktop.org/drm/intel/issues/2605 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 Participating hosts (43 -> 39) ------------------------------ Missing (4): fi-ilk-m540 fi-bsw-cyan fi-bdw-samus fi-hsw-4200u Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5839 -> IGTPW_5145 CI-20190529: 20190529 CI_DRM_9295: f6794c7c0df8fa828266593950865196dbd8b645 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_5145: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/index.html IGT_5839: 2dbd64a6301e36eb432bc50ad7021fabaeebd1f4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/index.html [-- Attachment #1.2: Type: text/html, Size: 5198 bytes --] [-- Attachment #2: Type: text/plain, Size: 154 bytes --] _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for User friendly lsgpu default output 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin ` (5 preceding siblings ...) (?) @ 2020-11-09 12:20 ` Patchwork -1 siblings, 0 replies; 27+ messages in thread From: Patchwork @ 2020-11-09 12:20 UTC (permalink / raw) To: Tvrtko Ursulin; +Cc: igt-dev [-- Attachment #1.1: Type: text/plain, Size: 30252 bytes --] == Series Details == Series: User friendly lsgpu default output URL : https://patchwork.freedesktop.org/series/83639/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9295_full -> IGTPW_5145_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_5145_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_5145_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_5145/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_5145_full: ### IGT changes ### #### Possible regressions #### * igt@core_hotunplug@hotrebind-lateclose: - shard-snb: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-snb5/igt@core_hotunplug@hotrebind-lateclose.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-snb2/igt@core_hotunplug@hotrebind-lateclose.html * igt@kms_big_fb@x-tiled-16bpp-rotate-180: - shard-snb: [PASS][3] -> [FAIL][4] +1 similar issue [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-snb7/igt@kms_big_fb@x-tiled-16bpp-rotate-180.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-snb7/igt@kms_big_fb@x-tiled-16bpp-rotate-180.html #### Warnings #### * igt@i915_pm_dc@dc6-dpms: - shard-kbl: [FAIL][5] ([i915#454]) -> [FAIL][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl3/igt@i915_pm_dc@dc6-dpms.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl7/igt@i915_pm_dc@dc6-dpms.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@gem_pwrite@basic-exhaustion}: - shard-hsw: NOTRUN -> [WARN][7] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw1/igt@gem_pwrite@basic-exhaustion.html - shard-glk: NOTRUN -> [WARN][8] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk5/igt@gem_pwrite@basic-exhaustion.html Known issues ------------ Here are the changes found in IGTPW_5145_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_endless@dispatch@rcs0: - shard-iclb: [PASS][9] -> [INCOMPLETE][10] ([i915#2502]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb8/igt@gem_exec_endless@dispatch@rcs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb3/igt@gem_exec_endless@dispatch@rcs0.html * igt@gem_exec_whisper@basic-fds-priority: - shard-glk: [PASS][11] -> [DMESG-WARN][12] ([i915#118] / [i915#95]) +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk1/igt@gem_exec_whisper@basic-fds-priority.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk9/igt@gem_exec_whisper@basic-fds-priority.html * igt@i915_pm_dc@dc6-dpms: - shard-iclb: [PASS][13] -> [FAIL][14] ([i915#454]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb8/igt@i915_pm_dc@dc6-dpms.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb6/igt@i915_pm_dc@dc6-dpms.html * igt@i915_suspend@forcewake: - shard-iclb: [PASS][15] -> [INCOMPLETE][16] ([i915#1185]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb5/igt@i915_suspend@forcewake.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb6/igt@i915_suspend@forcewake.html - shard-kbl: [PASS][17] -> [INCOMPLETE][18] ([i915#155] / [i915#636]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl6/igt@i915_suspend@forcewake.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl7/igt@i915_suspend@forcewake.html - shard-hsw: [PASS][19] -> [INCOMPLETE][20] ([i915#2055] / [i915#2637]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw8/igt@i915_suspend@forcewake.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw1/igt@i915_suspend@forcewake.html - shard-glk: [PASS][21] -> [INCOMPLETE][22] ([i915#2635]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk3/igt@i915_suspend@forcewake.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk6/igt@i915_suspend@forcewake.html - shard-apl: [PASS][23] -> [INCOMPLETE][24] ([i915#1635] / [i915#2635]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl3/igt@i915_suspend@forcewake.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl6/igt@i915_suspend@forcewake.html * igt@kms_big_fb@y-tiled-32bpp-rotate-180: - shard-glk: [PASS][25] -> [DMESG-WARN][26] ([i915#1982]) +6 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk7/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk8/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html * igt@kms_big_fb@yf-tiled-32bpp-rotate-0: - shard-kbl: [PASS][27] -> [DMESG-WARN][28] ([i915#1982]) +1 similar issue [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl6/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl1/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html * igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic: - shard-iclb: [PASS][29] -> [DMESG-WARN][30] ([i915#1982]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb4/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb8/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html * igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-ytiled: - shard-glk: [PASS][31] -> [FAIL][32] ([i915#52] / [i915#54]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk8/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-ytiled.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk1/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-ytiled.html * igt@kms_flip@2x-blocking-wf_vblank@ab-vga1-hdmi-a1: - shard-hsw: [PASS][33] -> [DMESG-WARN][34] ([i915#1982]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw5/igt@kms_flip@2x-blocking-wf_vblank@ab-vga1-hdmi-a1.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw6/igt@kms_flip@2x-blocking-wf_vblank@ab-vga1-hdmi-a1.html * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1: - shard-tglb: [PASS][35] -> [FAIL][36] ([i915#2122]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb5/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb1/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html * igt@kms_flip@flip-vs-expired-vblank@a-edp1: - shard-tglb: [PASS][37] -> [FAIL][38] ([i915#2598]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html * igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1: - shard-glk: [PASS][39] -> [FAIL][40] ([i915#79]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk7/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk5/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html * igt@kms_flip@flip-vs-expired-vblank@c-dp1: - shard-apl: [PASS][41] -> [FAIL][42] ([i915#1635] / [i915#79]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl4/igt@kms_flip@flip-vs-expired-vblank@c-dp1.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl6/igt@kms_flip@flip-vs-expired-vblank@c-dp1.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen: - shard-snb: [PASS][43] -> [FAIL][44] ([i915#2546]) +1 similar issue [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-snb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-snb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt: - shard-glk: [PASS][45] -> [FAIL][46] ([i915#49]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt: - shard-tglb: [PASS][47] -> [DMESG-WARN][48] ([i915#1982]) +1 similar issue [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html * igt@kms_psr@psr2_sprite_mmap_cpu: - shard-iclb: [PASS][49] -> [SKIP][50] ([fdo#109441]) +1 similar issue [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_cpu.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb3/igt@kms_psr@psr2_sprite_mmap_cpu.html * igt@kms_vblank@pipe-b-query-forked-busy: - shard-apl: [PASS][51] -> [DMESG-WARN][52] ([i915#1635] / [i915#1982]) +6 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl3/igt@kms_vblank@pipe-b-query-forked-busy.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl1/igt@kms_vblank@pipe-b-query-forked-busy.html * igt@perf@non-system-wide-paranoid: - shard-apl: [PASS][53] -> [SKIP][54] ([fdo#109271] / [i915#1354] / [i915#1635]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl4/igt@perf@non-system-wide-paranoid.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl4/igt@perf@non-system-wide-paranoid.html - shard-glk: [PASS][55] -> [SKIP][56] ([fdo#109271] / [i915#1354]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk3/igt@perf@non-system-wide-paranoid.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk5/igt@perf@non-system-wide-paranoid.html - shard-iclb: [PASS][57] -> [SKIP][58] ([i915#1354]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb8/igt@perf@non-system-wide-paranoid.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb2/igt@perf@non-system-wide-paranoid.html - shard-kbl: [PASS][59] -> [SKIP][60] ([fdo#109271] / [i915#1354]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl2/igt@perf@non-system-wide-paranoid.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl7/igt@perf@non-system-wide-paranoid.html - shard-tglb: [PASS][61] -> [SKIP][62] ([i915#1354]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb5/igt@perf@non-system-wide-paranoid.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb5/igt@perf@non-system-wide-paranoid.html * igt@perf@polling-parameterized: - shard-hsw: [PASS][63] -> [FAIL][64] ([i915#1542]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw1/igt@perf@polling-parameterized.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw6/igt@perf@polling-parameterized.html #### Possible fixes #### * igt@gem_exec_create@forked: - shard-glk: [DMESG-WARN][65] ([i915#118] / [i915#95]) -> [PASS][66] [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk3/igt@gem_exec_create@forked.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk8/igt@gem_exec_create@forked.html * igt@gem_linear_blits@normal: - shard-hsw: [FAIL][67] ([i915#1263] / [i915#1888]) -> [PASS][68] [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw4/igt@gem_linear_blits@normal.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw7/igt@gem_linear_blits@normal.html * igt@gem_partial_pwrite_pread@reads-display: - shard-hsw: [FAIL][69] ([i915#2261]) -> [PASS][70] [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw4/igt@gem_partial_pwrite_pread@reads-display.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw7/igt@gem_partial_pwrite_pread@reads-display.html * igt@i915_pm_rpm@system-suspend-modeset: - shard-glk: [SKIP][71] ([fdo#109271]) -> [PASS][72] +3 similar issues [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk5/igt@i915_pm_rpm@system-suspend-modeset.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk8/igt@i915_pm_rpm@system-suspend-modeset.html - shard-iclb: [SKIP][73] ([i915#579]) -> [PASS][74] +2 similar issues [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb4/igt@i915_pm_rpm@system-suspend-modeset.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb4/igt@i915_pm_rpm@system-suspend-modeset.html - shard-apl: [SKIP][75] ([fdo#109271] / [i915#1635]) -> [PASS][76] +4 similar issues [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl3/igt@i915_pm_rpm@system-suspend-modeset.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl4/igt@i915_pm_rpm@system-suspend-modeset.html * {igt@kms_async_flips@async-flip-with-page-flip-events}: - shard-kbl: [FAIL][77] ([i915#2521]) -> [PASS][78] [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl7/igt@kms_async_flips@async-flip-with-page-flip-events.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl6/igt@kms_async_flips@async-flip-with-page-flip-events.html - shard-iclb: [FAIL][79] ([i915#2521]) -> [PASS][80] [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb1/igt@kms_async_flips@async-flip-with-page-flip-events.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb1/igt@kms_async_flips@async-flip-with-page-flip-events.html - shard-glk: [FAIL][81] ([i915#2521]) -> [PASS][82] [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk7/igt@kms_async_flips@async-flip-with-page-flip-events.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk9/igt@kms_async_flips@async-flip-with-page-flip-events.html - shard-apl: [FAIL][83] ([i915#1635] / [i915#2521]) -> [PASS][84] [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl4/igt@kms_async_flips@async-flip-with-page-flip-events.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl1/igt@kms_async_flips@async-flip-with-page-flip-events.html * igt@kms_big_fb@linear-16bpp-rotate-180: - shard-kbl: [DMESG-WARN][85] ([i915#1982]) -> [PASS][86] +6 similar issues [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl6/igt@kms_big_fb@linear-16bpp-rotate-180.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl1/igt@kms_big_fb@linear-16bpp-rotate-180.html * igt@kms_cursor_crc@pipe-a-cursor-64x21-random: - shard-hsw: [INCOMPLETE][87] -> [PASS][88] [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw1/igt@kms_cursor_crc@pipe-a-cursor-64x21-random.html [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw6/igt@kms_cursor_crc@pipe-a-cursor-64x21-random.html * igt@kms_cursor_crc@pipe-b-cursor-suspend: - shard-apl: [INCOMPLETE][89] ([i915#1635] / [i915#2635]) -> [PASS][90] [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl3/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html - shard-iclb: [INCOMPLETE][91] ([i915#1185]) -> [PASS][92] [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html - shard-glk: [INCOMPLETE][93] ([i915#2635]) -> [PASS][94] [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk5/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html - shard-hsw: [INCOMPLETE][95] ([i915#2637]) -> [PASS][96] [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html - shard-kbl: [INCOMPLETE][97] -> [PASS][98] [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html * igt@kms_cursor_edge_walk@pipe-a-256x256-left-edge: - shard-glk: [DMESG-WARN][99] ([i915#1982]) -> [PASS][100] +8 similar issues [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk6/igt@kms_cursor_edge_walk@pipe-a-256x256-left-edge.html [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk3/igt@kms_cursor_edge_walk@pipe-a-256x256-left-edge.html * igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge: - shard-apl: [DMESG-WARN][101] ([i915#1635] / [i915#1982]) -> [PASS][102] +5 similar issues [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl7/igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge.html [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl3/igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: - shard-hsw: [FAIL][103] ([i915#96]) -> [PASS][104] [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html * igt@kms_dp_aux_dev: - shard-iclb: [DMESG-WARN][105] -> [PASS][106] [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb7/igt@kms_dp_aux_dev.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb2/igt@kms_dp_aux_dev.html * igt@kms_flip@flip-vs-wf_vblank-interruptible@a-vga1: - shard-hsw: [DMESG-WARN][107] ([i915#1982]) -> [PASS][108] [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw6/igt@kms_flip@flip-vs-wf_vblank-interruptible@a-vga1.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw8/igt@kms_flip@flip-vs-wf_vblank-interruptible@a-vga1.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt: - shard-snb: [FAIL][109] ([i915#2546]) -> [PASS][110] [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-snb4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-snb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html * igt@kms_hdmi_inject@inject-audio: - shard-iclb: [SKIP][111] ([i915#433]) -> [PASS][112] [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb5/igt@kms_hdmi_inject@inject-audio.html [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb1/igt@kms_hdmi_inject@inject-audio.html * igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-a: - shard-snb: [FAIL][113] -> [PASS][114] [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-snb4/igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-a.html [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-snb4/igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-a.html * igt@kms_psr2_su@page_flip: - shard-iclb: [SKIP][115] ([fdo#109642] / [fdo#111068]) -> [PASS][116] [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb7/igt@kms_psr2_su@page_flip.html [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb2/igt@kms_psr2_su@page_flip.html * igt@kms_psr@psr2_sprite_plane_move: - shard-iclb: [SKIP][117] ([fdo#109441]) -> [PASS][118] [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb8/igt@kms_psr@psr2_sprite_plane_move.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html * igt@kms_vblank@pipe-c-ts-continuation-modeset-rpm: - shard-hsw: [SKIP][119] ([fdo#109271]) -> [PASS][120] +6 similar issues [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw7/igt@kms_vblank@pipe-c-ts-continuation-modeset-rpm.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw5/igt@kms_vblank@pipe-c-ts-continuation-modeset-rpm.html - shard-kbl: [SKIP][121] ([fdo#109271]) -> [PASS][122] +4 similar issues [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl2/igt@kms_vblank@pipe-c-ts-continuation-modeset-rpm.html [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl2/igt@kms_vblank@pipe-c-ts-continuation-modeset-rpm.html - shard-iclb: [SKIP][123] ([fdo#109278]) -> [PASS][124] +1 similar issue [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb4/igt@kms_vblank@pipe-c-ts-continuation-modeset-rpm.html [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb1/igt@kms_vblank@pipe-c-ts-continuation-modeset-rpm.html * igt@perf@disabled-read-error: - shard-glk: [SKIP][125] ([fdo#109271] / [i915#1354]) -> [PASS][126] +1 similar issue [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk8/igt@perf@disabled-read-error.html [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk8/igt@perf@disabled-read-error.html - shard-apl: [SKIP][127] ([fdo#109271] / [i915#1354] / [i915#1635]) -> [PASS][128] +1 similar issue [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl6/igt@perf@disabled-read-error.html [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl2/igt@perf@disabled-read-error.html - shard-kbl: [SKIP][129] ([fdo#109271] / [i915#1354]) -> [PASS][130] +1 similar issue [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl1/igt@perf@disabled-read-error.html [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl7/igt@perf@disabled-read-error.html - shard-tglb: [SKIP][131] ([i915#1354]) -> [PASS][132] +1 similar issue [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb1/igt@perf@disabled-read-error.html [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb5/igt@perf@disabled-read-error.html * igt@perf@invalid-remove-userspace-config: - shard-iclb: [SKIP][133] ([i915#1354]) -> [PASS][134] +1 similar issue [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb2/igt@perf@invalid-remove-userspace-config.html [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb6/igt@perf@invalid-remove-userspace-config.html * igt@perf_pmu@module-unload: - shard-tglb: [DMESG-WARN][135] ([i915#1982]) -> [PASS][136] +4 similar issues [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb2/igt@perf_pmu@module-unload.html [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb2/igt@perf_pmu@module-unload.html #### Warnings #### * igt@feature_discovery@psr2: - shard-kbl: [INCOMPLETE][137] -> [SKIP][138] ([fdo#109271]) [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-kbl6/igt@feature_discovery@psr2.html [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-kbl4/igt@feature_discovery@psr2.html * igt@i915_pm_dc@dc3co-vpb-simulation: - shard-iclb: [SKIP][139] ([i915#588]) -> [SKIP][140] ([i915#658]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb5/igt@i915_pm_dc@dc3co-vpb-simulation.html * igt@i915_pm_rpm@gem-pread: - shard-tglb: [SKIP][141] ([i915#579]) -> [DMESG-WARN][142] ([i915#2411]) +2 similar issues [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb5/igt@i915_pm_rpm@gem-pread.html [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb5/igt@i915_pm_rpm@gem-pread.html - shard-glk: [SKIP][143] ([fdo#109271]) -> [DMESG-WARN][144] ([i915#1982]) [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk1/igt@i915_pm_rpm@gem-pread.html [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk8/igt@i915_pm_rpm@gem-pread.html * igt@i915_pm_rpm@pc8-residency: - shard-iclb: [SKIP][145] ([fdo#109293] / [fdo#109506]) -> [SKIP][146] ([i915#579]) [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb2/igt@i915_pm_rpm@pc8-residency.html [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb6/igt@i915_pm_rpm@pc8-residency.html - shard-tglb: [SKIP][147] ([fdo#109506] / [i915#2411]) -> [SKIP][148] ([i915#579]) [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb7/igt@i915_pm_rpm@pc8-residency.html [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb8/igt@i915_pm_rpm@pc8-residency.html * igt@i915_suspend@forcewake: - shard-tglb: [DMESG-WARN][149] ([i915#2411]) -> [DMESG-WARN][150] ([i915#1436] / [i915#1887] / [i915#2411]) [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb1/igt@i915_suspend@forcewake.html [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb8/igt@i915_suspend@forcewake.html * igt@kms_cursor_crc@pipe-b-cursor-suspend: - shard-tglb: [INCOMPLETE][151] ([i915#1436] / [i915#1798] / [i915#1982] / [i915#456]) -> [DMESG-WARN][152] ([i915#2411]) [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: - shard-tglb: [DMESG-WARN][153] ([i915#2411]) -> [DMESG-WARN][154] ([i915#1982] / [i915#2411]) [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb8/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html * igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm: - shard-tglb: [SKIP][155] -> [DMESG-WARN][156] ([i915#2411]) +1 similar issue [155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb5/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb2/igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm.html * igt@kms_vblank@pipe-a-ts-continuation-suspend: - shard-tglb: [INCOMPLETE][157] ([i915#1436] / [i915#456]) -> [DMESG-WARN][158] ([i915#2411]) [157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb2/igt@kms_vblank@pipe-a-ts-continuation-suspend.html [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-tglb3/igt@kms_vblank@pipe-a-ts-continuation-suspend.html * igt@runner@aborted: - shard-hsw: [FAIL][159] -> [FAIL][160] ([i915#2439] / [i915#483]) [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-hsw7/igt@runner@aborted.html [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-hsw1/igt@runner@aborted.html - shard-iclb: [FAIL][161] ([i915#1814]) -> [FAIL][162] ([i915#2439] / [i915#483]) [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-iclb4/igt@runner@aborted.html [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-iclb6/igt@runner@aborted.html - shard-apl: [FAIL][163] ([i915#1635] / [i915#1814]) -> [FAIL][164] ([i915#1635] / [i915#2439]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-apl3/igt@runner@aborted.html [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-apl6/igt@runner@aborted.html - shard-glk: [FAIL][165] ([i915#1814] / [k.org#202321]) -> [FAIL][166] ([i915#2439] / [k.org#202321]) [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-glk5/igt@runner@aborted.html [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/shard-glk6/igt@runner@aborted.html - shard-tglb: ([FAIL][167], [FAIL][168]) ([i915#1602]) -> [FAIL][169] ([i915#1602] / [i915#2439]) [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9295/shard-tglb6/igt@run == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5145/index.html [-- Attachment #1.2: Type: text/html, Size: 32768 bytes --] [-- Attachment #2: Type: text/plain, Size: 154 bytes --] _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2020-11-10 12:27 UTC | newest] Thread overview: 27+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-11-09 10:48 [igt-dev] [RFC 0/3] User friendly lsgpu default output Tvrtko Ursulin 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin 2020-11-09 10:48 ` [igt-dev] [RFC 1/3] intel_gpu_top: User friendly device listing Tvrtko Ursulin 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin 2020-11-10 11:13 ` [igt-dev] " Zbigniew Kempczyński 2020-11-10 11:13 ` [Intel-gfx] " Zbigniew Kempczyński 2020-11-10 11:19 ` [igt-dev] " Tvrtko Ursulin 2020-11-10 11:19 ` [Intel-gfx] " Tvrtko Ursulin 2020-11-10 11:46 ` [igt-dev] " Zbigniew Kempczyński 2020-11-10 11:46 ` [Intel-gfx] " Zbigniew Kempczyński 2020-11-10 11:52 ` Tvrtko Ursulin 2020-11-10 12:27 ` [igt-dev] " Zbigniew Kempczyński 2020-11-10 12:27 ` [Intel-gfx] " Zbigniew Kempczyński 2020-11-09 10:48 ` [igt-dev] [RFC 2/3] lsgpu: " Tvrtko Ursulin 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin 2020-11-10 11:03 ` [igt-dev] " Zbigniew Kempczyński 2020-11-10 11:03 ` [Intel-gfx] " Zbigniew Kempczyński 2020-11-10 11:20 ` [igt-dev] " Tvrtko Ursulin 2020-11-10 11:20 ` [Intel-gfx] " Tvrtko Ursulin 2020-11-10 11:35 ` [igt-dev] " Zbigniew Kempczyński 2020-11-10 11:35 ` [Intel-gfx] " Zbigniew Kempczyński 2020-11-09 10:48 ` [igt-dev] [RFC 3/3] lsgpu: Add filter type print-out selection Tvrtko Ursulin 2020-11-09 10:48 ` [Intel-gfx] " Tvrtko Ursulin 2020-11-10 11:02 ` Zbigniew Kempczyński 2020-11-09 11:21 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for User friendly lsgpu default output Patchwork 2020-11-09 11:21 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork 2020-11-09 12:20 ` [igt-dev] ✗ Fi.CI.IGT: failure " 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.