]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/debugfs: Output client_id in in drm_clients_info
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Mon, 26 May 2025 12:54:43 +0000 (14:54 +0200)
committerPhilipp Stanner <phasta@kernel.org>
Wed, 28 May 2025 14:15:56 +0000 (16:15 +0200)
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: Christian König <christian.koenig@amd.com>
Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Philipp Stanner <phasta@kernel.org>
Link: https://lore.kernel.org/r/20250526125505.2360-2-pierre-eric.pelloux-prayer@amd.com
drivers/gpu/drm/drm_debugfs.c

index 3dfd8b34dceb7a5b8f11e3072a1eaef430869722..abceb28b23fc10b6a93715caa5a68cffae842c4a 100644 (file)
@@ -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);
        }