[Intel-xe] ✓ CI.checkpatch: success for Another attempt to fix two bind races
Patchwork
patchwork at emeril.freedesktop.org
Sun Jul 2 22:19:51 UTC 2023
== Series Details ==
Series: Another attempt to fix two bind races
URL : https://patchwork.freedesktop.org/series/120121/
State : success
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
c7d32770e3cd31d9fc134ce41f329b10aa33ee15
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 3c5c9b5d2a325f1177c6db1b6a2079fc99619b7f
Author: Matthew Brost <matthew.brost at intel.com>
Date: Sun Jul 2 15:17:10 2023 -0700
drm/xe: Make bind engines safe
We currently have a race between bind engines which can result in
corrupted page tables leading to faults.
A simple example:
bind A 0x0000-0x1000, engine A, has unsatisfied in-fence
bind B 0x1000-0x2000, engine B, no in-fences
exec A uses 0x1000-0x2000
Bind B will pass bind A and exec A will fault. This occurs as bind A
programs the root of the page table in a bind job which is held up by an
in-fence. Bind B in this case just programs a leaf entry of the
structure.
To fix this introduce a per VM maple tree to track cross engine
conflicts. In the above example bind A would insert an dependency in the
maple tree with a key of 0x0-0x7fffffffff, bind B would find that
dependency and its bind job would scheduled behind the unsatisfied
in-fence and bind A's job.
Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
Signed-off-by: Matthew Brost <matthew.brost at intel.com>
+ /mt/dim checkpatch 53bd6056f6ec9a4f6c341d4f24122ede47a43de9 drm-intel
a10aebd21 drm/xe: Make page-table updates using the default engine
3c5c9b5d2 drm/xe: Make bind engines safe
More information about the Intel-xe
mailing list