[PATCH] drm/xe: Fix a build error

Christian König ckoenig.leichtzumerken at gmail.com
Tue Jan 30 14:31:45 UTC 2024


Am 29.01.24 um 21:25 schrieb Thomas Hellström:
> 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.

Yeah, I've noticed that this was applied to the drm-xe-something branch 
as well. That's why I reverted and re-applied the patch but dim still 
ended up applying it to drm-xe-something instead of drm-misc-next so I 
thought that this was intentional.

It would be rather nice if somebody can tell me what the heck went wrong 
here so that I don't repeat this mistake.

Thanks,
Christian.

>
> /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 Intel-xe mailing list