[Intel-xe] [PATCH 5/6] drm/xe/bo: Evict VRAM to TT rather than to system

Thomas Hellström thomas.hellstrom at linux.intel.com
Mon Jun 19 12:00:08 UTC 2023


On 6/16/23 22:47, Matthew Brost wrote:
> On Fri, Jun 16, 2023 at 11:55:03AM +0200, Thomas Hellström wrote:
>> The main difference is that we don't bounce and sync on eviction, allowing
>> for pipelined eviction. Moving forward we also need to be careful with
>> dma mappings which can be released in SYSTEM but may remain in TT.
>>
>> Signed-off-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
>> ---
>>   drivers/gpu/drm/xe/xe_bo.c | 16 ++++++++++++++++
>>   1 file changed, 16 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
>> index 77d5c5710688..fd41114f2dfb 100644
>> --- a/drivers/gpu/drm/xe/xe_bo.c
>> +++ b/drivers/gpu/drm/xe/xe_bo.c
>> @@ -40,6 +40,20 @@ static struct ttm_placement sys_placement = {
>>   	.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 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)
>>   {
>>   	return mem_type >= XE_PL_VRAM0 && mem_type != XE_PL_STOLEN;
>> @@ -225,6 +239,8 @@ static void xe_evict_flags(struct ttm_buffer_object *tbo,
>>   	case XE_PL_VRAM0:
>>   	case XE_PL_VRAM1:
>>   	case XE_PL_STOLEN:
>> +		*placement = tt_placement;
>> +		break;
>>   	case XE_PL_TT:
>>   	default:
>>   		/* for now kick out to system */
> NIT, you can probably delete this comment now.
>
> Anyways:
> Reviewed-by: Matthew Brost <matthew.brost at intel.com>
Thanks for reviewing.
>
>> -- 
>> 2.40.1
>>


More information about the Intel-xe mailing list