Message ID | 20240206122822.12a2df89@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 |
On Tue, 06 Feb 2024, Stephen Rothwell <sfr@canb.auug.org.au> wrote: > Hi all, > > After merging the drm-misc tree, today's linux-next build (x86_64 > allmodconfig) failed like this: > > > Caused by commit > > a78a8da51b36 ("drm/ttm: replace busy placement with flags v6") > > interacting with commit > > dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs") > > (and maybe others) from Linus' tree (v6.8-rc1). > > I have applied the following merge fix patch for today. This makes it build, > but more is likely needed ... > > From: Stephen Rothwell <sfr@canb.auug.org.au> > Date: Tue, 6 Feb 2024 12:21:07 +1100 > Subject: [PATCH] fix up for "drm/ttm: replace busy placement with flags v6" > > interacting with commit > > dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs") > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> > --- > drivers/gpu/drm/xe/xe_bo.c | 11 ----------- > 1 file changed, 11 deletions(-) Please see the new MAINTAINERS entry for drm/xe changes: INTEL DRM XE DRIVER (Lunar Lake and newer) M: Lucas De Marchi <lucas.demarchi@intel.com> M: Oded Gabbay <ogabbay@kernel.org> M: Thomas Hellström <thomas.hellstrom@linux.intel.com> L: intel-xe@lists.freedesktop.org BR, Jani.
Hi On Tue, 2024-02-06 at 12:28 +1100, Stephen Rothwell wrote: > Hi all, > > After merging the drm-misc tree, today's linux-next build (x86_64 > allmodconfig) failed like this: > > > Caused by commit > > a78a8da51b36 ("drm/ttm: replace busy placement with flags v6") > > interacting with commit > > dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs") > > (and maybe others) from Linus' tree (v6.8-rc1). > > I have applied the following merge fix patch for today. This makes > it build, > but more is likely needed ... There was a manual fixup for the drm-misc-next merge into drm-tip that did the right thing here. How do we ensure these are included into the linux-next builds? Thanks, Thomas > > From: Stephen Rothwell <sfr@canb.auug.org.au> > Date: Tue, 6 Feb 2024 12:21:07 +1100 > Subject: [PATCH] fix up for "drm/ttm: replace busy placement with > flags v6" > > interacting with commit > > dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs") > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> > --- > drivers/gpu/drm/xe/xe_bo.c | 11 ----------- > 1 file changed, 11 deletions(-) > > diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c > index 0b0e262e2166..280dbda8ae5a 100644 > --- a/drivers/gpu/drm/xe/xe_bo.c > +++ b/drivers/gpu/drm/xe/xe_bo.c > @@ -38,8 +38,6 @@ static const struct ttm_place sys_placement_flags = > { > static struct ttm_placement sys_placement = { > .num_placement = 1, > .placement = &sys_placement_flags, > - .num_busy_placement = 1, > - .busy_placement = &sys_placement_flags, > }; > > static const struct ttm_place tt_placement_flags = { > @@ -52,8 +50,6 @@ static const struct ttm_place tt_placement_flags = > { > static struct ttm_placement tt_placement = { > .num_placement = 1, > .placement = &tt_placement_flags, > - .num_busy_placement = 1, > - .busy_placement = &sys_placement_flags, > }; > > bool mem_type_is_vram(u32 mem_type) > @@ -230,8 +226,6 @@ static int __xe_bo_placement_for_flags(struct > xe_device *xe, struct xe_bo *bo, > bo->placement = (struct ttm_placement) { > .num_placement = c, > .placement = bo->placements, > - .num_busy_placement = c, > - .busy_placement = bo->placements, > }; > > return 0; > @@ -251,7 +245,6 @@ static void xe_evict_flags(struct > ttm_buffer_object *tbo, > /* Don't handle scatter gather BOs */ > if (tbo->type == ttm_bo_type_sg) { > placement->num_placement = 0; > - placement->num_busy_placement = 0; > return; > } > > @@ -1353,8 +1346,6 @@ static int __xe_bo_fixed_placement(struct > xe_device *xe, > bo->placement = (struct ttm_placement) { > .num_placement = 1, > .placement = place, > - .num_busy_placement = 1, > - .busy_placement = place, > }; > > return 0; > @@ -2112,9 +2103,7 @@ int xe_bo_migrate(struct xe_bo *bo, u32 > mem_type) > > xe_place_from_ttm_type(mem_type, &requested); > placement.num_placement = 1; > - placement.num_busy_placement = 1; > placement.placement = &requested; > - placement.busy_placement = &requested; > > /* > * Stolen needs to be handled like below VRAM handling if we > ever need > -- > 2.43.0 >
On Tue, Feb 06, 2024 at 01:39:28PM +0100, Thomas Hellström wrote: >Hi > >On Tue, 2024-02-06 at 12:28 +1100, Stephen Rothwell wrote: >> Hi all, >> >> After merging the drm-misc tree, today's linux-next build (x86_64 >> allmodconfig) failed like this: >> >> >> Caused by commit >> >> a78a8da51b36 ("drm/ttm: replace busy placement with flags v6") >> >> interacting with commit >> >> dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs") >> >> (and maybe others) from Linus' tree (v6.8-rc1). >> >> I have applied the following merge fix patch for today. This makes >> it build, >> but more is likely needed ... > >There was a manual fixup for the drm-misc-next merge into drm-tip that >did the right thing here. > >How do we ensure these are included into the linux-next builds? I think it should have been done in commit 4db102dcb039 ("Merge drm/drm-next into drm-misc-next") when drm-next merged back into drm-misc-next. Now one option is probably a commit on drm-misc-next with this content: https://cgit.freedesktop.org/drm-tip/tree/fixups/drm-misc-next.patch?h=rerere-cache&id=c39c6e3d74203820ef630884a5323237696bd36c Lucas De Marchi
Hi all, On Tue, 6 Feb 2024 12:28:22 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote: > > After merging the drm-misc tree, today's linux-next build (x86_64 > allmodconfig) failed like this: drivers/gpu/drm/xe/xe_bo.c:41:10: error: 'struct ttm_placement' has no member named 'num_busy_placement'; did you mean 'num_placement'? 41 | .num_busy_placement = 1, | ^~~~~~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:41:31: error: excess elements in struct initializer [-Werror] 41 | .num_busy_placement = 1, | ^ drivers/gpu/drm/xe/xe_bo.c:41:31: note: (near initialization for 'sys_placement') drivers/gpu/drm/xe/xe_bo.c:42:10: error: 'struct ttm_placement' has no member named 'busy_placement'; did you mean 'num_placement'? 42 | .busy_placement = &sys_placement_flags, | ^~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:42:27: error: excess elements in struct initializer [-Werror] 42 | .busy_placement = &sys_placement_flags, | ^ drivers/gpu/drm/xe/xe_bo.c:42:27: note: (near initialization for 'sys_placement') drivers/gpu/drm/xe/xe_bo.c:55:10: error: 'struct ttm_placement' has no member named 'num_busy_placement'; did you mean 'num_placement'? 55 | .num_busy_placement = 1, | ^~~~~~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:55:31: error: excess elements in struct initializer [-Werror] 55 | .num_busy_placement = 1, | ^ drivers/gpu/drm/xe/xe_bo.c:55:31: note: (near initialization for 'tt_placement') drivers/gpu/drm/xe/xe_bo.c:56:10: error: 'struct ttm_placement' has no member named 'busy_placement'; did you mean 'num_placement'? 56 | .busy_placement = &sys_placement_flags, | ^~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:56:27: error: excess elements in struct initializer [-Werror] 56 | .busy_placement = &sys_placement_flags, | ^ drivers/gpu/drm/xe/xe_bo.c:56:27: note: (near initialization for 'tt_placement') drivers/gpu/drm/xe/xe_bo.c: In function '__xe_bo_placement_for_flags': drivers/gpu/drm/xe/xe_bo.c:233:18: error: 'struct ttm_placement' has no member named 'num_busy_placement'; did you mean 'num_placement'? 233 | .num_busy_placement = c, | ^~~~~~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:233:39: error: excess elements in struct initializer [-Werror] 233 | .num_busy_placement = c, | ^ drivers/gpu/drm/xe/xe_bo.c:233:39: note: (near initialization for '(anonymous)') drivers/gpu/drm/xe/xe_bo.c:234:18: error: 'struct ttm_placement' has no member named 'busy_placement'; did you mean 'num_placement'? 234 | .busy_placement = bo->placements, | ^~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:234:35: error: excess elements in struct initializer [-Werror] 234 | .busy_placement = bo->placements, | ^~ drivers/gpu/drm/xe/xe_bo.c:234:35: note: (near initialization for '(anonymous)') drivers/gpu/drm/xe/xe_bo.c: In function 'xe_evict_flags': drivers/gpu/drm/xe/xe_bo.c:254:36: error: 'struct ttm_placement' has no member named 'num_busy_placement'; did you mean 'num_placement'? 254 | placement->num_busy_placement = 0; | ^~~~~~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c: In function '__xe_bo_fixed_placement': drivers/gpu/drm/xe/xe_bo.c:1356:18: error: 'struct ttm_placement' has no member named 'num_busy_placement'; did you mean 'num_placement'? 1356 | .num_busy_placement = 1, | ^~~~~~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:1356:39: error: excess elements in struct initializer [-Werror] 1356 | .num_busy_placement = 1, | ^ drivers/gpu/drm/xe/xe_bo.c:1356:39: note: (near initialization for '(anonymous)') drivers/gpu/drm/xe/xe_bo.c:1357:18: error: 'struct ttm_placement' has no member named 'busy_placement'; did you mean 'num_placement'? 1357 | .busy_placement = place, | ^~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:1357:35: error: excess elements in struct initializer [-Werror] 1357 | .busy_placement = place, | ^~~~~ drivers/gpu/drm/xe/xe_bo.c:1357:35: note: (near initialization for '(anonymous)') drivers/gpu/drm/xe/xe_bo.c: In function 'xe_bo_migrate': drivers/gpu/drm/xe/xe_bo.c:2115:19: error: 'struct ttm_placement' has no member named 'num_busy_placement'; did you mean 'num_placement'? 2115 | placement.num_busy_placement = 1; | ^~~~~~~~~~~~~~~~~~ | num_placement drivers/gpu/drm/xe/xe_bo.c:2117:19: error: 'struct ttm_placement' has no member named 'busy_placement'; did you mean 'num_placement'? 2117 | placement.busy_placement = &requested; | ^~~~~~~~~~~~~~ | num_placement > Caused by commit > > a78a8da51b36 ("drm/ttm: replace busy placement with flags v6") > > interacting with commit > > dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs") > > (and maybe others) from Linus' tree (v6.8-rc1). Given that the latter above commit(s) are also in the drm-misc tree, I have just used the drm-misc tree from next-20240205 for today.
On Tue, 2024-02-06 at 14:21 -0600, Lucas De Marchi wrote: > On Tue, Feb 06, 2024 at 01:39:28PM +0100, Thomas Hellström wrote: > > Hi > > > > On Tue, 2024-02-06 at 12:28 +1100, Stephen Rothwell wrote: > > > Hi all, > > > > > > After merging the drm-misc tree, today's linux-next build (x86_64 > > > allmodconfig) failed like this: > > > > > > > > > Caused by commit > > > > > > a78a8da51b36 ("drm/ttm: replace busy placement with flags v6") > > > > > > interacting with commit > > > > > > dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel > > > GPUs") > > > > > > (and maybe others) from Linus' tree (v6.8-rc1). > > > > > > I have applied the following merge fix patch for today. This > > > makes > > > it build, > > > but more is likely needed ... > > > > There was a manual fixup for the drm-misc-next merge into drm-tip > > that > > did the right thing here. > > > > How do we ensure these are included into the linux-next builds? > > I think it should have been done in commit 4db102dcb039 ("Merge > drm/drm-next into drm-misc-next") > when drm-next merged back into drm-misc-next. Now one option is > probably a > commit on drm-misc-next with this content: > https://cgit.freedesktop.org/drm-tip/tree/fixups/drm-misc-next.patch?h=rerere-cache&id=c39c6e3d74203820ef630884a5323237696bd36c > > > Lucas De Marchi Indeed. Not even drm-misc itself compiles with xe enabled. I'll ping drm-misc maintainers. /Thomas
On Wed, 07 Feb 2024, Thomas Hellström <thomas.hellstrom@linux.intel.com> wrote: > Indeed. Not even drm-misc itself compiles with xe enabled. I'll ping > drm-misc maintainers. We'll need CONFIG_DRM_XE=m enabled in drm-rerere/drm-misc-*_defconfig, and get people to use that. BR, Jani.
diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c index 0b0e262e2166..280dbda8ae5a 100644 --- a/drivers/gpu/drm/xe/xe_bo.c +++ b/drivers/gpu/drm/xe/xe_bo.c @@ -38,8 +38,6 @@ static const struct ttm_place sys_placement_flags = { static struct ttm_placement sys_placement = { .num_placement = 1, .placement = &sys_placement_flags, - .num_busy_placement = 1, - .busy_placement = &sys_placement_flags, }; static const struct ttm_place tt_placement_flags = { @@ -52,8 +50,6 @@ static const struct ttm_place tt_placement_flags = { static struct ttm_placement tt_placement = { .num_placement = 1, .placement = &tt_placement_flags, - .num_busy_placement = 1, - .busy_placement = &sys_placement_flags, }; bool mem_type_is_vram(u32 mem_type) @@ -230,8 +226,6 @@ static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo, bo->placement = (struct ttm_placement) { .num_placement = c, .placement = bo->placements, - .num_busy_placement = c, - .busy_placement = bo->placements, }; return 0; @@ -251,7 +245,6 @@ static void xe_evict_flags(struct ttm_buffer_object *tbo, /* Don't handle scatter gather BOs */ if (tbo->type == ttm_bo_type_sg) { placement->num_placement = 0; - placement->num_busy_placement = 0; return; } @@ -1353,8 +1346,6 @@ static int __xe_bo_fixed_placement(struct xe_device *xe, bo->placement = (struct ttm_placement) { .num_placement = 1, .placement = place, - .num_busy_placement = 1, - .busy_placement = place, }; return 0; @@ -2112,9 +2103,7 @@ int xe_bo_migrate(struct xe_bo *bo, u32 mem_type) xe_place_from_ttm_type(mem_type, &requested); placement.num_placement = 1; - placement.num_busy_placement = 1; placement.placement = &requested; - placement.busy_placement = &requested; /* * Stolen needs to be handled like below VRAM handling if we ever need