[PATCH V1] accel/amdxdna: Revise device bo creation and free

Lizhi Hou lizhi.hou at amd.com
Tue Jun 17 05:37:15 UTC 2025


Pushed to drm-misc-next

On 6/16/25 04:30, Jacek Lawrynowicz wrote:
> Hi,
>
> On 6/16/2025 11:14 AM, Lizhi Hou wrote:
>> The device bo is allocated from the device heap memory. (a trunk of
>> memory dedicated to device)
>>
>> Rename amdxdna_gem_insert_node_locked to amdxdna_gem_heap_alloc
>> and move related sanity checks into it.
>>
>> Add amdxdna_gem_dev_obj_free and move device bo free code into it.
>>
>> Calculate the kernel virtual address of device bo by the device
>> heap memory address and offset.
>>
>> Signed-off-by: Lizhi Hou <lizhi.hou at amd.com>
>> ---
>>   drivers/accel/amdxdna/aie2_ctx.c    |   2 +-
>>   drivers/accel/amdxdna/amdxdna_gem.c | 193 +++++++++++++++-------------
>>   drivers/accel/amdxdna/amdxdna_gem.h |   3 +-
>>   3 files changed, 106 insertions(+), 92 deletions(-)
>>
> ...
>
>> @@ -855,10 +868,12 @@ int amdxdna_drm_sync_bo_ioctl(struct drm_device *dev,
>>   
>>   	if (is_import_bo(abo))
>>   		drm_clflush_sg(abo->base.sgt);
>> -	else if (abo->type == AMDXDNA_BO_DEV)
>> -		drm_clflush_pages(abo->mem.pages, abo->mem.nr_pages);
>> -	else
>> +	else if (abo->mem.kva)
>> +		drm_clflush_virt_range(abo->mem.kva + args->offset, args->size);
>> +	else if (abo->base.pages)
>>   		drm_clflush_pages(abo->base.pages, gobj->size >> PAGE_SHIFT);
>> +	else
>> +		WARN(1, "Can not get flush memory");
> drm_WARN() would also give you the device that caused the warning in case there may be multiple xdna accels.
>
> Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz at linux.intel.com>
>
> Regards,
> Jacek
>


More information about the dri-devel mailing list