Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "drm/amdkfd: SMI report dropped event count"

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>

+4 -29
+4 -23
drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
··· 42 42 struct rcu_head rcu; 43 43 pid_t pid; 44 44 bool suser; 45 - u32 drop_count; 46 45 }; 47 46 48 47 #define KFD_MAX_KFIFO_SIZE 8192 ··· 103 104 } 104 105 to_copy = min(size, to_copy); 105 106 ret = kfifo_out(&client->fifo, buf, to_copy); 107 + spin_unlock(&client->lock); 106 108 if (ret <= 0) { 107 - spin_unlock(&client->lock); 108 109 ret = -EAGAIN; 109 110 goto ret_err; 110 111 } 111 - 112 - if (client->drop_count) { 113 - char msg[KFD_SMI_EVENT_MSG_SIZE]; 114 - int len; 115 - 116 - len = snprintf(msg, sizeof(msg), "%x ", KFD_SMI_EVENT_DROPPED_EVENT); 117 - len += snprintf(msg + len, sizeof(msg) - len, 118 - KFD_EVENT_FMT_DROPPED_EVENT(ktime_get_boottime_ns(), 119 - client->pid, client->drop_count)); 120 - if (kfifo_avail(&client->fifo) >= len) { 121 - kfifo_in(&client->fifo, msg, len); 122 - client->drop_count = 0; 123 - } 124 - } 125 - 126 - spin_unlock(&client->lock); 127 112 128 113 ret = copy_to_user(user, buf, to_copy); 129 114 if (ret) { ··· 182 199 list_for_each_entry_rcu(client, &dev->smi_clients, list) { 183 200 if (!kfd_smi_ev_enabled(pid, client, smi_event)) 184 201 continue; 185 - 186 202 spin_lock(&client->lock); 187 - if (!client->drop_count && kfifo_avail(&client->fifo) >= len) { 203 + if (kfifo_avail(&client->fifo) >= len) { 188 204 kfifo_in(&client->fifo, event_msg, len); 189 205 wake_up_all(&client->wait_queue); 190 206 } else { 191 - client->drop_count++; 192 - pr_debug("smi_event(EventID: %u): no space left drop_count %d\n", 193 - smi_event, client->drop_count); 207 + pr_debug("smi_event(EventID: %u): no space left\n", 208 + smi_event); 194 209 } 195 210 spin_unlock(&client->lock); 196 211 }
-6
include/uapi/linux/kfd_ioctl.h
··· 530 530 KFD_SMI_EVENT_QUEUE_EVICTION = 9, 531 531 KFD_SMI_EVENT_QUEUE_RESTORE = 10, 532 532 KFD_SMI_EVENT_UNMAP_FROM_GPU = 11, 533 - KFD_SMI_EVENT_DROPPED_EVENT = 12, 534 533 535 534 /* 536 535 * max event number, as a flag bit to get events from all processes, ··· 610 611 * rw: 'W' for write page fault, 'R' for read page fault 611 612 * rescheduled: 'R' if the queue restore failed and rescheduled to try again 612 613 * error_code: migrate failure error code, 0 if no error 613 - * drop_count: how many events dropped when fifo is full 614 614 */ 615 615 #define KFD_EVENT_FMT_UPDATE_GPU_RESET(reset_seq_num, reset_cause)\ 616 616 "%x %s\n", (reset_seq_num), (reset_cause) ··· 644 646 #define KFD_EVENT_FMT_UNMAP_FROM_GPU(ns, pid, addr, size, node, unmap_trigger)\ 645 647 "%lld -%d @%lx(%lx) %x %d\n", (ns), (pid), (addr), (size),\ 646 648 (node), (unmap_trigger) 647 - 648 - #define KFD_EVENT_FMT_DROPPED_EVENT(ns, pid, drop_count)\ 649 - "%lld -%d %d\n", (ns), (pid), (drop_count) 650 - 651 649 652 650 /************************************************************************************************** 653 651 * CRIU IOCTLs (Checkpoint Restore In Userspace)