Am 06.04.22 um 14:35 schrieb Daniel Vetter:
On Wed, Apr 06, 2022 at 02:32:22PM +0200, Daniel Vetter wrote:
On Wed, Apr 06, 2022 at 09:51:19AM +0200, Christian König wrote:
[SNIP]
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c 
b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index 53f7c78628a4..98bb5c9239de 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -202,14 +202,10 @@ static void submit_attach_object_fences(struct 
etnaviv_gem_submit *submit)
for (i = 0; i < submit->nr_bos; i++) {
                struct drm_gem_object *obj = &submit->bos[i].obj->base;
+               bool write = submit->bos[i].flags & ETNA_SUBMIT_BO_WRITE;
- if (submit->bos[i].flags & ETNA_SUBMIT_BO_WRITE)
-                       dma_resv_add_excl_fence(obj->resv,
-                                                         submit->out_fence);
-               else
-                       dma_resv_add_shared_fence(obj->resv,
-                                                           submit->out_fence);
-
+               dma_resv_add_fence(obj->resv, submit->out_fence, write ?
+                                  DMA_RESV_USAGE_WRITE : DMA_RESV_USAGE_READ);
Iirc I had some suggestions to use dma_resv_usage_rw here and above. Do
these happen in later patches? There's also a few more of these later on.

That won't work. dma_resv_usage_rw() returns the usage as necessary for dependencies. In other words write return DMA_RESV_USAGE_READ and read return DMA_RESV_USAGE_WRITE.

What we could do is to add a dma_resv_add_fence_rw() wrapper which does the necessary ?: in a central place.

diff --git a/drivers/gpu/drm/lima/lima_gem.c b/drivers/gpu/drm/lima/lima_gem.c
index e0a11ee0e86d..cb3bfccc930f 100644
--- a/drivers/gpu/drm/lima/lima_gem.c
+++ b/drivers/gpu/drm/lima/lima_gem.c
@@ -367,7 +367,7 @@ int lima_gem_submit(struct drm_file *file, struct 
lima_submit *submit)
                if (submit->bos[i].flags & LIMA_SUBMIT_BO_WRITE)
                        dma_resv_add_excl_fence(lima_bo_resv(bos[i]), fence);
                else
-                       dma_resv_add_shared_fence(lima_bo_resv(bos[i]), fence);
+                       dma_resv_add_fence(lima_bo_resv(bos[i]), fence);
Correction on the r-b, I'm still pretty sure that this won't compile at
all.

Grrr, I've forgot to add CONFIG_OF to my compile build config.

BTW: Do we have a tool for compile test coverage of patches? E.g. something which figures out if a build created an o file for each c file a patch touched?

Christian.

-Daniel


Reply via email to