diff options
author | Felix Kuehling | 2017-10-28 01:35:27 +0200 |
---|---|---|
committer | Oded Gabbay | 2017-10-28 01:35:27 +0200 |
commit | 482f07775cf559c82cb3d086e3c4fad91582e4cb (patch) | |
tree | 3102aa334ea6bfb9d70594984eb0cd5210161aa8 /drivers/gpu/drm/amd/amdkfd/kfd_priv.h | |
parent | drm/amdkfd: Simplify events page allocator (diff) | |
download | kernel-qcow2-linux-482f07775cf559c82cb3d086e3c4fad91582e4cb.tar.gz kernel-qcow2-linux-482f07775cf559c82cb3d086e3c4fad91582e4cb.tar.xz kernel-qcow2-linux-482f07775cf559c82cb3d086e3c4fad91582e4cb.zip |
drm/amdkfd: Simplify event ID and signal slot management
Signal slots are identical to event IDs.
Replace the used_slot_bitmap and events hash table with an IDR to
allocate and lookup event IDs and signal slots more efficiently.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_priv.h')
-rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h index c1b3ee22faed..ebae8e1891d2 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h @@ -31,6 +31,7 @@ #include <linux/workqueue.h> #include <linux/spinlock.h> #include <linux/kfd_ioctl.h> +#include <linux/idr.h> #include <kgd_kfd_interface.h> #include "amd_shared.h" @@ -538,11 +539,10 @@ struct kfd_process { /* Event-related data */ struct mutex event_mutex; - /* All events in process hashed by ID, linked on kfd_event.events. */ - DECLARE_HASHTABLE(events, 4); + /* Event ID allocator and lookup */ + struct idr event_idr; /* Event page */ struct kfd_signal_page *signal_page; - u32 next_nonsignal_event_id; size_t signal_event_count; bool signal_event_limit_reached; }; |