2024-02-06 01:28:40

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the drm-misc tree

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 <[email protected]>
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 <[email protected]>
---
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

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2024-02-06 12:02:16

by Jani Nikula

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the drm-misc tree

On Tue, 06 Feb 2024, Stephen Rothwell <[email protected]> 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 <[email protected]>
> 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 <[email protected]>
> ---
> 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 <[email protected]>
M: Oded Gabbay <[email protected]>
M: Thomas Hellström <[email protected]>
L: [email protected]

BR,
Jani.


--
Jani Nikula, Intel

2024-02-06 12:39:50

by Thomas Hellström

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the drm-misc tree

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 <[email protected]>
> 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 <[email protected]>
> ---
>  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
>


2024-02-06 20:22:29

by Lucas De Marchi

[permalink] [raw]
Subject: Re: Re: linux-next: build failure after merge of the drm-misc tree

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

2024-02-07 03:12:39

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the drm-misc tree

Hi all,

On Tue, 6 Feb 2024 12:28:22 +1100 Stephen Rothwell <[email protected]> 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.

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2024-02-07 09:45:05

by Jani Nikula

[permalink] [raw]
Subject: Re: Re: linux-next: build failure after merge of the drm-misc tree

On Wed, 07 Feb 2024, Thomas Hellström <[email protected]> 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.


--
Jani Nikula, Intel

2024-02-07 12:04:18

by Thomas Hellström

[permalink] [raw]
Subject: Re: Re: linux-next: build failure after merge of the drm-misc tree

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