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

Message ID 20240206122822.12a2df89@canb.auug.org.au
State New
Headers
Series linux-next: build failure after merge of the drm-misc tree |

Commit Message

Stephen Rothwell Feb. 6, 2024, 1:28 a.m. UTC
  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(-)
  

Comments

Jani Nikula Feb. 6, 2024, 11:46 a.m. UTC | #1
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.
  
Thomas Hellström Feb. 6, 2024, 12:39 p.m. UTC | #2
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
>
  
Lucas De Marchi Feb. 6, 2024, 8:21 p.m. UTC | #3
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
  
Stephen Rothwell Feb. 7, 2024, 2:46 a.m. UTC | #4
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.
  
Thomas Hellström Feb. 7, 2024, 6:56 a.m. UTC | #5
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
  
Jani Nikula Feb. 7, 2024, 9:33 a.m. UTC | #6
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.
  

Patch

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