All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>,
	igt-dev@lists.freedesktop.org
Cc: Petri Latvala <petri.latvala@intel.com>,
	Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t v3 2/3] tools/intel_gpu_top: Add generation info in header
Date: Wed, 18 Nov 2020 10:04:30 +0000	[thread overview]
Message-ID: <760d4e56-e034-14cc-0915-b7933d093647@linux.intel.com> (raw)
In-Reply-To: <20201117163411.133158-2-zbigniew.kempczynski@intel.com>


On 17/11/2020 16:34, Zbigniew Kempczyński wrote:
> In multi device world we may want to see generation of device we're
> tracking counters. Add generation number/codename to be more verbose.
> 
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Petri Latvala <petri.latvala@intel.com>
> ---
>   lib/Makefile.am       |  4 +++-
>   lib/meson.build       |  1 +
>   tools/intel_gpu_top.c | 18 ++++++++++++++++--
>   3 files changed, 20 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/Makefile.am b/lib/Makefile.am
> index fecf34cd..c476eeab 100644
> --- a/lib/Makefile.am
> +++ b/lib/Makefile.am
> @@ -118,7 +118,9 @@ libigt_device_scan_la_SOURCES = \
>   	igt_list.c		\
>   	igt_tools_stub.c	\
>   	igt_device_scan.c	\
> -	igt_device_scan.h
> +	igt_device_scan.h	\
> +	intel_device_info.c	\
> +	intel_chipset.h
>   
>   libigt_perf_la_SOURCES = \
>   	igt_perf.c	 \
> diff --git a/lib/meson.build b/lib/meson.build
> index 090a10cd..540facb2 100644
> --- a/lib/meson.build
> +++ b/lib/meson.build
> @@ -182,6 +182,7 @@ lib_igt_device_scan_build = static_library('igt_device_scan',
>   	['igt_device_scan.c',
>   	'igt_list.c',
>   	'igt_tools_stub.c',
> +	'intel_device_info.c',
>   	],
>   	dependencies : scan_dep,
>   	include_directories : inc)
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index 86de09aa..399416c3 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -22,6 +22,7 @@
>    */
>   
>   #include "igt_device_scan.h"
> +#include "intel_chipset.h"
>   
>   #include <stdio.h>
>   #include <sys/types.h>
> @@ -1028,9 +1029,12 @@ static bool print_groups(struct cnt_group **groups)
>   
>   static int
>   print_header(const struct igt_device_card *card,
> +	     const struct intel_device_info *info,
>   	     struct engines *engines, double t,
>   	     int lines, int con_w, int con_h, bool *consumed)
>   {
> +	static char *codename;
> +	unsigned int gen = info ? ffs(info->gen) : 0;
>   	struct pmu_counter fake_pmu = {
>   		.present = true,
>   		.val.cur = 1,
> @@ -1106,8 +1110,15 @@ print_header(const struct igt_device_card *card,
>   	if (output_mode == INTERACTIVE) {
>   		printf("\033[H\033[J");
>   
> +		if (!codename) {
> +			codename = info->codename ? strdup(info->codename) :
> +						    strdup("unknown");
> +			codename[0] = toupper(codename[0]);
> +		}
> +
>   		if (lines++ < con_h) {
> -			printf("intel-gpu-top: %s - ", card->card);
> +			printf("intel-gpu-top: %s (Gen%u) @ %s - ",
> +			       codename, gen, card->card);

Leaks codename and lets try and avoid code duplication. And print hex 
string if unknown - so same comments as in previous patch.

>   			if (!engines->discrete)
>   				printf("%s/%s MHz;  %s%% RC6; %s %s; %s irqs/s\n",
>   					freq_items[1].buf, freq_items[0].buf,
> @@ -1317,6 +1328,7 @@ int main(int argc, char **argv)
>   	bool list_device = false;
>   	char *pmu_device, *opt_device = NULL;
>   	struct igt_device_card card;
> +	const struct intel_device_info *info = NULL;
>   
>   	/* Parse options */
>   	while ((ch = getopt(argc, argv, "o:s:d:JLlh")) != -1) {
> @@ -1441,6 +1453,8 @@ int main(int argc, char **argv)
>   	ret = EXIT_SUCCESS;
>   
>   	pmu_sample(engines);
> +	if (card.pci_device)
> +		info = intel_get_device_info(card.pci_device);
>   
>   	while (!stop_top) {
>   		bool consumed = false;
> @@ -1463,7 +1477,7 @@ int main(int argc, char **argv)
>   			break;
>   
>   		while (!consumed) {
> -			lines = print_header(&card, engines,
> +			lines = print_header(&card, info, engines,
>   					     t, lines, con_w, con_h,
>   					     &consumed);
>   
> 

I would really prefer print_header would not need to rebuild the pretty 
string every time. And also that we try and limit adding new arguments 
to it. So I have this idea:

Add the pretty string to struct engines and build it once on probe. 
Probably change discover_engines to take the card and move the block 
which figures out the pmu_device into the function. It can then build 
the pretty string and store in engines->codename / engines->drm_card or 
something.

Since I am bikeshedding a lot I am happy to take over the intel_gpu_top 
patch at least. But if you feel these suggestions are solid also feel 
free to carry on yourself.

Regards,

Tvrtko
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2020-11-18 10:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-17 16:34 [igt-dev] [PATCH i-g-t v3 1/3] lib/igt_device_scan: Remember vendor/device for pci devices Zbigniew Kempczyński
2020-11-17 16:34 ` [igt-dev] [PATCH i-g-t v3 2/3] tools/intel_gpu_top: Add generation info in header Zbigniew Kempczyński
2020-11-18 10:04   ` Tvrtko Ursulin [this message]
2020-11-17 16:34 ` [igt-dev] [PATCH i-g-t v3 3/3] tools/lsgpu: Add -n switch to list devices using vendor:device hex id Zbigniew Kempczyński
2020-11-17 18:50 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,v3,1/3] lib/igt_device_scan: Remember vendor/device for pci devices Patchwork
2020-11-18  9:56 ` [igt-dev] [PATCH i-g-t v3 1/3] " Tvrtko Ursulin
2020-11-18 12:10   ` Zbigniew Kempczyński

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=760d4e56-e034-14cc-0915-b7933d093647@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=petri.latvala@intel.com \
    --cc=tvrtko.ursulin@intel.com \
    --cc=zbigniew.kempczynski@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.