* [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace
@ 2017-10-24 13:55 Christian König
2017-10-24 13:55 ` [PATCH 2/2] dma-buf: try to replace a signaled fence in reservation_object_add_shared_inplace Christian König
2017-10-25 6:42 ` [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace Chunming Zhou
0 siblings, 2 replies; 7+ messages in thread
From: Christian König @ 2017-10-24 13:55 UTC (permalink / raw)
To: sumit.semwal, dri-devel, amd-gfx, zhoucm1
From: Christian König <christian.koenig@amd.com>
The amdgpu issue to also need signaled fences in the reservation objects
should be fixed by now.
Optimize the list by keeping only the not signaled yet fences around.
Signed-off-by: Christian König <christian.koenig@amd.com>
---
drivers/dma-buf/reservation.c | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c
index b44d9d7db347..4ede77d1bb31 100644
--- a/drivers/dma-buf/reservation.c
+++ b/drivers/dma-buf/reservation.c
@@ -145,8 +145,8 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
struct reservation_object_list *fobj,
struct dma_fence *fence)
{
- unsigned i;
struct dma_fence *old_fence = NULL;
+ unsigned i, j, k;
dma_fence_get(fence);
@@ -162,9 +162,7 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
* references from the old struct are carried over to
* the new.
*/
- fobj->shared_count = old->shared_count;
-
- for (i = 0; i < old->shared_count; ++i) {
+ for (i = 0, j = 0, k = old->shared_count; i < old->shared_count; ++i) {
struct dma_fence *check;
check = rcu_dereference_protected(old->shared[i],
@@ -172,10 +170,14 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
if (!old_fence && check->context == fence->context) {
old_fence = check;
- RCU_INIT_POINTER(fobj->shared[i], fence);
- } else
- RCU_INIT_POINTER(fobj->shared[i], check);
+ RCU_INIT_POINTER(fobj->shared[j++], fence);
+ } else if (!dma_fence_is_signaled(check)) {
+ RCU_INIT_POINTER(fobj->shared[j++], check);
+ } else {
+ RCU_INIT_POINTER(fobj->shared[--k], check);
+ }
}
+ fobj->shared_count = j;
if (!old_fence) {
RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence);
fobj->shared_count++;
@@ -192,10 +194,19 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
write_seqcount_end(&obj->seq);
preempt_enable();
- if (old)
- kfree_rcu(old, rcu);
-
dma_fence_put(old_fence);
+
+ if (!old)
+ return;
+
+ for (i = fobj->shared_count; i < old->shared_count; ++i) {
+ struct dma_fence *f;
+
+ f = rcu_dereference_protected(fobj->shared[i],
+ reservation_object_held(obj));
+ dma_fence_put(f);
+ }
+ kfree_rcu(old, rcu);
}
/**
--
2.11.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] dma-buf: try to replace a signaled fence in reservation_object_add_shared_inplace
2017-10-24 13:55 [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace Christian König
@ 2017-10-24 13:55 ` Christian König
2017-10-25 6:42 ` [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace Chunming Zhou
1 sibling, 0 replies; 7+ messages in thread
From: Christian König @ 2017-10-24 13:55 UTC (permalink / raw)
To: sumit.semwal, dri-devel, amd-gfx, zhoucm1
From: Christian König <christian.koenig@amd.com>
The amdgpu issue to also need signaled fences in the reservation objects should
be fixed by now.
Optimize the handling by replacing a signaled fence when adding a new
shared one.
Signed-off-by: Christian König <christian.koenig@amd.com>
---
drivers/dma-buf/reservation.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c
index 4ede77d1bb31..702ef03a923a 100644
--- a/drivers/dma-buf/reservation.c
+++ b/drivers/dma-buf/reservation.c
@@ -104,7 +104,8 @@ reservation_object_add_shared_inplace(struct reservation_object *obj,
struct reservation_object_list *fobj,
struct dma_fence *fence)
{
- u32 i;
+ struct dma_fence *signaled = NULL;
+ u32 i, signaled_idx;
dma_fence_get(fence);
@@ -126,17 +127,28 @@ reservation_object_add_shared_inplace(struct reservation_object *obj,
dma_fence_put(old_fence);
return;
}
+
+ if (!signaled && dma_fence_is_signaled(old_fence)) {
+ signaled = old_fence;
+ signaled_idx = i;
+ }
}
/*
* memory barrier is added by write_seqcount_begin,
* fobj->shared_count is protected by this lock too
*/
- RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence);
- fobj->shared_count++;
+ if (signaled) {
+ RCU_INIT_POINTER(fobj->shared[signaled_idx], fence);
+ } else {
+ RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence);
+ fobj->shared_count++;
+ }
write_seqcount_end(&obj->seq);
preempt_enable();
+
+ dma_fence_put(signaled);
}
static void
--
2.11.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace
2017-10-24 13:55 [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace Christian König
2017-10-24 13:55 ` [PATCH 2/2] dma-buf: try to replace a signaled fence in reservation_object_add_shared_inplace Christian König
@ 2017-10-25 6:42 ` Chunming Zhou
[not found] ` <5985440d-0928-31c1-4044-0e4ce3385f91-5C7GfCeVMHo@public.gmane.org>
1 sibling, 1 reply; 7+ messages in thread
From: Chunming Zhou @ 2017-10-25 6:42 UTC (permalink / raw)
To: Christian König, sumit.semwal, dri-devel, amd-gfx
On 2017年10月24日 21:55, Christian König wrote:
> From: Christian König <christian.koenig@amd.com>
>
> The amdgpu issue to also need signaled fences in the reservation objects
> should be fixed by now.
>
> Optimize the list by keeping only the not signaled yet fences around.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
> drivers/dma-buf/reservation.c | 31 +++++++++++++++++++++----------
> 1 file changed, 21 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c
> index b44d9d7db347..4ede77d1bb31 100644
> --- a/drivers/dma-buf/reservation.c
> +++ b/drivers/dma-buf/reservation.c
> @@ -145,8 +145,8 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
> struct reservation_object_list *fobj,
> struct dma_fence *fence)
> {
> - unsigned i;
> struct dma_fence *old_fence = NULL;
> + unsigned i, j, k;
>
> dma_fence_get(fence);
>
> @@ -162,9 +162,7 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
> * references from the old struct are carried over to
> * the new.
> */
> - fobj->shared_count = old->shared_count;
> -
> - for (i = 0; i < old->shared_count; ++i) {
> + for (i = 0, j = 0, k = old->shared_count; i < old->shared_count; ++i) {
> struct dma_fence *check;
>
> check = rcu_dereference_protected(old->shared[i],
> @@ -172,10 +170,14 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
>
> if (!old_fence && check->context == fence->context) {
> old_fence = check;
> - RCU_INIT_POINTER(fobj->shared[i], fence);
> - } else
> - RCU_INIT_POINTER(fobj->shared[i], check);
> + RCU_INIT_POINTER(fobj->shared[j++], fence);
> + } else if (!dma_fence_is_signaled(check)) {
> + RCU_INIT_POINTER(fobj->shared[j++], check);
> + } else {
> + RCU_INIT_POINTER(fobj->shared[--k], check);
> + }
> }
> + fobj->shared_count = j;
> if (!old_fence) {
> RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence);
Here there is a memory leak for signaled fence slots, since you re-order
the slots, the j'th slot is storing signaled fence, there is no place to
put it when you assign to new one.
you cam move it to end or put it here first.
Regards,
David Zhou
> fobj->shared_count++;
> @@ -192,10 +194,19 @@ reservation_object_add_shared_replace(struct reservation_object *obj,
> write_seqcount_end(&obj->seq);
> preempt_enable();
>
> - if (old)
> - kfree_rcu(old, rcu);
> -
> dma_fence_put(old_fence);
> +
> + if (!old)
> + return;
> +
> + for (i = fobj->shared_count; i < old->shared_count; ++i) {
> + struct dma_fence *f;
> +
> + f = rcu_dereference_protected(fobj->shared[i],
> + reservation_object_held(obj));
> + dma_fence_put(f);
> + }
> + kfree_rcu(old, rcu);
> }
>
> /**
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace
[not found] ` <5985440d-0928-31c1-4044-0e4ce3385f91-5C7GfCeVMHo@public.gmane.org>
@ 2017-10-25 7:28 ` Christian König
2017-10-31 7:26 ` Chunming Zhou
0 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2017-10-25 7:28 UTC (permalink / raw)
To: Chunming Zhou, sumit.semwal-QSEj5FYQhm4dnm+yROfE0A,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Am 25.10.2017 um 08:42 schrieb Chunming Zhou:
>
>
> On 2017年10月24日 21:55, Christian König wrote:
>> From: Christian König <christian.koenig@amd.com>
>>
>> The amdgpu issue to also need signaled fences in the reservation objects
>> should be fixed by now.
>>
>> Optimize the list by keeping only the not signaled yet fences around.
>>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> ---
>> drivers/dma-buf/reservation.c | 31 +++++++++++++++++++++----------
>> 1 file changed, 21 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/dma-buf/reservation.c
>> b/drivers/dma-buf/reservation.c
>> index b44d9d7db347..4ede77d1bb31 100644
>> --- a/drivers/dma-buf/reservation.c
>> +++ b/drivers/dma-buf/reservation.c
>> @@ -145,8 +145,8 @@ reservation_object_add_shared_replace(struct
>> reservation_object *obj,
>> struct reservation_object_list *fobj,
>> struct dma_fence *fence)
>> {
>> - unsigned i;
>> struct dma_fence *old_fence = NULL;
>> + unsigned i, j, k;
>> dma_fence_get(fence);
>> @@ -162,9 +162,7 @@ reservation_object_add_shared_replace(struct
>> reservation_object *obj,
>> * references from the old struct are carried over to
>> * the new.
>> */
>> - fobj->shared_count = old->shared_count;
>> -
>> - for (i = 0; i < old->shared_count; ++i) {
>> + for (i = 0, j = 0, k = old->shared_count; i < old->shared_count;
>> ++i) {
>> struct dma_fence *check;
>> check = rcu_dereference_protected(old->shared[i],
>> @@ -172,10 +170,14 @@ reservation_object_add_shared_replace(struct
>> reservation_object *obj,
>> if (!old_fence && check->context == fence->context) {
>> old_fence = check;
>> - RCU_INIT_POINTER(fobj->shared[i], fence);
>> - } else
>> - RCU_INIT_POINTER(fobj->shared[i], check);
>> + RCU_INIT_POINTER(fobj->shared[j++], fence);
>> + } else if (!dma_fence_is_signaled(check)) {
>> + RCU_INIT_POINTER(fobj->shared[j++], check);
>> + } else {
>> + RCU_INIT_POINTER(fobj->shared[--k], check);
>> + }
>> }
>> + fobj->shared_count = j;
>> if (!old_fence) {
>> RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence);
> Here there is a memory leak for signaled fence slots, since you
> re-order the slots, the j'th slot is storing signaled fence, there is
> no place to put it when you assign to new one.
> you cam move it to end or put it here first.
Good point, thanks. Going to respin.
Regards,
Christian.
>
> Regards,
> David Zhou
>> fobj->shared_count++;
>> @@ -192,10 +194,19 @@ reservation_object_add_shared_replace(struct
>> reservation_object *obj,
>> write_seqcount_end(&obj->seq);
>> preempt_enable();
>> - if (old)
>> - kfree_rcu(old, rcu);
>> -
>> dma_fence_put(old_fence);
>> +
>> + if (!old)
>> + return;
>> +
>> + for (i = fobj->shared_count; i < old->shared_count; ++i) {
>> + struct dma_fence *f;
>> +
>> + f = rcu_dereference_protected(fobj->shared[i],
>> + reservation_object_held(obj));
>> + dma_fence_put(f);
>> + }
>> + kfree_rcu(old, rcu);
>> }
>> /**
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace
2017-10-25 7:28 ` Christian König
@ 2017-10-31 7:26 ` Chunming Zhou
[not found] ` <ef041966-340b-1ac0-a658-c4e2693a03c2-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Chunming Zhou @ 2017-10-31 7:26 UTC (permalink / raw)
To: christian.koenig, sumit.semwal, dri-devel, amd-gfx
Any update?
On 2017年10月25日 15:28, Christian König wrote:
> Am 25.10.2017 um 08:42 schrieb Chunming Zhou:
>>
>>
>> On 2017年10月24日 21:55, Christian König wrote:
>>> From: Christian König <christian.koenig@amd.com>
>>>
>>> The amdgpu issue to also need signaled fences in the reservation
>>> objects
>>> should be fixed by now.
>>>
>>> Optimize the list by keeping only the not signaled yet fences around.
>>>
>>> Signed-off-by: Christian König <christian.koenig@amd.com>
>>> ---
>>> drivers/dma-buf/reservation.c | 31 +++++++++++++++++++++----------
>>> 1 file changed, 21 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/drivers/dma-buf/reservation.c
>>> b/drivers/dma-buf/reservation.c
>>> index b44d9d7db347..4ede77d1bb31 100644
>>> --- a/drivers/dma-buf/reservation.c
>>> +++ b/drivers/dma-buf/reservation.c
>>> @@ -145,8 +145,8 @@ reservation_object_add_shared_replace(struct
>>> reservation_object *obj,
>>> struct reservation_object_list *fobj,
>>> struct dma_fence *fence)
>>> {
>>> - unsigned i;
>>> struct dma_fence *old_fence = NULL;
>>> + unsigned i, j, k;
>>> dma_fence_get(fence);
>>> @@ -162,9 +162,7 @@ reservation_object_add_shared_replace(struct
>>> reservation_object *obj,
>>> * references from the old struct are carried over to
>>> * the new.
>>> */
>>> - fobj->shared_count = old->shared_count;
>>> -
>>> - for (i = 0; i < old->shared_count; ++i) {
>>> + for (i = 0, j = 0, k = old->shared_count; i <
>>> old->shared_count; ++i) {
>>> struct dma_fence *check;
>>> check = rcu_dereference_protected(old->shared[i],
>>> @@ -172,10 +170,14 @@ reservation_object_add_shared_replace(struct
>>> reservation_object *obj,
>>> if (!old_fence && check->context == fence->context) {
>>> old_fence = check;
>>> - RCU_INIT_POINTER(fobj->shared[i], fence);
>>> - } else
>>> - RCU_INIT_POINTER(fobj->shared[i], check);
>>> + RCU_INIT_POINTER(fobj->shared[j++], fence);
>>> + } else if (!dma_fence_is_signaled(check)) {
>>> + RCU_INIT_POINTER(fobj->shared[j++], check);
>>> + } else {
>>> + RCU_INIT_POINTER(fobj->shared[--k], check);
>>> + }
>>> }
>>> + fobj->shared_count = j;
>>> if (!old_fence) {
>>> RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence);
>> Here there is a memory leak for signaled fence slots, since you
>> re-order the slots, the j'th slot is storing signaled fence, there is
>> no place to put it when you assign to new one.
>> you cam move it to end or put it here first.
>
> Good point, thanks. Going to respin.
>
> Regards,
> Christian.
>
>>
>> Regards,
>> David Zhou
>>> fobj->shared_count++;
>>> @@ -192,10 +194,19 @@ reservation_object_add_shared_replace(struct
>>> reservation_object *obj,
>>> write_seqcount_end(&obj->seq);
>>> preempt_enable();
>>> - if (old)
>>> - kfree_rcu(old, rcu);
>>> -
>>> dma_fence_put(old_fence);
>>> +
>>> + if (!old)
>>> + return;
>>> +
>>> + for (i = fobj->shared_count; i < old->shared_count; ++i) {
>>> + struct dma_fence *f;
>>> +
>>> + f = rcu_dereference_protected(fobj->shared[i],
>>> + reservation_object_held(obj));
>>> + dma_fence_put(f);
>>> + }
>>> + kfree_rcu(old, rcu);
>>> }
>>> /**
>>
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace
[not found] ` <ef041966-340b-1ac0-a658-c4e2693a03c2-5C7GfCeVMHo@public.gmane.org>
@ 2017-10-31 8:42 ` Christian König
2017-10-31 8:45 ` Michel Dänzer
0 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2017-10-31 8:42 UTC (permalink / raw)
To: Chunming Zhou, christian.koenig-5C7GfCeVMHo,
sumit.semwal-QSEj5FYQhm4dnm+yROfE0A,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Looks like v2 never made it to the list. I've just send the V2 patches
once more.
Christian.
Am 31.10.2017 um 08:26 schrieb Chunming Zhou:
> Any update?
>
>
> On 2017年10月25日 15:28, Christian König wrote:
>> Am 25.10.2017 um 08:42 schrieb Chunming Zhou:
>>>
>>>
>>> On 2017年10月24日 21:55, Christian König wrote:
>>>> From: Christian König <christian.koenig@amd.com>
>>>>
>>>> The amdgpu issue to also need signaled fences in the reservation
>>>> objects
>>>> should be fixed by now.
>>>>
>>>> Optimize the list by keeping only the not signaled yet fences around.
>>>>
>>>> Signed-off-by: Christian König <christian.koenig@amd.com>
>>>> ---
>>>> drivers/dma-buf/reservation.c | 31 +++++++++++++++++++++----------
>>>> 1 file changed, 21 insertions(+), 10 deletions(-)
>>>>
>>>> diff --git a/drivers/dma-buf/reservation.c
>>>> b/drivers/dma-buf/reservation.c
>>>> index b44d9d7db347..4ede77d1bb31 100644
>>>> --- a/drivers/dma-buf/reservation.c
>>>> +++ b/drivers/dma-buf/reservation.c
>>>> @@ -145,8 +145,8 @@ reservation_object_add_shared_replace(struct
>>>> reservation_object *obj,
>>>> struct reservation_object_list *fobj,
>>>> struct dma_fence *fence)
>>>> {
>>>> - unsigned i;
>>>> struct dma_fence *old_fence = NULL;
>>>> + unsigned i, j, k;
>>>> dma_fence_get(fence);
>>>> @@ -162,9 +162,7 @@ reservation_object_add_shared_replace(struct
>>>> reservation_object *obj,
>>>> * references from the old struct are carried over to
>>>> * the new.
>>>> */
>>>> - fobj->shared_count = old->shared_count;
>>>> -
>>>> - for (i = 0; i < old->shared_count; ++i) {
>>>> + for (i = 0, j = 0, k = old->shared_count; i <
>>>> old->shared_count; ++i) {
>>>> struct dma_fence *check;
>>>> check = rcu_dereference_protected(old->shared[i],
>>>> @@ -172,10 +170,14 @@ reservation_object_add_shared_replace(struct
>>>> reservation_object *obj,
>>>> if (!old_fence && check->context == fence->context) {
>>>> old_fence = check;
>>>> - RCU_INIT_POINTER(fobj->shared[i], fence);
>>>> - } else
>>>> - RCU_INIT_POINTER(fobj->shared[i], check);
>>>> + RCU_INIT_POINTER(fobj->shared[j++], fence);
>>>> + } else if (!dma_fence_is_signaled(check)) {
>>>> + RCU_INIT_POINTER(fobj->shared[j++], check);
>>>> + } else {
>>>> + RCU_INIT_POINTER(fobj->shared[--k], check);
>>>> + }
>>>> }
>>>> + fobj->shared_count = j;
>>>> if (!old_fence) {
>>>> RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence);
>>> Here there is a memory leak for signaled fence slots, since you
>>> re-order the slots, the j'th slot is storing signaled fence, there
>>> is no place to put it when you assign to new one.
>>> you cam move it to end or put it here first.
>>
>> Good point, thanks. Going to respin.
>>
>> Regards,
>> Christian.
>>
>>>
>>> Regards,
>>> David Zhou
>>>> fobj->shared_count++;
>>>> @@ -192,10 +194,19 @@ reservation_object_add_shared_replace(struct
>>>> reservation_object *obj,
>>>> write_seqcount_end(&obj->seq);
>>>> preempt_enable();
>>>> - if (old)
>>>> - kfree_rcu(old, rcu);
>>>> -
>>>> dma_fence_put(old_fence);
>>>> +
>>>> + if (!old)
>>>> + return;
>>>> +
>>>> + for (i = fobj->shared_count; i < old->shared_count; ++i) {
>>>> + struct dma_fence *f;
>>>> +
>>>> + f = rcu_dereference_protected(fobj->shared[i],
>>>> + reservation_object_held(obj));
>>>> + dma_fence_put(f);
>>>> + }
>>>> + kfree_rcu(old, rcu);
>>>> }
>>>> /**
>>>
>>
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace
2017-10-31 8:42 ` Christian König
@ 2017-10-31 8:45 ` Michel Dänzer
0 siblings, 0 replies; 7+ messages in thread
From: Michel Dänzer @ 2017-10-31 8:45 UTC (permalink / raw)
To: christian.koenig, Chunming Zhou, sumit.semwal; +Cc: amd-gfx, dri-devel
On 31/10/17 09:42 AM, Christian König wrote:
> Looks like v2 never made it to the list. I've just send the V2 patches
> once more.
FWIW, I received your v2 patches yesterday, and now twice today.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-10-31 8:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-24 13:55 [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace Christian König
2017-10-24 13:55 ` [PATCH 2/2] dma-buf: try to replace a signaled fence in reservation_object_add_shared_inplace Christian König
2017-10-25 6:42 ` [PATCH 1/2] dma-buf: keep only not signaled fence in reservation_object_add_shared_replace Chunming Zhou
[not found] ` <5985440d-0928-31c1-4044-0e4ce3385f91-5C7GfCeVMHo@public.gmane.org>
2017-10-25 7:28 ` Christian König
2017-10-31 7:26 ` Chunming Zhou
[not found] ` <ef041966-340b-1ac0-a658-c4e2693a03c2-5C7GfCeVMHo@public.gmane.org>
2017-10-31 8:42 ` Christian König
2017-10-31 8:45 ` Michel Dänzer
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.