From: Ramesh Errabolu <Ramesh.Errabolu@amd.com>
To: amd-gfx@lists.freedesktop.org
Cc: Ramesh Errabolu <Ramesh.Errabolu@amd.com>
Subject: [PATCH 1/2] drm/amdgpu: Enable pinning of a BO and building an sg_table off of it as separate peer services
Date: Thu, 28 Jan 2021 20:49:24 -0600 [thread overview]
Message-ID: <20210129024924.3353-1-Ramesh.Errabolu@amd.com> (raw)
[Why]
Enable users to determine the use and sequencing of these services.
Not all uses of pinning need to be followed by building of sg_table
[How]
Rename and refactor the implementaions of gpuvm_pin_get_sgtable() and
gpuvm_unpin_put_sgtable() apis in gpuvm.c
Signed-off-by: Ramesh Errabolu <Ramesh.Errabolu@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 12 ++++++----
.../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 23 ++++---------------
2 files changed, 12 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
index 8013470d7c8d..92860b16c14b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
@@ -249,11 +249,13 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *process_info,
int amdgpu_amdkfd_gpuvm_get_vm_fault_info(struct kgd_dev *kgd,
struct kfd_vm_fault_info *info);
-int amdgpu_amdkfd_gpuvm_pin_get_sg_table(struct kgd_dev *kgd,
- struct kgd_mem *mem, uint64_t offset,
- uint64_t size, struct sg_table **ret_sg);
-void amdgpu_amdkfd_gpuvm_unpin_put_sg_table(
- struct kgd_mem *mem, struct sg_table *sg);
+int amdgpu_amdkfd_gpuvm_pin_bo(struct kgd_mem *mem);
+void amdgpu_amdkfd_gpuvm_unpin_bo(struct kgd_mem *mem);
+
+int amdgpu_amdkfd_gpuvm_get_sg_table(struct kgd_dev *kgd, struct kgd_mem *mem,
+ uint64_t offset, uint64_t size, struct sg_table **ret_sg);
+void amdgpu_amdkfd_gpuvm_put_sg_table(struct sg_table *sg);
+
int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd,
struct dma_buf *dmabuf,
struct kfd_ipc_obj *ipc_obj,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index 702cad576728..0d1984357451 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -1726,7 +1726,7 @@ int amdgpu_amdkfd_gpuvm_get_vm_fault_info(struct kgd_dev *kgd,
return 0;
}
-static int pin_bo_wo_map(struct kgd_mem *mem)
+int amdgpu_amdkfd_gpuvm_pin_bo(struct kgd_mem *mem)
{
struct amdgpu_bo *bo = mem->bo;
int ret = 0;
@@ -1742,7 +1742,7 @@ static int pin_bo_wo_map(struct kgd_mem *mem)
return ret;
}
-static void unpin_bo_wo_map(struct kgd_mem *mem)
+void amdgpu_amdkfd_gpuvm_unpin_bo(struct kgd_mem *mem)
{
struct amdgpu_bo *bo = mem->bo;
int ret = 0;
@@ -1852,33 +1852,20 @@ static int get_sg_table(struct amdgpu_device *adev,
return ret;
}
-int amdgpu_amdkfd_gpuvm_pin_get_sg_table(struct kgd_dev *kgd,
+int amdgpu_amdkfd_gpuvm_get_sg_table(struct kgd_dev *kgd,
struct kgd_mem *mem, uint64_t offset,
uint64_t size, struct sg_table **ret_sg)
{
- int ret;
struct amdgpu_device *adev;
- ret = pin_bo_wo_map(mem);
- if (unlikely(ret))
- return ret;
-
adev = get_amdgpu_device(kgd);
-
- ret = get_sg_table(adev, mem, offset, size, ret_sg);
- if (ret)
- unpin_bo_wo_map(mem);
-
- return ret;
+ return get_sg_table(adev, mem, offset, size, ret_sg);
}
-void amdgpu_amdkfd_gpuvm_unpin_put_sg_table(
- struct kgd_mem *mem, struct sg_table *sg)
+void amdgpu_amdkfd_gpuvm_put_sg_table(struct sg_table *sg)
{
sg_free_table(sg);
kfree(sg);
-
- unpin_bo_wo_map(mem);
}
int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd,
--
2.29.2
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
reply other threads:[~2021-01-29 2:49 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210129024924.3353-1-Ramesh.Errabolu@amd.com \
--to=ramesh.errabolu@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.