Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Kamil Konieczny <kamil.konieczny@linux.intel.com>,
	igt-dev@lists.freedesktop.org, Intel-gfx@lists.freedesktop.org,
	Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 4/4] tools/intel_gpu_top: Handle narrow terminals more gracefully
Date: Wed, 11 Oct 2023 09:22:36 +0100	[thread overview]
Message-ID: <7c36db01-1534-535a-c1ce-71369bc5405a@linux.intel.com> (raw)
In-Reply-To: <20231010164336.dikudseydggrrux7@kamilkon-desk.igk.intel.com>


On 10/10/2023 17:43, Kamil Konieczny wrote:
> Hi Tvrtko,
> On 2023-10-10 at 12:07:14 +0100, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> Instead of asserting just skip trying to print columns when terminal is
>> too narrow.
>>
>> At the same time fix some type confusion to fix calculations going huge.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> Closes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/143
> 
> Did you tested this in screensaver? I mean running intel_gpu_top
> in terminal windows under X (Gnome or other) and leaving desktop
> unattanded, entering screen saver mode (possible with screen
> turned off) and then re-enabling screen?

I tested it by resizing the terminal to crazy small dimensions and 
confirmed asserts and endless printing of spaces failure modes are 
fixed. Also under the screen lock.

But no DPMS and no console screensavers.

> 
>> ---
>>   tools/intel_gpu_top.c | 12 +++++++-----
>>   1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
>> index 472ce3f13ba9..6d1397cb8214 100644
>> --- a/tools/intel_gpu_top.c
>> +++ b/tools/intel_gpu_top.c
>> @@ -926,7 +926,7 @@ static void free_display_clients(struct igt_drm_clients *clients)
>>   	free(clients);
>>   }
>>   
>> -static unsigned int n_spaces(const unsigned int n)
>> +static int n_spaces(const int n)
> --------- ^^^
> Could you make it int at your first patch touching this function?

Honestly no, can't be bothered to churn this too much. I think argument 
can be made that this patch is fixing type confusion in many places so 
hopefully you can accept it as is.

Regards,

Tvrtko

> 
> With or without this suggestion,
> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> 
> Regards,
> Kamil
> 
>>   {
>>   	static const char *spaces[] = {
>>   		" ",
>> @@ -950,7 +950,7 @@ static unsigned int n_spaces(const unsigned int n)
>>   		"                   ",
>>   #define MAX_SPACES 19
>>   	};
>> -	unsigned int i, r = n;
>> +	int i, r = n;
>>   
>>   	while (r) {
>>   		if (r > MAX_SPACES)
>> @@ -972,7 +972,8 @@ print_percentage_bar(double percent, double max, int max_len, bool numeric)
>>   	int bar_len, i, len = max_len - 2;
>>   	const int w = 8;
>>   
>> -	assert(max_len > 0);
>> +	if (len < 2) /* For edge lines '|' */
>> +		return;
>>   
>>   	bar_len = ceil(w * percent * len / max);
>>   	if (bar_len > w * len)
>> @@ -986,6 +987,8 @@ print_percentage_bar(double percent, double max, int max_len, bool numeric)
>>   		printf("%s", bars[i]);
>>   
>>   	len -= (bar_len + (w - 1)) / w;
>> +	if (len < 1)
>> +		return;
>>   	n_spaces(len);
>>   
>>   	putchar('|');
>> @@ -2001,8 +2004,7 @@ print_clients_header(struct igt_drm_clients *clients, int lines,
>>   				 4 : clients->max_name_len; /* At least "NAME" */
>>   
>>   	if (output_mode == INTERACTIVE) {
>> -		unsigned int num_active = 0;
>> -		int len;
>> +		int len, num_active = 0;
>>   
>>   		if (lines++ >= con_h)
>>   			return lines;
>> -- 
>> 2.39.2
>>

  reply	other threads:[~2023-10-11  8:22 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-10 11:07 [igt-dev] [PATCH i-g-t 0/4] Fix various intel_gpu_top UI layout issues Tvrtko Ursulin
2023-10-10 11:07 ` [igt-dev] [PATCH i-g-t 1/4] tools/intel_gpu_top: Fix clients header width when no clients Tvrtko Ursulin
2023-10-10 16:30   ` [igt-dev] [Intel-gfx] " Kamil Konieczny
2023-10-10 11:07 ` [igt-dev] [PATCH i-g-t 2/4] tools/intel_gpu_top: Fix client layout on first sample period Tvrtko Ursulin
2023-10-10 16:31   ` Kamil Konieczny
2023-10-10 11:07 ` [igt-dev] [PATCH i-g-t 3/4] tools/intel_gpu_top: Optimise interactive display a bit Tvrtko Ursulin
2023-10-10 16:35   ` [igt-dev] [Intel-gfx] " Kamil Konieczny
2023-10-11  8:28     ` [igt-dev] " Tvrtko Ursulin
2023-10-10 11:07 ` [igt-dev] [PATCH i-g-t 4/4] tools/intel_gpu_top: Handle narrow terminals more gracefully Tvrtko Ursulin
2023-10-10 16:43   ` [igt-dev] [Intel-gfx] " Kamil Konieczny
2023-10-11  8:22     ` Tvrtko Ursulin [this message]
2023-10-11  8:31       ` Tvrtko Ursulin
2023-10-10 11:56 ` [igt-dev] ✗ Fi.CI.BAT: failure for Fix various intel_gpu_top UI layout issues Patchwork
2023-10-10 12:25 ` [igt-dev] ✗ CI.xeBAT: " Patchwork
2023-10-11 13:29 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix various intel_gpu_top UI layout issues (rev2) Patchwork
2023-10-11 14:28 ` [igt-dev] ✓ CI.xeBAT: " Patchwork
2023-10-12  3:48 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

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=7c36db01-1534-535a-c1ce-71369bc5405a@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=Intel-gfx@lists.freedesktop.org \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=kamil.konieczny@linux.intel.com \
    --cc=tvrtko.ursulin@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox