Message ID | 20210608125046.07c6deca@canb.auug.org.au (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | linux-next: build failure after merge of the drm-misc tree | expand |
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@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 Felix, that should already be fixed in drm-tip as part of the merge of the TTM changes. 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@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; >> } >>
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? Regards, Felix > > 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@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; >>> } >>> >
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@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; >>>> } >>>>
On Tue, Jun 08, 2021 at 09:11:57AM +0200, Christian König wrote: > 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? 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 > > 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@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; > > > > > } >
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; }