Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/src/core/runtime/isa.cpp 2024-07-19 23:55:42.477579901 -0000
- +++ b/src/core/runtime/isa.cpp 2024-07-19 23:55:42.477579903 -0000
- @@ -142,3 +142,4 @@ bool Isa::GetInfo(const hsa_isa_info_t &
- if (this->GetVersion() == Version(7, 0, 0) ||
- - this->GetVersion() == Version(8, 0, 1)) {
- + this->GetVersion() == Version(8, 0, 1) ||
- + this->GetVersion() == Version(8, 0, 3)) {
- profiles[1] = true;
- @@ -252,3 +253,5 @@ constexpr size_t hsa_name_size = 63;
- ISAREG_ENTRY_GEN("gfx802", 8, 0, 2, unsupported, unsupported, 64)
- - ISAREG_ENTRY_GEN("gfx803", 8, 0, 3, unsupported, unsupported, 64)
- + ISAREG_ENTRY_GEN("gfx803", 8, 0, 3, unsupported, any, 64)
- + ISAREG_ENTRY_GEN("gfx803:xnack-", 8, 0, 3, unsupported, disabled, 64)
- + ISAREG_ENTRY_GEN("gfx803:xnack+", 8, 0, 3, unsupported, enabled, 64)
- ISAREG_ENTRY_GEN("gfx805", 8, 0, 5, unsupported, unsupported, 64)
- @@ -348,3 +351,5 @@ constexpr size_t hsa_name_size = 63;
- ISAREG_ENTRY_GEN("gfx1102", 11, 0, 2, unsupported, unsupported, 32)
- - ISAREG_ENTRY_GEN("gfx1103", 11, 0, 3, unsupported, unsupported, 32)
- + ISAREG_ENTRY_GEN("gfx1103", 11, 0, 3, unsupported, any, 32)
- + ISAREG_ENTRY_GEN("gfx1103:xnack-", 11, 0, 3, unsupported, disabled, 32)
- + ISAREG_ENTRY_GEN("gfx1103:xnack+", 11, 0, 3, unsupported, enabled, 32)
- ISAREG_ENTRY_GEN("gfx1150", 11, 5, 0, unsupported, unsupported, 32)
- --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c 2024-07-19 23:28:10.520865455 -0000
- +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c 2024-07-19 23:28:10.520865456 -0000
- @@ -58,8 +58,8 @@ static struct workqueue_struct *kfd_proc
- -/* Ordered, single-threaded workqueue for restoring evicted
- - * processes. Restoring multiple processes concurrently under memory
- - * pressure can lead to processes blocking each other from validating
- - * their BOs and result in a live-lock situation where processes
- - * remain evicted indefinitely.
- - */
- + /* Ordered, single-threaded workqueue for restoring evicted
- + * processes. Restoring multiple processes concurrently under memory
- + * pressure can lead to processes blocking each other from validating
- + * their BOs and result in a live-lock situation where processes
- + * remain evicted indefinitely.
- + */
- static struct workqueue_struct *kfd_restore_wq;
- @@ -1420,8 +1420,2 @@ bool kfd_process_xnack_mode(struct kfd_p
- - /* Only consider GFXv9 and higher GPUs. Older GPUs don't
- - * support the SVM APIs and don't need to be considered
- - * for the XNACK mode selection.
- - */
- - if (!KFD_IS_SOC15(dev))
- - continue;
- /* Aldebaran can always support XNACK because it can support
- @@ -1438,12 +1432,17 @@ bool kfd_process_xnack_mode(struct kfd_p
- - /* GFXv10 and later GPUs do not support shader preemption
- - * during page faults. This can lead to poor QoS for queue
- - * management and memory-manager-related preemptions or
- - * even deadlocks.
- - */
- - if (KFD_GC_VERSION(dev) >= IP_VERSION(10, 1, 1))
- - return false;
- -
- - if (dev->kfd->noretry)
- + if (KFD_GC_VERSION(dev) >= IP_VERSION(8, 0, 0)) {
- + pr_warn("AMD GPUs do not properly support shader preemption");
- + pr_warn(" during page faults.\n");
- + pr_warn("This may lead to poor QoS for queue management or");
- + pr_warn(" memory-manager-related preemptions and deadlocks.\n");
- + }
- +
- + if (dev->kfd->noretry) {
- + pr_err("Xnack requires noretry be disabled!\n");
- + pr_err("Via kernel cmdline: amdgpu.noretry=0\n");
- + pr_err("During module loading: printf 'options amdgpu noretry=0'");
- + pr_err(" >>/etc/modprobe.d/amdgpu.conf\n");
- + pr_err("Manually: sudo printf 0 >/sys/module/amdgpu/parameters/noretry\n");
- return false;
- + }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement