diff mbox series

[v6,1/7] drm/debugfs: output client_id in in drm_clients_info

Message ID 20241114100113.150647-2-pierre-eric.pelloux-prayer@amd.com (mailing list archive)
State New, archived
Headers show
Series Improve gpu_scheduler trace events + uAPI | expand

Commit Message

Pierre-Eric Pelloux-Prayer Nov. 14, 2024, 10:01 a.m. UTC
client_id is a unique id used by fdinfo. Having it listed in 'clients'
output means a userspace application can correlate the fields, eg:
given a fdinfo id get the fdinfo name.

Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
---
 drivers/gpu/drm/drm_debugfs.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Philipp Stanner Nov. 15, 2024, 2:49 p.m. UTC | #1
On Thu, 2024-11-14 at 11:01 +0100, Pierre-Eric Pelloux-Prayer wrote:
> client_id is a unique id used by fdinfo. Having it listed in
> 'clients'
> output means a userspace application can correlate the fields, eg:
> given a fdinfo id get the fdinfo name.
> 
> Signed-off-by: Pierre-Eric Pelloux-Prayer
> <pierre-eric.pelloux-prayer@amd.com>
> ---
>  drivers/gpu/drm/drm_debugfs.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_debugfs.c
> b/drivers/gpu/drm/drm_debugfs.c
> index 536409a35df4..4c0bd0cb5480 100644
> --- a/drivers/gpu/drm/drm_debugfs.c
> +++ b/drivers/gpu/drm/drm_debugfs.c
> @@ -77,14 +77,15 @@ static int drm_clients_info(struct seq_file *m,
> void *data)
>  	kuid_t uid;
>  
>  	seq_printf(m,
> -		   "%20s %5s %3s master a %5s %10s %*s\n",
> +		   "%20s %5s %3s master a %5s %10s %*s %20s\n",
>  		   "command",
>  		   "tgid",
>  		   "dev",
>  		   "uid",
>  		   "magic",
>  		   DRM_CLIENT_NAME_MAX_LEN,
> -		   "name");
> +		   "name",
> +		   "id");
>  
>  	/* dev->filelist is sorted youngest first, but we want to
> present
>  	 * oldest first (i.e. kernel, servers, clients), so walk
> backwardss.
> @@ -100,7 +101,7 @@ static int drm_clients_info(struct seq_file *m,
> void *data)
>  		pid = rcu_dereference(priv->pid);
>  		task = pid_task(pid, PIDTYPE_TGID);
>  		uid = task ? __task_cred(task)->euid :
> GLOBAL_ROOT_UID;
> -		seq_printf(m, "%20s %5d %3d   %c    %c %5d %10u
> %*s\n",
> +		seq_printf(m, "%20s %5d %3d   %c    %c %5d %10u %*s
> %20lld\n",
>  			   task ? task->comm : "<unknown>",
>  			   pid_vnr(pid),
>  			   priv->minor->index,
> @@ -109,7 +110,8 @@ static int drm_clients_info(struct seq_file *m,
> void *data)
>  			   from_kuid_munged(seq_user_ns(m), uid),
>  			   priv->magic,
>  			   DRM_CLIENT_NAME_MAX_LEN,
> -			   priv->client_name ? priv->client_name :
> "<unset>");
> +			   priv->client_name ? priv->client_name :
> "<unset>",
> +			   priv->client_id);

Similarly to Tvrtko's comment on the other patch: drm_file.client_id is
a u64, so we don't have to print it signed with %20lld, do we?

P.

>  		rcu_read_unlock();
>  		mutex_unlock(&priv->client_name_lock);
>  	}
diff mbox series

Patch

diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index 536409a35df4..4c0bd0cb5480 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -77,14 +77,15 @@  static int drm_clients_info(struct seq_file *m, void *data)
 	kuid_t uid;
 
 	seq_printf(m,
-		   "%20s %5s %3s master a %5s %10s %*s\n",
+		   "%20s %5s %3s master a %5s %10s %*s %20s\n",
 		   "command",
 		   "tgid",
 		   "dev",
 		   "uid",
 		   "magic",
 		   DRM_CLIENT_NAME_MAX_LEN,
-		   "name");
+		   "name",
+		   "id");
 
 	/* dev->filelist is sorted youngest first, but we want to present
 	 * oldest first (i.e. kernel, servers, clients), so walk backwardss.
@@ -100,7 +101,7 @@  static int drm_clients_info(struct seq_file *m, void *data)
 		pid = rcu_dereference(priv->pid);
 		task = pid_task(pid, PIDTYPE_TGID);
 		uid = task ? __task_cred(task)->euid : GLOBAL_ROOT_UID;
-		seq_printf(m, "%20s %5d %3d   %c    %c %5d %10u %*s\n",
+		seq_printf(m, "%20s %5d %3d   %c    %c %5d %10u %*s %20lld\n",
 			   task ? task->comm : "<unknown>",
 			   pid_vnr(pid),
 			   priv->minor->index,
@@ -109,7 +110,8 @@  static int drm_clients_info(struct seq_file *m, void *data)
 			   from_kuid_munged(seq_user_ns(m), uid),
 			   priv->magic,
 			   DRM_CLIENT_NAME_MAX_LEN,
-			   priv->client_name ? priv->client_name : "<unset>");
+			   priv->client_name ? priv->client_name : "<unset>",
+			   priv->client_id);
 		rcu_read_unlock();
 		mutex_unlock(&priv->client_name_lock);
 	}