Commit 18c44fb6 authored by Pierre-Eric Pelloux-Prayer's avatar Pierre-Eric Pelloux-Prayer Committed by Philipp Stanner
Browse files

drm/debugfs: Output client_id in in drm_clients_info



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.

Geiven that client_id is a uint64_t, we use a %20llu printf format to
keep the output aligned (20 = digit count of the biggest uint64_t).

Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: default avatarPhilipp Stanner <phasta@kernel.org>
Link: https://lore.kernel.org/r/20250526125505.2360-2-pierre-eric.pelloux-prayer@amd.com
parent 6e76b312
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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 %20llu\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);
	}