]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Revert "drm/amdkfd: SMI report dropped event count"
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 21 Oct 2024 17:41:13 +0000 (13:41 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 22 Oct 2024 21:51:20 +0000 (17:51 -0400)
This reverts commit a3ab2d45b9887ee609cd3bea39f668236935774c.

The userspace side for this code is not ready yet so revert
for now.

Reviewed-by: Philip Yang <Philip.Yang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: Philip Yang <Philip.Yang@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
include/uapi/linux/kfd_ioctl.h

index c8d67d62ca3f675beef49fe8b55bd118b76cc6a7..9b8169761ec5be38090312b77bcbc8f85b20373f 100644 (file)
@@ -42,7 +42,6 @@ struct kfd_smi_client {
        struct rcu_head rcu;
        pid_t pid;
        bool suser;
-       u32 drop_count;
 };
 
 #define KFD_MAX_KFIFO_SIZE     8192
@@ -104,28 +103,12 @@ static ssize_t kfd_smi_ev_read(struct file *filep, char __user *user,
        }
        to_copy = min(size, to_copy);
        ret = kfifo_out(&client->fifo, buf, to_copy);
+       spin_unlock(&client->lock);
        if (ret <= 0) {
-               spin_unlock(&client->lock);
                ret = -EAGAIN;
                goto ret_err;
        }
 
-       if (client->drop_count) {
-               char msg[KFD_SMI_EVENT_MSG_SIZE];
-               int len;
-
-               len = snprintf(msg, sizeof(msg), "%x ", KFD_SMI_EVENT_DROPPED_EVENT);
-               len += snprintf(msg + len, sizeof(msg) - len,
-                               KFD_EVENT_FMT_DROPPED_EVENT(ktime_get_boottime_ns(),
-                               client->pid, client->drop_count));
-               if (kfifo_avail(&client->fifo) >= len) {
-                       kfifo_in(&client->fifo, msg, len);
-                       client->drop_count = 0;
-               }
-       }
-
-       spin_unlock(&client->lock);
-
        ret = copy_to_user(user, buf, to_copy);
        if (ret) {
                ret = -EFAULT;
@@ -199,15 +182,13 @@ static void add_event_to_kfifo(pid_t pid, struct kfd_node *dev,
        list_for_each_entry_rcu(client, &dev->smi_clients, list) {
                if (!kfd_smi_ev_enabled(pid, client, smi_event))
                        continue;
-
                spin_lock(&client->lock);
-               if (!client->drop_count && kfifo_avail(&client->fifo) >= len) {
+               if (kfifo_avail(&client->fifo) >= len) {
                        kfifo_in(&client->fifo, event_msg, len);
                        wake_up_all(&client->wait_queue);
                } else {
-                       client->drop_count++;
-                       pr_debug("smi_event(EventID: %u): no space left drop_count %d\n",
-                                smi_event, client->drop_count);
+                       pr_debug("smi_event(EventID: %u): no space left\n",
+                                       smi_event);
                }
                spin_unlock(&client->lock);
        }
index 7afd66d45313332b4ebb80eaa4e61b55acb43237..fa9f9846b88e4da137138e43aee854057fae93a7 100644 (file)
@@ -530,7 +530,6 @@ enum kfd_smi_event {
        KFD_SMI_EVENT_QUEUE_EVICTION = 9,
        KFD_SMI_EVENT_QUEUE_RESTORE = 10,
        KFD_SMI_EVENT_UNMAP_FROM_GPU = 11,
-       KFD_SMI_EVENT_DROPPED_EVENT = 12,
 
        /*
         * max event number, as a flag bit to get events from all processes,
@@ -611,7 +610,6 @@ struct kfd_ioctl_smi_events_args {
  *    rw: 'W' for write page fault, 'R' for read page fault
  *    rescheduled: 'R' if the queue restore failed and rescheduled to try again
  *    error_code: migrate failure error code, 0 if no error
- *    drop_count: how many events dropped when fifo is full
  */
 #define KFD_EVENT_FMT_UPDATE_GPU_RESET(reset_seq_num, reset_cause)\
                "%x %s\n", (reset_seq_num), (reset_cause)
@@ -647,10 +645,6 @@ struct kfd_ioctl_smi_events_args {
                "%lld -%d @%lx(%lx) %x %d\n", (ns), (pid), (addr), (size),\
                (node), (unmap_trigger)
 
-#define KFD_EVENT_FMT_DROPPED_EVENT(ns, pid, drop_count)\
-               "%lld -%d %d\n", (ns), (pid), (drop_count)
-
-
 /**************************************************************************************************
  * CRIU IOCTLs (Checkpoint Restore In Userspace)
  *