[RFC PATCH 5/6] drm/qxl: don't use ttm bo->offset

Christian König christian.koenig at amd.com
Thu Feb 13 17:26:11 UTC 2020


Am 13.02.20 um 15:30 schrieb Gerd Hoffmann:
>> @@ -311,10 +311,8 @@ qxl_bo_physical_address(struct qxl_device *qdev, struct qxl_bo *bo,
>>   		(bo->tbo.mem.mem_type == TTM_PL_VRAM)
>>   		? &qdev->main_slot : &qdev->surfaces_slot;
>>   
>> -	WARN_ON_ONCE((bo->tbo.offset & slot->gpu_offset) != slot->gpu_offset);
>> -
>> -	/* TODO - need to hold one of the locks to read tbo.offset */
>> -	return slot->high_bits | (bo->tbo.offset - slot->gpu_offset + offset);
>> +	return slot->high_bits | ((bo->tbo.mem.start << PAGE_SHIFT) +
>> +				  slot->gpu_offset + offset);
>>   }
> --verbose please.

The warning and the TODO should probably stay, don't they?

> I don't get the logic behind this change.

We ran into the problem that the whole offset handling in TTM is 
actually completely hardware specific.

E.g. Some need pfn, some need byte offsets, some need 32bit, some 64bit 
and some don't have a consistent offset at all (e.g. amdgpu for exmaple).

So we try to move that back into the drivers to concentrate on memory 
management in TTM.

>
> The other chunks look sane, calculating slot->gpu_offset
> in setup_slot() certainly makes sense.

Thanks for the review,
Christian.

>
> cheers,
>    Gerd
>



More information about the amd-gfx mailing list