[PATCH v2 3/8] drm/ttm: Add unampping of the entire device address space

Andrey Grodzovsky Andrey.Grodzovsky at amd.com
Tue Jun 23 05:00:02 UTC 2020


On 6/22/20 5:45 AM, Daniel Vetter wrote:
> On Sun, Jun 21, 2020 at 02:03:03AM -0400, Andrey Grodzovsky wrote:
>> Helper function to be used to invalidate all BOs CPU mappings
>> once device is removed.
>>
>> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
> This seems to be missing the code to invalidate all the dma-buf mmaps?
>
> Probably needs more testcases if you're not yet catching this. Or am I
> missing something, and we're exchanging the the address space also for
> dma-buf?
> -Daniel


IMHO the device address space includes all user clients having a CPU view of the 
BO either from direct mapping though drm file or by  mapping through imported 
BO's FD.

Andrey


>
>> ---
>>   drivers/gpu/drm/ttm/ttm_bo.c    | 8 ++++++--
>>   include/drm/ttm/ttm_bo_driver.h | 7 +++++++
>>   2 files changed, 13 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
>> index c5b516f..926a365 100644
>> --- a/drivers/gpu/drm/ttm/ttm_bo.c
>> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
>> @@ -1750,10 +1750,14 @@ void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo)
>>   	ttm_bo_unmap_virtual_locked(bo);
>>   	ttm_mem_io_unlock(man);
>>   }
>> -
>> -
>>   EXPORT_SYMBOL(ttm_bo_unmap_virtual);
>>   
>> +void ttm_bo_unmap_virtual_address_space(struct ttm_bo_device *bdev)
>> +{
>> +	unmap_mapping_range(bdev->dev_mapping, 0, 0, 1);
>> +}
>> +EXPORT_SYMBOL(ttm_bo_unmap_virtual_address_space);
>> +
>>   int ttm_bo_wait(struct ttm_buffer_object *bo,
>>   		bool interruptible, bool no_wait)
>>   {
>> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
>> index c9e0fd0..39ea44f 100644
>> --- a/include/drm/ttm/ttm_bo_driver.h
>> +++ b/include/drm/ttm/ttm_bo_driver.h
>> @@ -601,6 +601,13 @@ int ttm_bo_device_init(struct ttm_bo_device *bdev,
>>   void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo);
>>   
>>   /**
>> + * ttm_bo_unmap_virtual_address_space
>> + *
>> + * @bdev: tear down all the virtual mappings for this device
>> + */
>> +void ttm_bo_unmap_virtual_address_space(struct ttm_bo_device *bdev);
>> +
>> +/**
>>    * ttm_bo_unmap_virtual
>>    *
>>    * @bo: tear down the virtual mappings for this BO
>> -- 
>> 2.7.4
>>


More information about the amd-gfx mailing list