[PATCH v4 0/4] Have xe_vm and xe_exec_queue take references to xef

Umesh Nerlige Ramappa umesh.nerlige.ramappa at intel.com
Fri Jul 19 18:40:39 UTC 2024


On Fri, Jul 19, 2024 at 02:47:29AM -0500, Lucas De Marchi wrote:
>On Fri, Jul 19, 2024 at 07:16:19AM GMT, Matthew Brost wrote:
>>On Thu, Jul 18, 2024 at 02:05:44PM -0700, Umesh Nerlige Ramappa wrote:
>>>Just posting the revision that will be pushed for reference. This rev
>>>only has documentation changes compared to v2, so will not run CI on
>>>this.
>>>-----
>
>great. indeed no need to wait for CI.
>
>>>xe_file_close triggers an asynchronous queue cleanup and then frees up
>>>the xef object. Since queue cleanup flushes all pending jobs and the KMD
>>>stores client usage stats into the xef object after jobs are flushed, we
>>>see a use-after-free for the xef object. Resolve this by taking a
>>>reference to xef from xe_exec_queue.
>>>
>>>Issue: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1908
>>
>>It looks like not having ref to vm->xref is causing other issues too [1]
>>[2].
>>
>>Let's get this in ASAP.
>
>IN it is. There was only a minor conflict with drm-misc-next, but that
>was trivial to solve.

You beat me to it, I was having some dim ub trouble this morning. It 
keeps getting disconnected.

Thanks for pushing this.

Regards,
Umesh

>
>Thanks for this fix,
>
>Lucas De Marchi
>
>>
>>Matt
>>
>>[1] https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2273
>>[2] https://patchwork.freedesktop.org/patch/605099/?series=136240&rev=1
>>
>>>
>>>The series adds xef refcounting and ensures all consumers of xef take a
>>>ref to it.
>>>
>>>v2:
>>>- Include review comments from v1
>>>- Squash patch 3 and 5 from v1 to add Fixes/Closes tags
>>>
>>>v3:
>>>- kernel-doc fixes (Lucas, Matt)
>>>
>>>v4: Rebase to drm-tip
>>>
>>>Note: Patches 1 - 3 can be merged independently
>>>
>>>Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
>>>
>>>Umesh Nerlige Ramappa (4):
>>>  drm/xe: Move part of xe_file cleanup to a helper
>>>  drm/xe: Add ref counting for xe_file
>>>  drm/xe: Take a ref to xe file when user creates a VM
>>>  drm/xe: Fix use after free when client stats are captured
>>>
>>> drivers/gpu/drm/xe/xe_device.c           | 58 +++++++++++++++++++-----
>>> drivers/gpu/drm/xe/xe_device.h           |  3 ++
>>> drivers/gpu/drm/xe/xe_device_types.h     |  3 ++
>>> drivers/gpu/drm/xe/xe_drm_client.c       |  5 +-
>>> drivers/gpu/drm/xe/xe_exec_queue.c       | 10 +++-
>>> drivers/gpu/drm/xe/xe_exec_queue_types.h |  7 ++-
>>> drivers/gpu/drm/xe/xe_vm.c               |  6 ++-
>>> 7 files changed, 71 insertions(+), 21 deletions(-)
>>>
>>>--
>>>2.38.1
>>>


More information about the Intel-xe mailing list