Re: linux-next: build failure after merge of the drm-misc tree

From: Christian König
Date: Tue Jun 08 2021 - 03:12:10 EST


Am 08.06.21 um 09:06 schrieb Felix Kuehling:
Am 2021-06-08 um 2:55 a.m. schrieb Christian König:
Hi Felix,

that should already be fixed in drm-tip as part of the merge of the
TTM changes.
No, the preempt_mgr doesn't exist in drm-misc-next. It does exist in
drm-next, but that doesn't seem to have the TTM changes yet.

Is there another DRM branch or repository that you're referring to with
drm-tip?

drm-tip is an integration branch for conflict resolution.

E.g. when we have changes in drm-misc-next which break when we merge with drm-next I'm informed and need to provide a conflict resolution patch.

This is automatically applied when drm-next and drm-misc-next are merged together again.

It just looks like that drm-next and drm-misc-next are merged manually into linux-next and then the conflict resolution doesn't apply and everything breaks into pieces.

Adding Daniel as well. How should that be handled? Should we merge drm-misc-next into drm-next now?

Thanks,
Christian.


Regards,
  Fel

Regards,
Christian.

Am 08.06.21 um 07:37 schrieb Felix Kuehling:
Hi Christian,

I based amdgpu_preempt_mgr on amdgpu_gtt_mgr and now I'm looking at what
changed there. Looks like I'll need to create a dummy node in
amdgpu_preempt_mgr_new to satisfy TTM, and free it in
amdgpu_preempt_mgr_del.

Thanks,
   Felix


Am 2021-06-07 um 10:50 p.m. schrieb Stephen Rothwell:
Hi all,

After merging the drm-misc tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c: In function
'amdgpu_preempt_mgr_new':
drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c:75:5: error: 'struct
ttm_resource' has no member named 'mm_node'
    75 |  mem->mm_node = NULL;
       |     ^~
drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c: At top level:
drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c:129:11: error:
initialization of 'int (*)(struct ttm_resource_manager *, struct
ttm_buffer_object *, const struct ttm_place *, struct ttm_resource
**)' from incompatible pointer type 'int (*)(struct
ttm_resource_manager *, struct ttm_buffer_object *, const struct
ttm_place *, struct ttm_resource *)'
[-Werror=incompatible-pointer-types]
   129 |  .alloc = amdgpu_preempt_mgr_new,
       |           ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c:129:11: note: (near
initialization for 'amdgpu_preempt_mgr_func.alloc')

Caused by commit

   cb1c81467af3 ("drm/ttm: flip the switch for driver allocated
resources v2")

from the drm-misc tree interacting with commit

   b453e42a6e8b ("drm/amdgpu: Add new placement for preemptible SG
BOs")

from the drm tree.

I don't know how to fix this, so I added the following hack (a better
fix would be nice):

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Tue, 8 Jun 2021 12:41:16 +1000
Subject: [PATCH] hack fix up for needed amdgpu_preempt_mgr_new() fix up

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c
index d607f314cc1b..e1a7b3e967b9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c
@@ -66,14 +66,16 @@ static DEVICE_ATTR_RO(mem_info_preempt_used);
  static int amdgpu_preempt_mgr_new(struct ttm_resource_manager *man,
                    struct ttm_buffer_object *tbo,
                    const struct ttm_place *place,
-                  struct ttm_resource *mem)
+                  struct ttm_resource **res)
  {
+#if 0
      struct amdgpu_preempt_mgr *mgr = to_preempt_mgr(man);
        atomic64_add(mem->num_pages, &mgr->used);
        mem->mm_node = NULL;
      mem->start = AMDGPU_BO_INVALID_OFFSET;
+#endif
      return 0;
  }