Re: tools/gputop: Fix zero output when stdout is not a terminal

Purkait, Soham
2026-04-09T09:21:42Z

Hi Vidya,

On 07-04-2026 19:09, Vidya Srinivas wrote:
> When gputop output is redirected to a file or run via adb shell

This issue has nothing to do with its output redirection to anywhere. So
you can remove this statement.

> (e.g., on Android), update_console_size() calls ioctl(0, TIOCGWINSZ)
> on stdin which may not be a terminal. If stdin is a pipe or
> redirected, the ioctl returns -1 and con_w/con_h remain at their
> initial value of -1.
>
> This causes the main display loop to immediately break since
> lines >= con_h evaluates to true (0 >= -1), resulting in zero
> output being produced.
>
> Fix this by initializing con_w and con_h to default values of
> 80 and 50 respectively, so that when ioctl fails the display
> loop still produces output with sensible dimensions.
>
> v2: Try stdout, stdin, and stderr for terminal size before falling
> back to defaults (Soham Purkait)

Please remove this as it is not implemented.

Thanks & Regards,
Soham

>
> v3: Initialize defaults in main() instead of adding fallback logic
> in update_console_size() (Soham Purkait)
>
> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
> ---
> tools/gputop.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/gputop.c b/tools/gputop.c
> index 9b2e8cb6f..0ed5af456 100644
> --- a/tools/gputop.c
> +++ b/tools/gputop.c
> @@ -609,7 +609,7 @@ int main(int argc, char **argv)
> unsigned int period_us;
> struct igt_profiled_device *profiled_devices = NULL;
> struct igt_drm_clients *clients = NULL;
> - int con_w = -1, con_h = -1;
> + int con_w = 80, con_h = 50;
> int ret;
> long n;
>