[PATCH 05/21] drm/amdgpu: trace allocated PASIDs
Chunming Zhou
zhoucm1 at amd.com
Thu Jan 11 05:21:19 UTC 2018
On 2018年01月10日 20:54, Christian König wrote:
> Trace all allocated PASIDs.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 12 ++++++++++--
> drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 22 ++++++++++++++++++++++
> 2 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> index 60e0f2dd87df..0948df366278 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> @@ -31,6 +31,7 @@
> #include "amdgpu_sched.h"
> #include "amdgpu_uvd.h"
> #include "amdgpu_vce.h"
> +#include "amdgpu_trace.h"
>
> #include <linux/vga_switcheroo.h>
> #include <linux/slab.h>
> @@ -823,7 +824,10 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
> if (pasid < 0) {
> dev_info(adev->dev, "No more PASIDs available!");
> pasid = 0;
> + } else {
> + trace_amdgpu_pasid_allocated(pasid);
How about moving to amdgpu_pasid_alloc?
> }
> +
> r = amdgpu_vm_init(adev, &fpriv->vm, AMDGPU_VM_CONTEXT_GFX, pasid);
> if (r)
> goto error_pasid;
> @@ -852,8 +856,10 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
> amdgpu_vm_fini(adev, &fpriv->vm);
>
> error_pasid:
> - if (pasid)
> + if (pasid) {
> amdgpu_pasid_free(pasid);
> + trace_amdgpu_pasid_freed(pasid);
How about moving to amdgpu_pasid_free?
> + }
>
> kfree(fpriv);
>
> @@ -908,8 +914,10 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
> pd = amdgpu_bo_ref(fpriv->vm.root.base.bo);
>
> amdgpu_vm_fini(adev, &fpriv->vm);
> - if (pasid)
> + if (pasid) {
> amdgpu_pasid_free_delayed(pd->tbo.resv, pasid);
> + trace_amdgpu_pasid_freed(pasid);
How about moving to amdgpu_pasid_free?
Regards,
David Zhou
> + }
> amdgpu_bo_unref(&pd);
>
> idr_for_each_entry(&fpriv->bo_list_handles, list, handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
> index cace7a93fc94..9890c39ee810 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
> @@ -378,6 +378,28 @@ TRACE_EVENT(amdgpu_vm_flush,
> __entry->vm_hub,__entry->pd_addr)
> );
>
> +DECLARE_EVENT_CLASS(amdgpu_pasid,
> + TP_PROTO(unsigned pasid),
> + TP_ARGS(pasid),
> + TP_STRUCT__entry(
> + __field(unsigned, pasid)
> + ),
> + TP_fast_assign(
> + __entry->pasid = pasid;
> + ),
> + TP_printk("pasid=%u", __entry->pasid)
> +);
> +
> +DEFINE_EVENT(amdgpu_pasid, amdgpu_pasid_allocated,
> + TP_PROTO(unsigned pasid),
> + TP_ARGS(pasid)
> +);
> +
> +DEFINE_EVENT(amdgpu_pasid, amdgpu_pasid_freed,
> + TP_PROTO(unsigned pasid),
> + TP_ARGS(pasid)
> +);
> +
> TRACE_EVENT(amdgpu_bo_list_set,
> TP_PROTO(struct amdgpu_bo_list *list, struct amdgpu_bo *bo),
> TP_ARGS(list, bo),
More information about the amd-gfx
mailing list