[Intel-xe] [PATCH v2] drm/xe: Fix BUG_ON during bind with prefetch

Matthew Brost matthew.brost at intel.com
Fri Jul 14 03:43:14 UTC 2023


On Thu, Jul 13, 2023 at 05:02:22PM -0700, Brian Welty wrote:
> It was missed that print_op needs to include DRM_GPUVA_OP_PREFETCH.
> 
> Else we hit the impossible BUG_ON:
> [  886.371040] ------------[ cut here ]------------
> [  886.371047] kernel BUG at drivers/gpu/drm/xe/xe_vm.c:2234!
> [  886.371216] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
> [  886.371229] CPU: 1 PID: 3132 Comm: xe_exec_fault_m
> [  886.371257] RIP: 0010:vm_bind_ioctl_ops_create+0x45f/0x470 [xe]
> ...
> [  886.371517] Call Trace:
> [  886.371525]  <TASK>
> [  886.371531]  ? __die_body+0x1a/0x60
> [  886.371546]  ? die+0x38/0x60
> [  886.371557]  ? do_trap+0x10a/0x120
> [  886.371568]  ? vm_bind_ioctl_ops_create+0x45f/0x470 [xe]
> 
> v2: add debug print for PREFETCH in print_op
> 
> Fixes: d39e49e2ad38 ("drm/xe: Port Xe to GPUVA")
> Signed-off-by: Brian Welty <brian.welty at intel.com>

Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_vm.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 6c216350084b..fc4d54425160 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -2230,6 +2230,11 @@ static void print_op(struct xe_device *xe, struct drm_gpuva_op *op)
>  		       (ULL)xe_vma_start(vma), (ULL)xe_vma_size(vma),
>  		       op->unmap.keep ? 1 : 0);
>  		break;
> +	case DRM_GPUVA_OP_PREFETCH:
> +		vma = gpuva_to_vma(op->prefetch.va);
> +		vm_dbg(&xe->drm, "PREFETCH: addr=0x%016llx, range=0x%016llx",
> +		       (ULL)xe_vma_start(vma), (ULL)xe_vma_size(vma));
> +		break;
>  	default:
>  		XE_BUG_ON("NOT POSSIBLE");
>  	}
> -- 
> 2.38.0
> 


More information about the Intel-xe mailing list