[PATCH v2] drm/xe/xe_sync: Add debug printing to check_ufence

Cavitt, Jonathan jonathan.cavitt at intel.com
Wed Dec 11 15:24:51 UTC 2024



From: Nirmoy Das <nirmoy.das at linux.intel.com>
Sent: Friday, December 6, 2024 11:28 PM
To: Cavitt, Jonathan <jonathan.cavitt at intel.com>; intel-xe at lists.freedesktop.org
Cc: Gupta, saurabhg <saurabhg.gupta at intel.com>; Zuo, Alex <alex.zuo at intel.com>; Vivi, Rodrigo <rodrigo.vivi at intel.com>
Subject: Re: [PATCH v2] drm/xe/xe_sync: Add debug printing to check_ufence



On 12/6/2024 7:11 PM, Jonathan Cavitt wrote:

The xe_sync helper function check_ufence can occasionally report EBUSY

if the ufence has not been signalled yet.  EBUSY is a non-fatal error

value for the function, so it is not desireable to warn in cases where

EBUSY is reported because it is up to the user to decide if EBUSY is a

fatal error in their use cases.  However, we can and should report EBUSY

to the debug logs for diagnostic purposes.



v2: Use vm_dbg instead of XE_IOCTL_DBG (Rodrigo)



Signed-off-by: Jonathan Cavitt <jonathan.cavitt at intel.com><mailto:jonathan.cavitt at intel.com>

CC: Rodrigo Vivi <rodrigo.vivi at intel.com><mailto:rodrigo.vivi at intel.com>

---

 drivers/gpu/drm/xe/xe_vm.c | 10 ++++++++--

 1 file changed, 8 insertions(+), 2 deletions(-)



diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c

index 74d684708b00..8c770d1b916c 100644

--- a/drivers/gpu/drm/xe/xe_vm.c

+++ b/drivers/gpu/drm/xe/xe_vm.c

@@ -2402,8 +2402,11 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,

           break;

   case DRM_GPUVA_OP_REMAP:

           err = check_ufence(gpuva_to_vma(op->base.remap.unmap->va));

-          if (err)

+          if (err) {

+                  vm_dbg(&vm->xe->drm,

+                         "REMAP: vma check ufence status = %i\n", err);

Move that to check_ufence() instead so there there is only one copy of logging ?

IMO I think there’s value in knowing which operation is failing, and that information would

be lost if we moved the logging into check_ufence.

-Jonathan Cavitt

Regards,

Nirmoy





                   break;

+          }



           err = vma_lock_and_validate(exec,

                                      gpuva_to_vma(op->base.remap.unmap->va),

@@ -2415,8 +2418,11 @@ static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm,

           break;

   case DRM_GPUVA_OP_UNMAP:

           err = check_ufence(gpuva_to_vma(op->base.unmap.va));

-          if (err)

+          if (err) {

+                  vm_dbg(&vm->xe->drm,

+                         "UNMAP: vma check ufence status = %i\n", err);

                   break;

+          }



           err = vma_lock_and_validate(exec,

                                      gpuva_to_vma(op->base.unmap.va),
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-xe/attachments/20241211/1b358116/attachment-0001.htm>


More information about the Intel-xe mailing list