[PATCH] drm/xe: Fix a build error

Zeng, Oak oak.zeng at intel.com
Mon Jan 29 20:29:17 UTC 2024


Hi Thomas,

My patch was based on drm-tip.... because I found drm-tip is broken....

As long as drm-tip can build, I am all good.

Thanks,
Oak

> -----Original Message-----
> From: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> Sent: Monday, January 29, 2024 3:26 PM
> To: Christian König <ckoenig.leichtzumerken at gmail.com>; Zeng, Oak
> <oak.zeng at intel.com>; dri-devel at lists.freedesktop.org; intel-
> xe at lists.freedesktop.org
> Cc: Amaranath.Somalapuram at amd.com; De Marchi, Lucas
> <lucas.demarchi at intel.com>
> Subject: Re: [PATCH] drm/xe: Fix a build error
> 
> Hi,
> 
> On 1/29/24 17:48, Christian König wrote:
> > Am 27.01.24 um 16:53 schrieb Oak Zeng:
> >> This fixes a build failure on drm-tip. This issue was introduced during
> >> merge of "drm/ttm: replace busy placement with flags v6". For some
> >> reason, the xe_bo.c part of above change is not merged. Manually merge
> >> the missing part to drm_tip
> >
> > Mhm, I provided this as manual fixup for drm-tip in this rerere commit:
> >
> > commit afc5797e8c03bed3ec47a34f2bc3cf03fce24411
> > Author: Christian König <christian.koenig at amd.com>
> > Date:   Thu Jan 25 10:44:54 2024 +0100
> >
> >     2024y-01m-25d-09h-44m-07s UTC: drm-tip rerere cache update
> >
> >     git version 2.34.1
> >
> >
> > And for me compiling xe in drm-tip worked fine after that. No idea why
> > that didn't work for you.
> >
> > Anyway feel free to add my rb to this patch here if it helps in any way.
> >
> > Regards,
> > Christian.
> 
> I reverted that rerere cache update and added another one, so now it
> works. Not sure exactly what the difference was, but the resulting patch
> was for the drm-misc-next merge in my case, and It was for
> drm-xe-something in your case.
> 
> /Thomas
> 
> 
> >
> >>
> >> Signed-off-by: Oak Zeng <oak.zeng at intel.com>
> >> ---
> >>   drivers/gpu/drm/xe/xe_bo.c | 33 +++++++++++++++------------------
> >>   1 file changed, 15 insertions(+), 18 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> >> index 686d716c5581..d6a193060cc0 100644
> >> --- a/drivers/gpu/drm/xe/xe_bo.c
> >> +++ b/drivers/gpu/drm/xe/xe_bo.c
> >> @@ -38,22 +38,26 @@ 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 = {
> >> -    .fpfn = 0,
> >> -    .lpfn = 0,
> >> -    .mem_type = XE_PL_TT,
> >> -    .flags = 0,
> >> +static const struct ttm_place tt_placement_flags[] = {
> >> +    {
> >> +        .fpfn = 0,
> >> +        .lpfn = 0,
> >> +        .mem_type = XE_PL_TT,
> >> +        .flags = TTM_PL_FLAG_DESIRED,
> >> +    },
> >> +    {
> >> +        .fpfn = 0,
> >> +        .lpfn = 0,
> >> +        .mem_type = XE_PL_SYSTEM,
> >> +        .flags = TTM_PL_FLAG_FALLBACK,
> >> +    }
> >>   };
> >>     static struct ttm_placement tt_placement = {
> >> -    .num_placement = 1,
> >> -    .placement = &tt_placement_flags,
> >> -    .num_busy_placement = 1,
> >> -    .busy_placement = &sys_placement_flags,
> >> +    .num_placement = 2,
> >> +    .placement = tt_placement_flags,
> >>   };
> >>     bool mem_type_is_vram(u32 mem_type)
> >> @@ -230,8 +234,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 +253,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;
> >>           }
> >>   @@ -1391,8 +1392,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;
> >> @@ -2150,9 +2149,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
> >


More information about the dri-devel mailing list