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@canb.auug.org.au 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@canb.auug.org.au --- 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; }
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:
Am 2021-06-08 um 2:55 a.m. schrieb Christian König:
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?
Regards, Felix
Am 08.06.21 um 09:06 schrieb Felix Kuehling:
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.
On Tue, Jun 08, 2021 at 09:11:57AM +0200, Christian König wrote:
Yeah I'm expecting there will be a pull request this week. I've given Dave Airlie a headsup that the conflict is "interesting" and that maybe he needs to push out a test branch for you and Thomas Hellstrom to review/test first. -Daniel
dri-devel@lists.freedesktop.org