Displaying 15 results from an estimated 15 matches for "vm_bo".
2023 Aug 20
3
[PATCH drm-misc-next 0/3] [RFC] DRM GPUVA Manager GPU-VM features
So far the DRM GPUVA manager offers common infrastructure to track GPU VA
allocations and mappings, generically connect GPU VA mappings to their
backing buffers and perform more complex mapping operations on the GPU VA
space.
However, there are more design patterns commonly used by drivers, which
can potentially be generalized in order to make the DRM GPUVA manager
represent a basic GPU-VM
2023 Nov 10
2
[PATCH drm-misc-next v8 09/12] drm/gpuvm: reference count drm_gpuvm structures
...ake on this is that it would be possible to get GPUVM to
>>> work both with and without internal refcounting; If with, the driver
>>> needs a vm close to resolve cyclic references, if without that's not
>>> necessary. If GPUVM is allowed to refcount in mappings and vm_bos,
>>> that comes with a slight performance drop but as Danilo pointed out,
>>> the VM lifetime problem iterating over a vm_bo's mapping becomes
>>> much easier and the code thus becomes easier to maintain moving
>>> forward. That convinced me it's a g...
2023 Nov 10
2
[PATCH drm-misc-next v8 09/12] drm/gpuvm: reference count drm_gpuvm structures
...e possible to get GPUVM to
>>>> work both with and without internal refcounting; If with, the
>>>> driver needs a vm close to resolve cyclic references, if without
>>>> that's not necessary. If GPUVM is allowed to refcount in mappings
>>>> and vm_bos, that comes with a slight performance drop but as Danilo
>>>> pointed out, the VM lifetime problem iterating over a vm_bo's
>>>> mapping becomes much easier and the code thus becomes easier to
>>>> maintain moving forward. That convinced me it's a goo...
2023 Nov 10
1
[PATCH drm-misc-next v8 09/12] drm/gpuvm: reference count drm_gpuvm structures
...oyed.
>>>
>>> Certainly, that would be possible. However, thinking about it, this
>>> might call for
>>> huge trouble.
>>>
>>> First of all, we'd still need to reference count a GPUVM and take a
>>> reference for each
>>> VM_BO, as we do already. Now instead of simply increasing the
>>> reference count for each
>>> mapping as well, we'd need a *mandatory* driver callback that is
>>> called when the GPUVM
>>> reference count drops to zero. Maybe something like vm_destroy().
>>...
2023 Nov 10
1
[PATCH drm-misc-next v8 09/12] drm/gpuvm: reference count drm_gpuvm structures
...gt;> Certainly, that would be possible. However, thinking about it, this
>>>> might call for
>>>> huge trouble.
>>>>
>>>> First of all, we'd still need to reference count a GPUVM and take a
>>>> reference for each
>>>> VM_BO, as we do already. Now instead of simply increasing the
>>>> reference count for each
>>>> mapping as well, we'd need a *mandatory* driver callback that is
>>>> called when the GPUVM
>>>> reference count drops to zero. Maybe something like vm_de...
2023 Nov 09
1
[PATCH drm-misc-next v8 09/12] drm/gpuvm: reference count drm_gpuvm structures
...tion on this?
>>
>> FWIW, my take on this is that it would be possible to get GPUVM to work both with and without internal refcounting; If with, the driver needs a vm close to resolve cyclic references, if without that's not necessary. If GPUVM is allowed to refcount in mappings and vm_bos, that comes with a slight performance drop but as Danilo pointed out, the VM lifetime problem iterating over a vm_bo's mapping becomes much easier and the code thus becomes easier to maintain moving forward. That convinced me it's a good thing.
>
> I strongly believe you guys stumbl...
2024 May 15
0
[PATCH] nouveau: set placement to original placement on uvmm validate.
...1 insertion(+)
diff --git a/drivers/gpu/drm/nouveau/nouveau_uvmm.c b/drivers/gpu/drm/nouveau/nouveau_uvmm.c
index ee02cd833c5e..84a36fe7c37d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_uvmm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_uvmm.c
@@ -1803,6 +1803,7 @@ nouveau_uvmm_bo_validate(struct drm_gpuvm_bo *vm_bo, struct drm_exec *exec)
{
struct nouveau_bo *nvbo = nouveau_gem_object(vm_bo->obj);
+ nouveau_bo_placement_set(nvbo, nvbo->valid_domains, 0);
return nouveau_bo_validate(nvbo, true, false);
}
--
2.45.0
2020 Aug 13
2
[PATCH 01/20] drm/amdgpu: Introduce GEM object functions
...s = &amdgpu_gem_object_funcs;
And this should probably go into amdgpu_gem_object_create().
Apart from that looks like a good idea to me.
Christian.
> drm_gem_private_object_init(adev->ddev, &bo->tbo.base, size);
> INIT_LIST_HEAD(&bo->shadow_list);
> bo->vm_bo = NULL;
2023 Aug 31
3
[PATCH drm-misc-next 2/3] drm/gpuva_mgr: generalize dma_resv/extobj handling and GEM validation
...struct drm_gpuva_manager *mgr, struct drm_gpuva *va);
>>>>>>> void drm_gpuva_remove(struct drm_gpuva *va);
>>>>>>> -void drm_gpuva_link(struct drm_gpuva *va);
>>>>>>> +void drm_gpuva_link(struct drm_gpuva *va, struct drm_gpuva_gem *vm_bo);
>>>>>>> void drm_gpuva_unlink(struct drm_gpuva *va);
>>>>>>> struct drm_gpuva *drm_gpuva_find(struct drm_gpuva_manager *mgr,
>>>>>>> @@ -240,15 +244,137 @@ struct drm_gpuva_manager {
>>>>>>> * @op...
2020 Sep 15
1
[PATCH v2 01/21] drm/amdgpu: Introduce GEM object functions
...t from that the patch is Reviewed-by: Christian K?nig
<christian.koenig at amd.com>.
But I think we need some smoke testing of it.
Christian.
> drm_gem_private_object_init(adev_to_drm(adev), &bo->tbo.base, size);
> INIT_LIST_HEAD(&bo->shadow_list);
> bo->vm_bo = NULL;
2020 Aug 13
0
[PATCH 01/20] drm/amdgpu: Introduce GEM object functions
...uct amdgpu_device *adev,
bo = kzalloc(sizeof(struct amdgpu_bo), GFP_KERNEL);
if (bo == NULL)
return -ENOMEM;
+
+ bo->tbo.base.funcs = &amdgpu_gem_object_funcs;
drm_gem_private_object_init(adev->ddev, &bo->tbo.base, size);
INIT_LIST_HEAD(&bo->shadow_list);
bo->vm_bo = NULL;
--
2.28.0
2020 Sep 14
0
[PATCH 01/20] drm/amdgpu: Introduce GEM object functions
...allback for the GEM object?
Best regards
Thomas
>
> Apart from that looks like a good idea to me.
>
> Christian.
>
>> ????? drm_gem_private_object_init(adev->ddev, &bo->tbo.base, size);
>> ????? INIT_LIST_HEAD(&bo->shadow_list);
>> ????? bo->vm_bo = NULL;
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 N?rnberg, Germany
(HRB 36809, AG N?rnberg)
Gesch?ftsf?hrer: Felix Imend?rffer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
T...
2020 Sep 15
0
[PATCH v2 01/21] drm/amdgpu: Introduce GEM object functions
...-561,6 +561,7 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev,
bo = kzalloc(sizeof(struct amdgpu_bo), GFP_KERNEL);
if (bo == NULL)
return -ENOMEM;
+
drm_gem_private_object_init(adev_to_drm(adev), &bo->tbo.base, size);
INIT_LIST_HEAD(&bo->shadow_list);
bo->vm_bo = NULL;
--
2.28.0
2020 Aug 13
28
[PATCH 00/20] Convert all remaining drivers to GEM object functions
The GEM and PRIME related callbacks in struct drm_driver are deprecated in
favor of GEM object functions in struct drm_gem_object_funcs. This patchset
converts the remaining drivers to object functions and removes most of the
obsolete interfaces.
Patches #1 to #18 convert DRM drivers to GEM object functions, one by one.
Each patch moves existing callbacks from struct drm_driver to an instance
of
2020 Sep 15
40
[PATCH v2 00/21] Convert all remaining drivers to GEM object functions
The GEM and PRIME related callbacks in struct drm_driver are deprecated in
favor of GEM object functions in struct drm_gem_object_funcs. This patchset
converts the remaining drivers to object functions and removes most of the
obsolete interfaces.
Patches #1 to #16 and #18 to #19 convert DRM drivers to GEM object functions,
one by one. Each patch moves existing callbacks from struct drm_driver to