Displaying 7 results from an estimated 7 matches for "drm_gpuva_region".
2023 Feb 27
2
[PATCH drm-next v2 05/16] drm: manager to keep track of GPUs VA mappings
..._insert(struct drm_gpuva_manager *mgr,
>>>> + struct drm_gpuva *va)
>>>> +{
>>>> + u64 addr = va->va.addr;
>>>> + u64 range = va->va.range;
>>>> + MA_STATE(mas, &mgr->va_mt, addr, addr + range - 1);
>>>> + struct drm_gpuva_region *reg = NULL;
>>>> + int ret;
>>>> +
>>>> + if (unlikely(!drm_gpuva_in_mm_range(mgr, addr, range)))
>>>> + return -EINVAL;
>>>> +
>>>> + if (unlikely(drm_gpuva_in_kernel_region(mgr, addr, range)))
>>>> + return -EI...
2023 Feb 22
1
[PATCH drm-next v2 05/16] drm: manager to keep track of GPUs VA mappings
...jects representing all existent GPU VA mappings using
>> this
>> + * &drm_gem_object as backing buffer.
>> + *
>> + * If the &DRM_GPUVA_MANAGER_REGIONS feature is enabled, a GPU VA
>> mapping can
>> + * only be created within a previously allocated &drm_gpuva_region,
>> which
>> + * represents a reserved portion of the GPU VA space. GPU VA mappings
>> are not
>> + * allowed to span over a &drm_gpuva_region's boundary.
>> + *
>> + * GPU VA regions can also be flagged as sparse, which allows drivers
>> to crea...
2023 Feb 23
1
[PATCH drm-next v2 05/16] drm: manager to keep track of GPUs VA mappings
...gt;> + * &drm_gem_object as backing buffer.
>>>>> + *
>>>>> + * If the &DRM_GPUVA_MANAGER_REGIONS feature is enabled, a GPU VA
>>>>> mapping can
>>>>> + * only be created within a previously allocated
>>>>> &drm_gpuva_region, which
>>>>> + * represents a reserved portion of the GPU VA space. GPU VA
>>>>> mappings are not
>>>>> + * allowed to span over a &drm_gpuva_region's boundary.
>>>>> + *
>>>>> + * GPU VA regions can also be flagged...
2023 Jan 27
1
[PATCH drm-next 05/14] drm/nouveau: new VM_BIND uapi interfaces
...uld do the trick I guess. Otherwise, we could also add an option to
the GPUVA manager (or a specific region, which could also be a single
huge one) within which it never merges.
>
> If this can be removed then the entire concept of regions in the GPUVA
> can be removed too (drop struct drm_gpuva_region). I say this because
> in Xe as I'm porting over to GPUVA the first thing I'm doing after
> drm_gpuva_manager_init is calling drm_gpuva_region_insert on the entire
> address space. To me this seems kinda useless but maybe I'm missing why
> you need this for Nouveau.
>
&g...
2023 Mar 06
0
[PATCH drm-next v2 05/16] drm: manager to keep track of GPUs VA mappings
..._insert(struct drm_gpuva_manager *mgr,
>>>> + struct drm_gpuva *va)
>>>> +{
>>>> + u64 addr = va->va.addr;
>>>> + u64 range = va->va.range;
>>>> + MA_STATE(mas, &mgr->va_mt, addr, addr + range - 1);
>>>> + struct drm_gpuva_region *reg = NULL;
>>>> + int ret;
>>>> +
>>>> + if (unlikely(!drm_gpuva_in_mm_range(mgr, addr, range)))
>>>> + return -EINVAL;
>>>> +
>>>> + if (unlikely(drm_gpuva_in_kernel_region(mgr, addr, range)))
>>>> + return -EI...
2023 Jan 27
1
[PATCH drm-next 05/14] drm/nouveau: new VM_BIND uapi interfaces
...Otherwise, we could also add an option to
> the GPUVA manager (or a specific region, which could also be a single
> huge one) within which it never merges.
>
>>
>> If this can be removed then the entire concept of regions in the GPUVA
>> can be removed too (drop struct drm_gpuva_region). I say this because
>> in Xe as I'm porting over to GPUVA the first thing I'm doing after
>> drm_gpuva_manager_init is calling drm_gpuva_region_insert on the entire
>> address space. To me this seems kinda useless but maybe I'm missing why
>> you need this for N...
2023 Jan 27
0
[PATCH drm-next 05/14] drm/nouveau: new VM_BIND uapi interfaces
...this operation? We have no concept of this in Xe,
>>> e.g. we can create a VM and the entire address space is managed exactly
>>> the same.
>>>
>>> If this can be removed then the entire concept of regions in the GPUVA
>>> can be removed too (drop struct drm_gpuva_region). I say this because
>>> in Xe as I'm porting over to GPUVA the first thing I'm doing after
>>> drm_gpuva_manager_init is calling drm_gpuva_region_insert on the entire
>>> address space.
>>
>> Also, since you've been starting to use the code, this...