From: Christian König christian.koenig@amd.com
It's not used any more.
Signed-off-by: Christian König christian.koenig@amd.com --- amdgpu/amdgpu_cs.c | 10 ---------- amdgpu/amdgpu_internal.h | 3 --- 2 files changed, 13 deletions(-)
diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c index 41071fd..ae78a4c 100644 --- a/amdgpu/amdgpu_cs.c +++ b/amdgpu/amdgpu_cs.c @@ -58,10 +58,6 @@ int amdgpu_cs_ctx_create(amdgpu_device_handle dev,
gpu_context->dev = dev;
- r = pthread_mutex_init(&gpu_context->sequence_mutex, NULL); - if (r) - goto error; - /* Create the context */ memset(&args, 0, sizeof(args)); args.in.op = AMDGPU_CTX_OP_ALLOC_CTX; @@ -75,7 +71,6 @@ int amdgpu_cs_ctx_create(amdgpu_device_handle dev, return 0;
error: - pthread_mutex_destroy(&gpu_context->sequence_mutex); free(gpu_context); return r; } @@ -96,8 +91,6 @@ int amdgpu_cs_ctx_free(amdgpu_context_handle context) if (NULL == context) return -EINVAL;
- pthread_mutex_destroy(&context->sequence_mutex); - /* now deal with kernel side */ memset(&args, 0, sizeof(args)); args.in.op = AMDGPU_CTX_OP_FREE_CTX; @@ -195,8 +188,6 @@ static int amdgpu_cs_submit_one(amdgpu_context_handle context, chunk_data[i].ib_data.flags = ib->flags; }
- pthread_mutex_lock(&context->sequence_mutex); - if (user_fence) { i = cs.in.num_chunks++;
@@ -249,7 +240,6 @@ static int amdgpu_cs_submit_one(amdgpu_context_handle context, ibs_request->seq_no = cs.out.handle;
error_unlock: - pthread_mutex_unlock(&context->sequence_mutex); free(dependencies); return r; } diff --git a/amdgpu/amdgpu_internal.h b/amdgpu/amdgpu_internal.h index 7161db0..a6051ef 100644 --- a/amdgpu/amdgpu_internal.h +++ b/amdgpu/amdgpu_internal.h @@ -108,9 +108,6 @@ struct amdgpu_bo_list {
struct amdgpu_context { struct amdgpu_device *dev; - /** Mutex for accessing fences and to maintain command submissions - in good sequence. */ - pthread_mutex_t sequence_mutex; /* context id*/ uint32_t id; };
From: Christian König christian.koenig@amd.com
Fixes the same problem as "intel: Serialize drmPrimeFDToHandle with struct_mutex".
Signed-off-by: Christian König christian.koenig@amd.com --- amdgpu/amdgpu_bo.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c index dab3804..adf4253 100644 --- a/amdgpu/amdgpu_bo.c +++ b/amdgpu/amdgpu_bo.c @@ -289,6 +289,10 @@ int amdgpu_bo_import(amdgpu_device_handle dev, int dma_fd; uint64_t dma_buf_size = 0;
+ /* We must maintain a list of pairs <handle, bo>, so that we always + * return the same amdgpu_bo instance for the same handle. */ + pthread_mutex_lock(&dev->bo_table_mutex); + /* Convert a DMA buf handle to a KMS handle now. */ if (type == amdgpu_bo_handle_type_dma_buf_fd) { uint32_t handle; @@ -303,6 +307,7 @@ int amdgpu_bo_import(amdgpu_device_handle dev, /* Query the buffer size. */ size = lseek(shared_handle, 0, SEEK_END); if (size == (off_t)-1) { + pthread_mutex_unlock(&dev->bo_table_mutex); amdgpu_close_kms_handle(dev, handle); return -errno; } @@ -312,10 +317,6 @@ int amdgpu_bo_import(amdgpu_device_handle dev, shared_handle = handle; }
- /* We must maintain a list of pairs <handle, bo>, so that we always - * return the same amdgpu_bo instance for the same handle. */ - pthread_mutex_lock(&dev->bo_table_mutex); - /* If we have already created a buffer with this handle, find it. */ switch (type) { case amdgpu_bo_handle_type_gem_flink_name:
Both patches are Reviewed-by: Jammy Zhou Jammy.Zhou@amd.com
Regards, Jammy
-----Original Message----- From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Behalf Of Christian K?nig Sent: Monday, August 24, 2015 5:44 PM To: dri-devel@lists.freedesktop.org Subject: [PATCH 2/2] amdgpu: serialize drmPrimeFDToHandle
From: Christian König christian.koenig@amd.com
Fixes the same problem as "intel: Serialize drmPrimeFDToHandle with struct_mutex".
Signed-off-by: Christian König christian.koenig@amd.com --- amdgpu/amdgpu_bo.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c index dab3804..adf4253 100644 --- a/amdgpu/amdgpu_bo.c +++ b/amdgpu/amdgpu_bo.c @@ -289,6 +289,10 @@ int amdgpu_bo_import(amdgpu_device_handle dev, int dma_fd; uint64_t dma_buf_size = 0;
+ /* We must maintain a list of pairs <handle, bo>, so that we always + * return the same amdgpu_bo instance for the same handle. */ + pthread_mutex_lock(&dev->bo_table_mutex); + /* Convert a DMA buf handle to a KMS handle now. */ if (type == amdgpu_bo_handle_type_dma_buf_fd) { uint32_t handle; @@ -303,6 +307,7 @@ int amdgpu_bo_import(amdgpu_device_handle dev, /* Query the buffer size. */ size = lseek(shared_handle, 0, SEEK_END); if (size == (off_t)-1) { + pthread_mutex_unlock(&dev->bo_table_mutex); amdgpu_close_kms_handle(dev, handle); return -errno; } @@ -312,10 +317,6 @@ int amdgpu_bo_import(amdgpu_device_handle dev, shared_handle = handle; }
- /* We must maintain a list of pairs <handle, bo>, so that we always - * return the same amdgpu_bo instance for the same handle. */ - pthread_mutex_lock(&dev->bo_table_mutex); - /* If we have already created a buffer with this handle, find it. */ switch (type) { case amdgpu_bo_handle_type_gem_flink_name: -- 1.9.1
_______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
On Mon, Aug 24, 2015 at 9:55 AM, Zhou, Jammy Jammy.Zhou@amd.com wrote:
Both patches are Reviewed-by: Jammy Zhou Jammy.Zhou@amd.com
I pushed the series. thanks!
Alex
Regards, Jammy
-----Original Message----- From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Behalf Of Christian K?nig Sent: Monday, August 24, 2015 5:44 PM To: dri-devel@lists.freedesktop.org Subject: [PATCH 2/2] amdgpu: serialize drmPrimeFDToHandle
From: Christian König christian.koenig@amd.com
Fixes the same problem as "intel: Serialize drmPrimeFDToHandle with struct_mutex".
Signed-off-by: Christian König christian.koenig@amd.com
amdgpu/amdgpu_bo.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c index dab3804..adf4253 100644 --- a/amdgpu/amdgpu_bo.c +++ b/amdgpu/amdgpu_bo.c @@ -289,6 +289,10 @@ int amdgpu_bo_import(amdgpu_device_handle dev, int dma_fd; uint64_t dma_buf_size = 0;
/* We must maintain a list of pairs <handle, bo>, so that we always
* return the same amdgpu_bo instance for the same handle. */
pthread_mutex_lock(&dev->bo_table_mutex);
/* Convert a DMA buf handle to a KMS handle now. */ if (type == amdgpu_bo_handle_type_dma_buf_fd) { uint32_t handle;
@@ -303,6 +307,7 @@ int amdgpu_bo_import(amdgpu_device_handle dev, /* Query the buffer size. */ size = lseek(shared_handle, 0, SEEK_END); if (size == (off_t)-1) {
pthread_mutex_unlock(&dev->bo_table_mutex); amdgpu_close_kms_handle(dev, handle); return -errno; }
@@ -312,10 +317,6 @@ int amdgpu_bo_import(amdgpu_device_handle dev, shared_handle = handle; }
/* We must maintain a list of pairs <handle, bo>, so that we always
* return the same amdgpu_bo instance for the same handle. */
pthread_mutex_lock(&dev->bo_table_mutex);
/* If we have already created a buffer with this handle, find it. */ switch (type) { case amdgpu_bo_handle_type_gem_flink_name:
-- 1.9.1
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[CCing mesa-dev as mesa will need similar fixes]
Hi Christian,
On 24/08/15 10:43, Christian König wrote:
From: Christian König christian.koenig@amd.com
Fixes the same problem as "intel: Serialize drmPrimeFDToHandle with struct_mutex".
Signed-off-by: Christian König christian.koenig@amd.com
amdgpu/amdgpu_bo.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c index dab3804..adf4253 100644 --- a/amdgpu/amdgpu_bo.c +++ b/amdgpu/amdgpu_bo.c @@ -289,6 +289,10 @@ int amdgpu_bo_import(amdgpu_device_handle dev, int dma_fd; uint64_t dma_buf_size = 0;
- /* We must maintain a list of pairs <handle, bo>, so that we always
* return the same amdgpu_bo instance for the same handle. */
- pthread_mutex_lock(&dev->bo_table_mutex);
- /* Convert a DMA buf handle to a KMS handle now. */ if (type == amdgpu_bo_handle_type_dma_buf_fd) { uint32_t handle;
@@ -303,6 +307,7 @@ int amdgpu_bo_import(amdgpu_device_handle dev, /* Query the buffer size. */ size = lseek(shared_handle, 0, SEEK_END); if (size == (off_t)-1) {
}pthread_mutex_unlock(&dev->bo_table_mutex); amdgpu_close_kms_handle(dev, handle); return -errno;
@@ -312,10 +317,6 @@ int amdgpu_bo_import(amdgpu_device_handle dev, shared_handle = handle; }
- /* We must maintain a list of pairs <handle, bo>, so that we always
* return the same amdgpu_bo instance for the same handle. */
- pthread_mutex_lock(&dev->bo_table_mutex);
- /* If we have already created a buffer with this handle, find it. */ switch (type) { case amdgpu_bo_handle_type_gem_flink_name:
From a quick look radeon (radeon/radeon_bo_gem.c) will also need a
similar patch.
For consistency sake there are a few mesa users (I'm not suggesting that you should fix them).
src/gallium/drivers/vc4/vc4_bufmgr.c src/gallium/winsys/svga/drm/vmw_screen_dri.c src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c
Cheers, Emil
dri-devel@lists.freedesktop.org