[PATCH v2 0/8] drm/xe/xe_vm: Implement xe_vm_get_property_ioctl
Jonathan Cavitt
jonathan.cavitt at intel.com
Thu Feb 27 19:14:49 UTC 2025
Add additional information to the xe_vm so it can report the last 50
relevant exec queues that have been banned on it, as well as the
associated pagefault address and address type that caused the ban when
applicable. Since we cannot reasonably associate a pagefault to a
specific exec queue, whenever a CAT error causes an exec queue to become
banned, we blame the last seen pagefault on said exec queue.
The last pagefault seen per exec queue is saved to the xe_vm, and the
pagefault is updated when a new pagefault is reported or when the last
pagefault has been associated with an exec queue, whichever happens
first. All new pagefault reports come from xe_gt_pagefault.
Also add a tracker that counts the number of times the VM has
experienced an engine reset.
Finally, add a new ioctl - xe_vm_get_property_ioctl - that allows the
user to query this additional information.
v2: (Matt Brost)
- Break full ban list request into a separate property.
- Reformat drm_xe_vm_get_property struct.
- Remove need for drm_xe_faults helper struct.
- Separate data pointer and scalar return value in ioctl.
- Get address type on pagefault report and save it to the pagefault.
- Correctly reject writes to read-only VMAs.
- Miscellaneous formatting fixes.
Signed-off-by: Jonathan Cavitt <joanthan.cavitt at intel.com>
Suggested-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Suggested-by: Matthew Brost <matthew.brost at intel.com>
CC: Zhang Jianxun <jianxun.zhang at intel.com>
Jonathan Cavitt (8):
drm/xe/xe_gt_pagefault: Disallow writes to read-only VMAs
drm/xe/xe_exec_queue: Add ID param to exec queue struct
drm/xe/xe_gt_pagefault: Migrate pagefault struct to header
drm/xe/xe_vm: Add per VM pagefault info
drm/xe/xe_vm: Add per VM reset stats
drm/xe/uapi: Define drm_xe_vm_get_property
drm/xe/xe_gt_pagefault: Add address_type field to pagefaults
drm/xe/xe_vm: Implement xe_vm_get_property_ioctl
drivers/gpu/drm/xe/xe_device.c | 3 +
drivers/gpu/drm/xe/xe_exec_queue.c | 7 +
drivers/gpu/drm/xe/xe_exec_queue_types.h | 2 +
drivers/gpu/drm/xe/xe_gt_pagefault.c | 65 ++++-----
drivers/gpu/drm/xe/xe_gt_pagefault.h | 29 ++++
drivers/gpu/drm/xe/xe_guc_submit.c | 4 +
drivers/gpu/drm/xe/xe_vm.c | 171 +++++++++++++++++++++++
drivers/gpu/drm/xe/xe_vm.h | 8 ++
drivers/gpu/drm/xe/xe_vm_types.h | 34 +++++
include/uapi/drm/xe_drm.h | 67 +++++++++
10 files changed, 356 insertions(+), 34 deletions(-)
--
2.43.0
More information about the Intel-xe
mailing list