[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