diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1629-drm-amdkfd-Serialize-tlb-flush-on-KFD-side.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1629-drm-amdkfd-Serialize-tlb-flush-on-KFD-side.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1629-drm-amdkfd-Serialize-tlb-flush-on-KFD-side.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1629-drm-amdkfd-Serialize-tlb-flush-on-KFD-side.patch deleted file mode 100644 index 4303497d..00000000 --- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1629-drm-amdkfd-Serialize-tlb-flush-on-KFD-side.patch +++ /dev/null @@ -1,65 +0,0 @@ -From b5131c6bfd277705ec4b2f6ec7380d15a8214d95 Mon Sep 17 00:00:00 2001 -From: Shaoyun Liu <Shaoyun.Liu@amd.com> -Date: Tue, 14 Mar 2017 18:07:28 -0400 -Subject: [PATCH 1629/4131] drm/amdkfd: Serialize tlb flush on KFD side - -Change-Id: Id78f764a66c8a16d8c983afd3913d4ef9d06e014 -Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com> ---- - drivers/gpu/drm/amd/amdkfd/kfd_device.c | 2 ++ - drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 7 +++++++ - drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 ++ - 3 files changed, 11 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c -index e03fe90..d94ec24 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c -@@ -576,6 +576,8 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd, - - kfd->dbgmgr = NULL; - -+ spin_lock_init(&kfd->tlb_invalidation_lock); -+ - kfd->init_complete = true; - dev_info(kfd_device, "added device (%x:%x)\n", kfd->pdev->vendor, - kfd->pdev->device); -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c b/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c -index 49a2a53..1c1ec21 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c -@@ -433,6 +433,9 @@ void kfd_flush_tlb(struct kfd_dev *dev, uint32_t pasid) - /* Scan all registers in the range ATC_VMID8_PASID_MAPPING .. ATC_VMID15_PASID_MAPPING - * to check which VMID the current process is mapped to - * and flush TLB for this VMID if found*/ -+ if (dev->device_info->asic_family >= CHIP_VEGA10) -+ spin_lock(&dev->tlb_invalidation_lock); -+ - for (vmid = first_vmid_to_scan; vmid <= last_vmid_to_scan; vmid++) { - if (f2g->get_atc_vmid_pasid_mapping_valid( - dev->kgd, vmid)) { -@@ -446,4 +449,8 @@ void kfd_flush_tlb(struct kfd_dev *dev, uint32_t pasid) - } - } - } -+ -+ if (dev->device_info->asic_family >= CHIP_VEGA10) -+ spin_unlock(&dev->tlb_invalidation_lock); -+ - } -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -index 4962d7b..607b43f 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -@@ -255,6 +255,8 @@ struct kfd_dev { - unsigned int gtt_sa_chunk_size; - unsigned int gtt_sa_num_of_chunks; - -+ spinlock_t tlb_invalidation_lock; -+ - /* QCM Device instance */ - struct device_queue_manager *dqm; - --- -2.7.4 - |