Skip to content

Commit

Permalink
Revert "drm/amdkfd: SMI report dropped event count"
Browse files Browse the repository at this point in the history
This reverts commit a3ab2d4.

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>
  • Loading branch information
Alex Deucher committed Oct 22, 2024
1 parent 32e7ee2 commit 97ddae7
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 29 deletions.
27 changes: 4 additions & 23 deletions drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
Expand Down
6 changes: 0 additions & 6 deletions include/uapi/linux/kfd_ioctl.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
*
Expand Down

0 comments on commit 97ddae7

Please sign in to comment.