[PATCH] amdgpu: add interface for reserve/unserve vmid

Zhang, Jerry (Junwei) Jerry.Zhang at amd.com
Tue May 2 02:30:46 UTC 2017


On 04/28/2017 05:22 PM, Chunming Zhou wrote:
> Change-Id: If533576eb8a65bd019a3480d6fe2a64f23e3c944
> Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>
> ---
>   amdgpu/amdgpu.h    | 13 +++++++++++++
>   amdgpu/amdgpu_cs.c | 30 ++++++++++++++++++++++++++++++
>   2 files changed, 43 insertions(+)
>
> diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
> index 4772006..7afade0 100644
> --- a/amdgpu/amdgpu.h
> +++ b/amdgpu/amdgpu.h
> @@ -1626,6 +1626,19 @@ int amdgpu_cs_signal_sem(amdgpu_device_handle dev,
>   			 uint32_t ip_instance,
>   			 uint32_t ring,
>   			 amdgpu_sem_handle sem);
> +/**
> + *  reserve vmid for this process
> + *
> + * \param   dev    - [in] Device handle. See #amdgpu_device_initialize()
> + */
> +int amdgpu_cs_reserved_vmid(amdgpu_device_handle dev);
> +
> +/**
> + *  unreserve vmid for this process
> + *
> + * \param   dev    - [in] Device handle. See #amdgpu_device_initialize()
> + */
> +int amdgpu_cs_unreserved_vmid(amdgpu_device_handle dev);
>
>   /**
>    *  wait sem
> diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c
> index 62b595a..df362ee 100644
> --- a/amdgpu/amdgpu_cs.c
> +++ b/amdgpu/amdgpu_cs.c
> @@ -754,3 +754,33 @@ int amdgpu_cs_destroy_sem(amdgpu_device_handle dev,
>
>   	return 0;
>   }
> +
> +int amdgpu_cs_unreserved_vmid(amdgpu_device_handle dev)

We might provide one more parameter for UMD flexibly, even if it's unused for now.
i.e. the number of reserved vmid(constrained by KMD limitation, of course) and 
anything else like that.

Did we have any discussion about it with UMD guys?

> +{
> +	union drm_amdgpu_vm args;
> +	int r;
> +
> +	if (NULL == dev)
> +		return -EINVAL;
> +
> +	/* Create the context */

It looks typo in comment for the actual code

> +	memset(&args, 0, sizeof(args));
> +	args.in.op = AMDGPU_VM_OP_UNRESERVE_VMID;
> +	r = drmCommandWriteRead(dev->fd, DRM_AMDGPU_VM, &args, sizeof(args));
> +	return r;
> +}
> +
> +int amdgpu_cs_reserved_vmid(amdgpu_device_handle dev)
> +{
> +	union drm_amdgpu_vm args;
> +	int r;
> +
> +	if (NULL == dev)
> +		return -EINVAL;
> +
> +	/* Create the context */

Same typo as above comment

Jerry
> +	memset(&args, 0, sizeof(args));
> +	args.in.op = AMDGPU_VM_OP_RESERVE_VMID;
> +	r = drmCommandWriteRead(dev->fd, DRM_AMDGPU_VM, &args, sizeof(args));
> +	return r;
> +}
>


More information about the amd-gfx mailing list