All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Jason Ekstrand <jason@jlekstrand.net>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 00/30] drm/i915/gem: ioctl clean-ups (v9)
Date: Thu, 8 Jul 2021 19:55:19 +0200	[thread overview]
Message-ID: <YOc8B0qoJzQqbKzY@phenom.ffwll.local> (raw)
In-Reply-To: <20210708154835.528166-1-jason@jlekstrand.net>

On Thu, Jul 08, 2021 at 10:48:05AM -0500, Jason Ekstrand wrote:
> Overview:
> ---------
> 
> This patch series attempts to clean up some of the IOCTL mess we've created
> over the last few years.  The most egregious bit being context mutability.
> In summary, this series:
> 
>  1. Drops two never-used context params: RINGSIZE and NO_ZEROMAP
>  2. Drops the entire CONTEXT_CLONE API
>  3. Implements SINGLE_TIMELINE with a syncobj instead of actually sharing
>     intel_timeline between engines.
>  4. Adds a few sanity restrictions to the balancing/bonding API.
>  5. Implements a proto-ctx mechanism so that the engine set and VM can only
>     be set early on in the lifetime of a context, before anything ever
>     executes on it.  This effectively makes the VM and engine set
>     immutable.
> 
> This series has been tested with IGT as well as the Iris, ANV, and the
> Intel media driver doing an 8K decode (this uses bonding/balancing).  I've
> also done quite a bit of git archeology to ensure that nothing in here will
> break anything that's already shipped at some point in history.  It's
> possible I've missed something, but I've dug quite a bit.
> 
> 
> Details and motivation:
> -----------------------
> 
> In very broad strokes, there's an effort going on right now within Intel to
> try and clean up and simplify i915 anywhere we can.  We obviously don't
> want to break any shipping userspace but, as can be seen by this series,
> there's a lot i915 theoretically supports which userspace doesn't actually
> need.  Some of this, like the two context params used here, were simply
> oversights where we went through the usual API review process and merged
> the i915 bits but the userspace bits never landed for some reason.
> 
> Not all are so innocent, however.  For instance, there's an entire context
> cloning API which allows one to create a context with certain parameters
> "cloned" from some other context.  This entire API has never been used by
> any userspace except IGT and there were never patches to any other
> userspace to use it.  It never should have landed.  Also, when we added
> support for setting explicit engine sets and sharing VMs across contexts,
> people decided to do so via SET_CONTEXT_PARAM.  While this allowed them to
> re-use existing API, it did so at the cost of making those states mutable
> which leads to a plethora of potential race conditions.  There were even
> IGT tests merged to cover some of theses:
> 
>  - gem_vm_create@async-destroy and gem_vm_create@destroy-race which test
>    swapping out the VM on a running context.
> 
>  - gem_ctx_persistence@replace* which test whether a client can escape a
>    non-persistent context by submitting a hanging batch and then swapping
>    out the engine set before the hang is detected.
> 
>  - api_intel_bb@bb-with-vm which tests the that intel_bb_assign_vm works
>    properly.  This API is never used by any other IGT test.
> 
> There is also an entire deferred flush and set state framework in
> i915_gem_cotnext.c which exists for safely swapping out the VM while there
> is work in-flight on a context.
> 
> So, clearly people knew that this API was inherently racy and difficult to
> implement but they landed it anyway.  Why?  The best explanation I've been
> given is because it makes the API more "unified" or "symmetric" for this
> stuff to go through SET_CONTEXT_PARAM.  It's not because any userspace
> actually wants to be able to swap out the VM or the set of engines on a
> running context.  That would be utterly insane.
> 
> This patch series cleans up this particular mess by introducing the concept
> of a i915_gem_proto_context data structure which contains context creation
> information.  When you initially call GEM_CONTEXT_CREATE, a proto-context
> in created instead of an actual context.  Then, the first time something is
> done on the context besides SET_CONTEXT_PARAM, an actual context is
> created.  This allows us to keep the old drivers which use
> SET_CONTEXT_PARAM to set up the engine set (see also media) while ensuring
> that, once you have an i915_gem_context, the VM and the engine set are
> immutable state.
> 
> Eventually, there are more clean-ups I'd like to do on top of this which
> should make working with contexts inside i915 simpler and safer:
> 
>  1. Move the GEM handle -> vma LUT from i915_gem_context into either
>     i915_ppgtt or drm_i915_file_private depending on whether or not the
>     hardware has a full PPGTT.
> 
>  2. Move the delayed context destruction code into intel_context or a
>     per-engine wrapper struct rather than i915_gem_context.
> 
>  3. Get rid of the separation between context close and context destroy
> 
>  4. Get rid of the RCU on i915_gem_context
> 
> However, these should probably be done as a separate patch series as this
> one is already starting to get longish, especially if you consider the 89
> IGT patches that go along with it.
> 
> Test-with: 20210707210215.351483-1-jason@jlekstrand.net
> 
> Jason Ekstrand (30):
>   drm/i915: Drop I915_CONTEXT_PARAM_RINGSIZE
>   drm/i915: Stop storing the ring size in the ring pointer (v3)
>   drm/i915: Drop I915_CONTEXT_PARAM_NO_ZEROMAP
>   drm/i915/gem: Set the watchdog timeout directly in
>     intel_context_set_gem (v2)
>   drm/i915/gem: Return void from context_apply_all
>   drm/i915: Drop the CONTEXT_CLONE API (v2)
>   drm/i915: Implement SINGLE_TIMELINE with a syncobj (v4)
>   drm/i915: Drop getparam support for I915_CONTEXT_PARAM_ENGINES
>   drm/i915/gem: Disallow bonding of virtual engines (v3)
>   drm/i915/gem: Remove engine auto-magic with FENCE_SUBMIT (v2)
>   drm/i915/request: Remove the hook from await_execution
>   drm/i915/gem: Disallow creating contexts with too many engines
>   drm/i915: Stop manually RCU banging in reset_stats_ioctl (v2)
>   drm/i915/gem: Add a separate validate_priority helper
>   drm/i915: Add gem/i915_gem_context.h to the docs
>   drm/i915/gem: Add an intermediate proto_context struct (v5)
>   drm/i915/gem: Rework error handling in default_engines
>   drm/i915/gem: Optionally set SSEU in intel_context_set_gem
>   drm/i915: Add an i915_gem_vm_lookup helper
>   drm/i915/gem: Make an alignment check more sensible
>   drm/i915/gem: Use the proto-context to handle create parameters (v5)
>   drm/i915/gem: Return an error ptr from context_lookup
>   drm/i915/gt: Drop i915_address_space::file (v2)
>   drm/i915/gem: Delay context creation (v3)
>   drm/i915/gem: Don't allow changing the VM on running contexts (v4)
>   drm/i915/gem: Don't allow changing the engine set on running contexts
>     (v3)
>   drm/i915/selftests: Take a VM in kernel_context()
>   i915/gem/selftests: Assign the VM at context creation in
>     igt_shared_ctx_exec
>   drm/i915/gem: Roll all of context creation together
>   drm/i915: Finalize contexts in GEM_CONTEXT_CREATE on version 13+

Applied everything, thanks a lot.

Now, could we bake all this hard-earned knowledge about how the uapi
actually works into some kerneldoc for the uapi header?

Thanks, Daniel

> 
>  Documentation/gpu/i915.rst                    |    2 +
>  drivers/gpu/drm/i915/Makefile                 |    1 -
>  drivers/gpu/drm/i915/gem/i915_gem_context.c   | 2926 ++++++++---------
>  drivers/gpu/drm/i915/gem/i915_gem_context.h   |    3 +
>  .../gpu/drm/i915/gem/i915_gem_context_types.h |  196 +-
>  .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   31 +-
>  .../drm/i915/gem/selftests/i915_gem_context.c |  127 +-
>  .../gpu/drm/i915/gem/selftests/mock_context.c |   67 +-
>  .../gpu/drm/i915/gem/selftests/mock_context.h |    4 +-
>  drivers/gpu/drm/i915/gt/intel_context.c       |    3 +-
>  drivers/gpu/drm/i915/gt/intel_context.h       |    5 -
>  drivers/gpu/drm/i915/gt/intel_context_param.c |   63 -
>  drivers/gpu/drm/i915/gt/intel_context_param.h |    6 +-
>  drivers/gpu/drm/i915/gt/intel_context_types.h |    1 +
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c     |    3 +-
>  drivers/gpu/drm/i915/gt/intel_engine_types.h  |    7 -
>  .../drm/i915/gt/intel_execlists_submission.c  |  114 -
>  .../drm/i915/gt/intel_execlists_submission.h  |    8 +-
>  drivers/gpu/drm/i915/gt/intel_gtt.h           |   11 -
>  drivers/gpu/drm/i915/gt/intel_lrc.c           |    2 +-
>  drivers/gpu/drm/i915/gt/intel_migrate.c       |    3 +-
>  drivers/gpu/drm/i915/gt/selftest_execlists.c  |  251 +-
>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c  |    2 +-
>  drivers/gpu/drm/i915/gt/selftest_mocs.c       |    2 +-
>  drivers/gpu/drm/i915/gt/selftest_timeline.c   |    2 +-
>  drivers/gpu/drm/i915/gvt/scheduler.c          |    7 +-
>  drivers/gpu/drm/i915/i915_drv.h               |   82 +-
>  drivers/gpu/drm/i915/i915_perf.c              |    4 +-
>  drivers/gpu/drm/i915/i915_request.c           |   42 +-
>  drivers/gpu/drm/i915/i915_request.h           |    4 +-
>  .../drm/i915/selftests/i915_mock_selftests.h  |    1 -
>  drivers/gpu/drm/i915/selftests/mock_gtt.c     |    1 -
>  include/uapi/drm/i915_drm.h                   |   40 +-
>  33 files changed, 1681 insertions(+), 2340 deletions(-)
>  delete mode 100644 drivers/gpu/drm/i915/gt/intel_context_param.c
> 
> -- 
> 2.31.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel@ffwll.ch>
To: Jason Ekstrand <jason@jlekstrand.net>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 00/30] drm/i915/gem: ioctl clean-ups (v9)
Date: Thu, 8 Jul 2021 19:55:19 +0200	[thread overview]
Message-ID: <YOc8B0qoJzQqbKzY@phenom.ffwll.local> (raw)
In-Reply-To: <20210708154835.528166-1-jason@jlekstrand.net>

On Thu, Jul 08, 2021 at 10:48:05AM -0500, Jason Ekstrand wrote:
> Overview:
> ---------
> 
> This patch series attempts to clean up some of the IOCTL mess we've created
> over the last few years.  The most egregious bit being context mutability.
> In summary, this series:
> 
>  1. Drops two never-used context params: RINGSIZE and NO_ZEROMAP
>  2. Drops the entire CONTEXT_CLONE API
>  3. Implements SINGLE_TIMELINE with a syncobj instead of actually sharing
>     intel_timeline between engines.
>  4. Adds a few sanity restrictions to the balancing/bonding API.
>  5. Implements a proto-ctx mechanism so that the engine set and VM can only
>     be set early on in the lifetime of a context, before anything ever
>     executes on it.  This effectively makes the VM and engine set
>     immutable.
> 
> This series has been tested with IGT as well as the Iris, ANV, and the
> Intel media driver doing an 8K decode (this uses bonding/balancing).  I've
> also done quite a bit of git archeology to ensure that nothing in here will
> break anything that's already shipped at some point in history.  It's
> possible I've missed something, but I've dug quite a bit.
> 
> 
> Details and motivation:
> -----------------------
> 
> In very broad strokes, there's an effort going on right now within Intel to
> try and clean up and simplify i915 anywhere we can.  We obviously don't
> want to break any shipping userspace but, as can be seen by this series,
> there's a lot i915 theoretically supports which userspace doesn't actually
> need.  Some of this, like the two context params used here, were simply
> oversights where we went through the usual API review process and merged
> the i915 bits but the userspace bits never landed for some reason.
> 
> Not all are so innocent, however.  For instance, there's an entire context
> cloning API which allows one to create a context with certain parameters
> "cloned" from some other context.  This entire API has never been used by
> any userspace except IGT and there were never patches to any other
> userspace to use it.  It never should have landed.  Also, when we added
> support for setting explicit engine sets and sharing VMs across contexts,
> people decided to do so via SET_CONTEXT_PARAM.  While this allowed them to
> re-use existing API, it did so at the cost of making those states mutable
> which leads to a plethora of potential race conditions.  There were even
> IGT tests merged to cover some of theses:
> 
>  - gem_vm_create@async-destroy and gem_vm_create@destroy-race which test
>    swapping out the VM on a running context.
> 
>  - gem_ctx_persistence@replace* which test whether a client can escape a
>    non-persistent context by submitting a hanging batch and then swapping
>    out the engine set before the hang is detected.
> 
>  - api_intel_bb@bb-with-vm which tests the that intel_bb_assign_vm works
>    properly.  This API is never used by any other IGT test.
> 
> There is also an entire deferred flush and set state framework in
> i915_gem_cotnext.c which exists for safely swapping out the VM while there
> is work in-flight on a context.
> 
> So, clearly people knew that this API was inherently racy and difficult to
> implement but they landed it anyway.  Why?  The best explanation I've been
> given is because it makes the API more "unified" or "symmetric" for this
> stuff to go through SET_CONTEXT_PARAM.  It's not because any userspace
> actually wants to be able to swap out the VM or the set of engines on a
> running context.  That would be utterly insane.
> 
> This patch series cleans up this particular mess by introducing the concept
> of a i915_gem_proto_context data structure which contains context creation
> information.  When you initially call GEM_CONTEXT_CREATE, a proto-context
> in created instead of an actual context.  Then, the first time something is
> done on the context besides SET_CONTEXT_PARAM, an actual context is
> created.  This allows us to keep the old drivers which use
> SET_CONTEXT_PARAM to set up the engine set (see also media) while ensuring
> that, once you have an i915_gem_context, the VM and the engine set are
> immutable state.
> 
> Eventually, there are more clean-ups I'd like to do on top of this which
> should make working with contexts inside i915 simpler and safer:
> 
>  1. Move the GEM handle -> vma LUT from i915_gem_context into either
>     i915_ppgtt or drm_i915_file_private depending on whether or not the
>     hardware has a full PPGTT.
> 
>  2. Move the delayed context destruction code into intel_context or a
>     per-engine wrapper struct rather than i915_gem_context.
> 
>  3. Get rid of the separation between context close and context destroy
> 
>  4. Get rid of the RCU on i915_gem_context
> 
> However, these should probably be done as a separate patch series as this
> one is already starting to get longish, especially if you consider the 89
> IGT patches that go along with it.
> 
> Test-with: 20210707210215.351483-1-jason@jlekstrand.net
> 
> Jason Ekstrand (30):
>   drm/i915: Drop I915_CONTEXT_PARAM_RINGSIZE
>   drm/i915: Stop storing the ring size in the ring pointer (v3)
>   drm/i915: Drop I915_CONTEXT_PARAM_NO_ZEROMAP
>   drm/i915/gem: Set the watchdog timeout directly in
>     intel_context_set_gem (v2)
>   drm/i915/gem: Return void from context_apply_all
>   drm/i915: Drop the CONTEXT_CLONE API (v2)
>   drm/i915: Implement SINGLE_TIMELINE with a syncobj (v4)
>   drm/i915: Drop getparam support for I915_CONTEXT_PARAM_ENGINES
>   drm/i915/gem: Disallow bonding of virtual engines (v3)
>   drm/i915/gem: Remove engine auto-magic with FENCE_SUBMIT (v2)
>   drm/i915/request: Remove the hook from await_execution
>   drm/i915/gem: Disallow creating contexts with too many engines
>   drm/i915: Stop manually RCU banging in reset_stats_ioctl (v2)
>   drm/i915/gem: Add a separate validate_priority helper
>   drm/i915: Add gem/i915_gem_context.h to the docs
>   drm/i915/gem: Add an intermediate proto_context struct (v5)
>   drm/i915/gem: Rework error handling in default_engines
>   drm/i915/gem: Optionally set SSEU in intel_context_set_gem
>   drm/i915: Add an i915_gem_vm_lookup helper
>   drm/i915/gem: Make an alignment check more sensible
>   drm/i915/gem: Use the proto-context to handle create parameters (v5)
>   drm/i915/gem: Return an error ptr from context_lookup
>   drm/i915/gt: Drop i915_address_space::file (v2)
>   drm/i915/gem: Delay context creation (v3)
>   drm/i915/gem: Don't allow changing the VM on running contexts (v4)
>   drm/i915/gem: Don't allow changing the engine set on running contexts
>     (v3)
>   drm/i915/selftests: Take a VM in kernel_context()
>   i915/gem/selftests: Assign the VM at context creation in
>     igt_shared_ctx_exec
>   drm/i915/gem: Roll all of context creation together
>   drm/i915: Finalize contexts in GEM_CONTEXT_CREATE on version 13+

Applied everything, thanks a lot.

Now, could we bake all this hard-earned knowledge about how the uapi
actually works into some kerneldoc for the uapi header?

Thanks, Daniel

> 
>  Documentation/gpu/i915.rst                    |    2 +
>  drivers/gpu/drm/i915/Makefile                 |    1 -
>  drivers/gpu/drm/i915/gem/i915_gem_context.c   | 2926 ++++++++---------
>  drivers/gpu/drm/i915/gem/i915_gem_context.h   |    3 +
>  .../gpu/drm/i915/gem/i915_gem_context_types.h |  196 +-
>  .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   31 +-
>  .../drm/i915/gem/selftests/i915_gem_context.c |  127 +-
>  .../gpu/drm/i915/gem/selftests/mock_context.c |   67 +-
>  .../gpu/drm/i915/gem/selftests/mock_context.h |    4 +-
>  drivers/gpu/drm/i915/gt/intel_context.c       |    3 +-
>  drivers/gpu/drm/i915/gt/intel_context.h       |    5 -
>  drivers/gpu/drm/i915/gt/intel_context_param.c |   63 -
>  drivers/gpu/drm/i915/gt/intel_context_param.h |    6 +-
>  drivers/gpu/drm/i915/gt/intel_context_types.h |    1 +
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c     |    3 +-
>  drivers/gpu/drm/i915/gt/intel_engine_types.h  |    7 -
>  .../drm/i915/gt/intel_execlists_submission.c  |  114 -
>  .../drm/i915/gt/intel_execlists_submission.h  |    8 +-
>  drivers/gpu/drm/i915/gt/intel_gtt.h           |   11 -
>  drivers/gpu/drm/i915/gt/intel_lrc.c           |    2 +-
>  drivers/gpu/drm/i915/gt/intel_migrate.c       |    3 +-
>  drivers/gpu/drm/i915/gt/selftest_execlists.c  |  251 +-
>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c  |    2 +-
>  drivers/gpu/drm/i915/gt/selftest_mocs.c       |    2 +-
>  drivers/gpu/drm/i915/gt/selftest_timeline.c   |    2 +-
>  drivers/gpu/drm/i915/gvt/scheduler.c          |    7 +-
>  drivers/gpu/drm/i915/i915_drv.h               |   82 +-
>  drivers/gpu/drm/i915/i915_perf.c              |    4 +-
>  drivers/gpu/drm/i915/i915_request.c           |   42 +-
>  drivers/gpu/drm/i915/i915_request.h           |    4 +-
>  .../drm/i915/selftests/i915_mock_selftests.h  |    1 -
>  drivers/gpu/drm/i915/selftests/mock_gtt.c     |    1 -
>  include/uapi/drm/i915_drm.h                   |   40 +-
>  33 files changed, 1681 insertions(+), 2340 deletions(-)
>  delete mode 100644 drivers/gpu/drm/i915/gt/intel_context_param.c
> 
> -- 
> 2.31.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2021-07-08 17:55 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-08 15:48 [PATCH 00/30] drm/i915/gem: ioctl clean-ups (v9) Jason Ekstrand
2021-07-08 15:48 ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 01/30] drm/i915: Drop I915_CONTEXT_PARAM_RINGSIZE Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 02/30] drm/i915: Stop storing the ring size in the ring pointer (v3) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 03/30] drm/i915: Drop I915_CONTEXT_PARAM_NO_ZEROMAP Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 04/30] drm/i915/gem: Set the watchdog timeout directly in intel_context_set_gem (v2) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 05/30] drm/i915/gem: Return void from context_apply_all Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 06/30] drm/i915: Drop the CONTEXT_CLONE API (v2) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 07/30] drm/i915: Implement SINGLE_TIMELINE with a syncobj (v4) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 08/30] drm/i915: Drop getparam support for I915_CONTEXT_PARAM_ENGINES Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 09/30] drm/i915/gem: Disallow bonding of virtual engines (v3) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 10/30] drm/i915/gem: Remove engine auto-magic with FENCE_SUBMIT (v2) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 11/30] drm/i915/request: Remove the hook from await_execution Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 12/30] drm/i915/gem: Disallow creating contexts with too many engines Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 13/30] drm/i915: Stop manually RCU banging in reset_stats_ioctl (v2) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 14/30] drm/i915/gem: Add a separate validate_priority helper Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 15/30] drm/i915: Add gem/i915_gem_context.h to the docs Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 16/30] drm/i915/gem: Add an intermediate proto_context struct (v5) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 17/30] drm/i915/gem: Rework error handling in default_engines Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 18/30] drm/i915/gem: Optionally set SSEU in intel_context_set_gem Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 19/30] drm/i915: Add an i915_gem_vm_lookup helper Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-10-22 15:30   ` Jani Nikula
2021-10-22 15:30     ` [Intel-gfx] " Jani Nikula
2021-07-08 15:48 ` [PATCH 20/30] drm/i915/gem: Make an alignment check more sensible Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 21/30] drm/i915/gem: Use the proto-context to handle create parameters (v5) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 22/30] drm/i915/gem: Return an error ptr from context_lookup Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 23/30] drm/i915/gt: Drop i915_address_space::file (v2) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 24/30] drm/i915/gem: Delay context creation (v3) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 25/30] drm/i915/gem: Don't allow changing the VM on running contexts (v4) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 26/30] drm/i915/gem: Don't allow changing the engine set on running contexts (v3) Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 27/30] drm/i915/selftests: Take a VM in kernel_context() Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 28/30] i915/gem/selftests: Assign the VM at context creation in igt_shared_ctx_exec Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 29/30] drm/i915/gem: Roll all of context creation together Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 15:48 ` [PATCH 30/30] drm/i915: Finalize contexts in GEM_CONTEXT_CREATE on version 13+ Jason Ekstrand
2021-07-08 15:48   ` [Intel-gfx] " Jason Ekstrand
2021-07-08 17:55 ` Daniel Vetter [this message]
2021-07-08 17:55   ` [Intel-gfx] [PATCH 00/30] drm/i915/gem: ioctl clean-ups (v9) Daniel Vetter
2021-07-08 22:19 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/gem: ioctl clean-ups (rev8) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YOc8B0qoJzQqbKzY@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jason@jlekstrand.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.