[PATCH] drm/amdgpu/gpuvm: add some additional comments in amdgpu_vm_update_ptes
Christian König
ckoenig.leichtzumerken at gmail.com
Thu Oct 31 07:24:13 UTC 2019
Am 30.10.19 um 19:41 schrieb Alex Deucher:
> To better clarify what is happening in this function.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index c8ce42200059..3c0bd6472a46 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -1419,6 +1419,9 @@ static int amdgpu_vm_update_ptes(struct amdgpu_vm_update_params *params,
> uint64_t incr, entry_end, pe_start;
> struct amdgpu_bo *pt;
>
> + /* make sure that the page tables covering the address range are
> + * actually allocated
> + */
> r = amdgpu_vm_alloc_pts(params->adev, params->vm, &cursor,
> params->direct);
> if (r)
> @@ -1492,7 +1495,12 @@ static int amdgpu_vm_update_ptes(struct amdgpu_vm_update_params *params,
> } while (frag_start < entry_end);
>
> if (amdgpu_vm_pt_descendant(adev, &cursor)) {
> - /* Free all child entries */
> + /* Free all child entries.
> + * Update the tables with the flags and addresses and free up subsequent
> + * tables in the case of huge pages or freed up areas.
> + * This is the maximum you can free, because all other page tables are not
> + * completely covered by the range and so potentially still in use.
> + */
> while (cursor.pfn < frag_start) {
> amdgpu_vm_free_pts(adev, params->vm, &cursor);
> amdgpu_vm_pt_next(adev, &cursor);
More information about the amd-gfx
mailing list