All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Brost <matthew.brost@intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: robdclark@chromium.org, airlied@linux.ie, lina@asahilina.net,
	dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
	boris.brezillon@collabora.com,
	"Christian König" <christian.koenig@amd.com>,
	faith.ekstrand@collabora.com
Subject: Re: [Intel-xe] [RFC PATCH 08/10] dma-buf/dma-fence: Introduce long-running completion fences
Date: Tue, 4 Apr 2023 20:03:51 +0000	[thread overview]
Message-ID: <ZCyCpyFmteD0uZ3v@DUT025-TGLU.fm.intel.com> (raw)
In-Reply-To: <CAKMK7uGeBJRQ4dKfY=wRvw-o7qdzurFHzUymxGsLWr4Y_nQPAA@mail.gmail.com>

On Tue, Apr 04, 2023 at 09:00:59PM +0200, Daniel Vetter wrote:
> On Tue, 4 Apr 2023 at 15:10, Christian König <christian.koenig@amd.com> wrote:
> >
> > Am 04.04.23 um 14:54 schrieb Thomas Hellström:
> > > Hi, Christian,
> > >
> > > On 4/4/23 11:09, Christian König wrote:
> > >> Am 04.04.23 um 02:22 schrieb Matthew Brost:
> > >>> From: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> > >>>
> > >>> For long-running workloads, drivers either need to open-code completion
> > >>> waits, invent their own synchronization primitives or internally use
> > >>> dma-fences that do not obey the cross-driver dma-fence protocol, but
> > >>> without any lockdep annotation all these approaches are error prone.
> > >>>
> > >>> So since for example the drm scheduler uses dma-fences it is
> > >>> desirable for
> > >>> a driver to be able to use it for throttling and error handling also
> > >>> with
> > >>> internal dma-fences tha do not obey the cros-driver dma-fence protocol.
> > >>>
> > >>> Introduce long-running completion fences in form of dma-fences, and add
> > >>> lockdep annotation for them. In particular:
> > >>>
> > >>> * Do not allow waiting under any memory management locks.
> > >>> * Do not allow to attach them to a dma-resv object.
> > >>> * Introduce a new interface for adding callbacks making the helper
> > >>> adding
> > >>>    a callback sign off on that it is aware that the dma-fence may not
> > >>>    complete anytime soon. Typically this will be the scheduler chaining
> > >>>    a new long-running fence on another one.
> > >>
> > >> Well that's pretty much what I tried before:
> > >> https://lwn.net/Articles/893704/
> > >>
> > >> And the reasons why it was rejected haven't changed.
> > >>
> > >> Regards,
> > >> Christian.
> > >>
> > > Yes, TBH this was mostly to get discussion going how we'd best tackle
> > > this problem while being able to reuse the scheduler for long-running
> > > workloads.
> > >
> > > I couldn't see any clear decision on your series, though, but one main
> > > difference I see is that this is intended for driver-internal use
> > > only. (I'm counting using the drm_scheduler as a helper for
> > > driver-private use). This is by no means a way to try tackle the
> > > indefinite fence problem.
> >
> > Well this was just my latest try to tackle this, but essentially the
> > problems are the same as with your approach: When we express such
> > operations as dma_fence there is always the change that we leak that
> > somewhere.
> >
> > My approach of adding a flag noting that this operation is dangerous and
> > can't be synced with something memory management depends on tried to
> > contain this as much as possible, but Daniel still pretty clearly
> > rejected it (for good reasons I think).
> 
> Yeah I still don't like dma_fence that somehow have totally different
> semantics in that critical piece of "will it complete or will it
> deadlock?" :-)

Not going to touch LR dma-fences in this reply, I think we can continue
the LR fence discussion of the fork of this thread I just responded to.
Have a response the preempt fence discussion below.

> >
> > >
> > > We could ofc invent a completely different data-type that abstracts
> > > the synchronization the scheduler needs in the long-running case, or
> > > each driver could hack something up, like sleeping in the
> > > prepare_job() or run_job() callback for throttling, but those waits
> > > should still be annotated in one way or annotated one way or another
> > > (and probably in a similar way across drivers) to make sure we don't
> > > do anything bad.
> > >
> > >  So any suggestions as to what would be the better solution here would
> > > be appreciated.
> >
> > Mhm, do we really the the GPU scheduler for that?
> >
> > I mean in the 1 to 1 case  you basically just need a component which
> > collects the dependencies as dma_fence and if all of them are fulfilled
> > schedules a work item.
> >
> > As long as the work item itself doesn't produce a dma_fence it can then
> > still just wait for other none dma_fence dependencies.
> 
> Yeah that's the important thing, for long-running jobs dependencies as
> dma_fence should be totally fine. You're just not allowed to have any
> outgoing dma_fences at all (except the magic preemption fence).
> 
> > Then the work function could submit the work and wait for the result.
> >
> > The work item would then pretty much represent what you want, you can
> > wait for it to finish and pass it along as long running dependency.
> >
> > Maybe give it a funky name and wrap it up in a structure, but that's
> > basically it.
> 
> Like do we need this? If the kernel ever waits for a long-running
> compute job to finnish I'd call that a bug. Any functional
> dependencies between engines or whatever are userspace's problem only,
> which it needs to sort out using userspace memory fences.
> 
> The only things the kernel needs are some way to track dependencies as
> dma_fence (because memory management move the memory away and we need
> to move it back in, ideally pipelined). And it needs the special
> preempt fence (if we don't have pagefaults) so that you have a fence
> to attach to all the dma_resv for memory management purposes. Now the
> scheduler already has almost all the pieces (at least if we assume
> there's some magic fw which time-slices these contexts on its own),
> and we just need a few minimal changes:
> - allowing the scheduler to ignore the completion fence and just
> immediately push the next "job" in if its dependencies are ready
> - maybe minimal amounts of scaffolding to handle the preemption
> dma_fence because that's not entirely trivial. I think ideally we'd
> put that into drm_sched_entity since you can only ever have one active
> preempt dma_fence per gpu ctx/entity.
> 

Yep, preempt fence is per entity in Xe (xe_engine). We install these
into the VM and all external BOs mapped in the VM dma-resv slots.
Wondering if we can make all of this very generic between the DRM
scheduler + GPUVA...

Matt

> None of this needs a dma_fence_is_lr anywhere at all.
> 
> Of course there's the somewhat related issue of "how do we transport
> these userspace memory fences around from app to compositor", and
> that's a lot more gnarly. I still don't think dma_fence_is_lr is
> anywhere near what the solution should look like for that.
> -Daniel
> 
> 
> > Regards,
> > Christian.
> >
> > >
> > > Thanks,
> > >
> > > Thomas
> > >
> > >
> > >
> > >
> > >
> >
> 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

WARNING: multiple messages have this Message-ID (diff)
From: Matthew Brost <matthew.brost@intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: robdclark@chromium.org,
	"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
	airlied@linux.ie, lina@asahilina.net,
	dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
	boris.brezillon@collabora.com,
	"Christian König" <christian.koenig@amd.com>,
	faith.ekstrand@collabora.com
Subject: Re: [RFC PATCH 08/10] dma-buf/dma-fence: Introduce long-running completion fences
Date: Tue, 4 Apr 2023 20:03:51 +0000	[thread overview]
Message-ID: <ZCyCpyFmteD0uZ3v@DUT025-TGLU.fm.intel.com> (raw)
In-Reply-To: <CAKMK7uGeBJRQ4dKfY=wRvw-o7qdzurFHzUymxGsLWr4Y_nQPAA@mail.gmail.com>

On Tue, Apr 04, 2023 at 09:00:59PM +0200, Daniel Vetter wrote:
> On Tue, 4 Apr 2023 at 15:10, Christian König <christian.koenig@amd.com> wrote:
> >
> > Am 04.04.23 um 14:54 schrieb Thomas Hellström:
> > > Hi, Christian,
> > >
> > > On 4/4/23 11:09, Christian König wrote:
> > >> Am 04.04.23 um 02:22 schrieb Matthew Brost:
> > >>> From: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> > >>>
> > >>> For long-running workloads, drivers either need to open-code completion
> > >>> waits, invent their own synchronization primitives or internally use
> > >>> dma-fences that do not obey the cross-driver dma-fence protocol, but
> > >>> without any lockdep annotation all these approaches are error prone.
> > >>>
> > >>> So since for example the drm scheduler uses dma-fences it is
> > >>> desirable for
> > >>> a driver to be able to use it for throttling and error handling also
> > >>> with
> > >>> internal dma-fences tha do not obey the cros-driver dma-fence protocol.
> > >>>
> > >>> Introduce long-running completion fences in form of dma-fences, and add
> > >>> lockdep annotation for them. In particular:
> > >>>
> > >>> * Do not allow waiting under any memory management locks.
> > >>> * Do not allow to attach them to a dma-resv object.
> > >>> * Introduce a new interface for adding callbacks making the helper
> > >>> adding
> > >>>    a callback sign off on that it is aware that the dma-fence may not
> > >>>    complete anytime soon. Typically this will be the scheduler chaining
> > >>>    a new long-running fence on another one.
> > >>
> > >> Well that's pretty much what I tried before:
> > >> https://lwn.net/Articles/893704/
> > >>
> > >> And the reasons why it was rejected haven't changed.
> > >>
> > >> Regards,
> > >> Christian.
> > >>
> > > Yes, TBH this was mostly to get discussion going how we'd best tackle
> > > this problem while being able to reuse the scheduler for long-running
> > > workloads.
> > >
> > > I couldn't see any clear decision on your series, though, but one main
> > > difference I see is that this is intended for driver-internal use
> > > only. (I'm counting using the drm_scheduler as a helper for
> > > driver-private use). This is by no means a way to try tackle the
> > > indefinite fence problem.
> >
> > Well this was just my latest try to tackle this, but essentially the
> > problems are the same as with your approach: When we express such
> > operations as dma_fence there is always the change that we leak that
> > somewhere.
> >
> > My approach of adding a flag noting that this operation is dangerous and
> > can't be synced with something memory management depends on tried to
> > contain this as much as possible, but Daniel still pretty clearly
> > rejected it (for good reasons I think).
> 
> Yeah I still don't like dma_fence that somehow have totally different
> semantics in that critical piece of "will it complete or will it
> deadlock?" :-)

Not going to touch LR dma-fences in this reply, I think we can continue
the LR fence discussion of the fork of this thread I just responded to.
Have a response the preempt fence discussion below.

> >
> > >
> > > We could ofc invent a completely different data-type that abstracts
> > > the synchronization the scheduler needs in the long-running case, or
> > > each driver could hack something up, like sleeping in the
> > > prepare_job() or run_job() callback for throttling, but those waits
> > > should still be annotated in one way or annotated one way or another
> > > (and probably in a similar way across drivers) to make sure we don't
> > > do anything bad.
> > >
> > >  So any suggestions as to what would be the better solution here would
> > > be appreciated.
> >
> > Mhm, do we really the the GPU scheduler for that?
> >
> > I mean in the 1 to 1 case  you basically just need a component which
> > collects the dependencies as dma_fence and if all of them are fulfilled
> > schedules a work item.
> >
> > As long as the work item itself doesn't produce a dma_fence it can then
> > still just wait for other none dma_fence dependencies.
> 
> Yeah that's the important thing, for long-running jobs dependencies as
> dma_fence should be totally fine. You're just not allowed to have any
> outgoing dma_fences at all (except the magic preemption fence).
> 
> > Then the work function could submit the work and wait for the result.
> >
> > The work item would then pretty much represent what you want, you can
> > wait for it to finish and pass it along as long running dependency.
> >
> > Maybe give it a funky name and wrap it up in a structure, but that's
> > basically it.
> 
> Like do we need this? If the kernel ever waits for a long-running
> compute job to finnish I'd call that a bug. Any functional
> dependencies between engines or whatever are userspace's problem only,
> which it needs to sort out using userspace memory fences.
> 
> The only things the kernel needs are some way to track dependencies as
> dma_fence (because memory management move the memory away and we need
> to move it back in, ideally pipelined). And it needs the special
> preempt fence (if we don't have pagefaults) so that you have a fence
> to attach to all the dma_resv for memory management purposes. Now the
> scheduler already has almost all the pieces (at least if we assume
> there's some magic fw which time-slices these contexts on its own),
> and we just need a few minimal changes:
> - allowing the scheduler to ignore the completion fence and just
> immediately push the next "job" in if its dependencies are ready
> - maybe minimal amounts of scaffolding to handle the preemption
> dma_fence because that's not entirely trivial. I think ideally we'd
> put that into drm_sched_entity since you can only ever have one active
> preempt dma_fence per gpu ctx/entity.
> 

Yep, preempt fence is per entity in Xe (xe_engine). We install these
into the VM and all external BOs mapped in the VM dma-resv slots.
Wondering if we can make all of this very generic between the DRM
scheduler + GPUVA...

Matt

> None of this needs a dma_fence_is_lr anywhere at all.
> 
> Of course there's the somewhat related issue of "how do we transport
> these userspace memory fences around from app to compositor", and
> that's a lot more gnarly. I still don't think dma_fence_is_lr is
> anywhere near what the solution should look like for that.
> -Daniel
> 
> 
> > Regards,
> > Christian.
> >
> > >
> > > Thanks,
> > >
> > > Thomas
> > >
> > >
> > >
> > >
> > >
> >
> 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

  reply	other threads:[~2023-04-04 20:04 UTC|newest]

Thread overview: 176+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-04  0:22 [Intel-xe] [RFC PATCH 00/10] Xe DRM scheduler and long running workload plans Matthew Brost
2023-04-04  0:22 ` Matthew Brost
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 01/10] drm/sched: Convert drm scheduler to use a work queue rather than kthread Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-06-09  6:58   ` [Intel-xe] " Boris Brezillon
2023-06-09  6:58     ` Boris Brezillon
2023-07-31  0:56     ` [Intel-xe] " Matthew Brost
2023-07-31  0:56       ` Matthew Brost
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 02/10] drm/sched: Move schedule policy to scheduler / entity Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-04-04  7:24   ` kernel test robot
2023-04-05 17:37   ` [Intel-xe] " Luben Tuikov
2023-04-05 17:37     ` Luben Tuikov
2023-04-05 18:29     ` [Intel-xe] " Matthew Brost
2023-04-05 18:29       ` Matthew Brost
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 03/10] drm/sched: Add DRM_SCHED_POLICY_SINGLE_ENTITY scheduling policy Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 04/10] drm/sched: Add generic scheduler message interface Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-05-04  5:28   ` [Intel-xe] " Luben Tuikov
2023-05-04  5:28     ` Luben Tuikov
2023-07-31  2:42     ` [Intel-xe] " Matthew Brost
2023-07-31  2:42       ` Matthew Brost
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 05/10] drm/sched: Start run wq before TDR in drm_sched_start Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 06/10] drm/sched: Submit job before starting TDR Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-05-04  5:23   ` [Intel-xe] " Luben Tuikov
2023-05-04  5:23     ` Luben Tuikov
2023-07-31  1:00     ` [Intel-xe] " Matthew Brost
2023-07-31  1:00       ` Matthew Brost
2023-07-31  7:26       ` [Intel-xe] " Boris Brezillon
2023-07-31  7:26         ` Boris Brezillon
2023-08-31 19:48         ` [Intel-xe] " Luben Tuikov
2023-08-31 19:48           ` Luben Tuikov
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 07/10] drm/sched: Add helper to set TDR timeout Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-05-04  5:28   ` [Intel-xe] " Luben Tuikov
2023-05-04  5:28     ` Luben Tuikov
2023-07-31  1:09     ` [Intel-xe] " Matthew Brost
2023-07-31  1:09       ` Matthew Brost
2023-08-31 19:52       ` [Intel-xe] " Luben Tuikov
2023-08-31 19:52         ` Luben Tuikov
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 08/10] dma-buf/dma-fence: Introduce long-running completion fences Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-04-04  5:18   ` kernel test robot
2023-04-04  9:09   ` [Intel-xe] " Christian König
2023-04-04  9:09     ` Christian König
2023-04-04 12:54     ` [Intel-xe] " Thomas Hellström
2023-04-04 12:54       ` Thomas Hellström
2023-04-04 13:10       ` [Intel-xe] " Christian König
2023-04-04 13:10         ` Christian König
2023-04-04 18:14         ` [Intel-xe] " Thomas Hellström (Intel)
2023-04-04 18:14           ` Thomas Hellström (Intel)
2023-04-04 19:02           ` [Intel-xe] " Matthew Brost
2023-04-04 19:02             ` Matthew Brost
2023-04-04 19:25             ` [Intel-xe] " Daniel Vetter
2023-04-04 19:25               ` Daniel Vetter
2023-04-04 19:48               ` [Intel-xe] " Matthew Brost
2023-04-04 19:48                 ` Matthew Brost
2023-04-05 13:09                 ` [Intel-xe] " Daniel Vetter
2023-04-05 13:09                   ` Daniel Vetter
2023-04-05 23:58                   ` [Intel-xe] " Matthew Brost
2023-04-05 23:58                     ` Matthew Brost
2023-04-06  6:32                     ` [Intel-xe] " Daniel Vetter
2023-04-06  6:32                       ` Daniel Vetter
2023-04-06 16:58                       ` [Intel-xe] " Matthew Brost
2023-04-06 16:58                         ` Matthew Brost
2023-04-06 17:09                         ` [Intel-xe] " Daniel Vetter
2023-04-06 17:09                           ` Daniel Vetter
2023-04-05 12:35               ` [Intel-xe] " Thomas Hellström
2023-04-05 12:35                 ` Thomas Hellström
2023-04-05 12:39                 ` [Intel-xe] " Christian König
2023-04-05 12:39                   ` Christian König
2023-04-05 12:45                   ` [Intel-xe] " Daniel Vetter
2023-04-05 12:45                     ` Daniel Vetter
2023-04-05 14:08                     ` [Intel-xe] " Christian König
2023-04-05 14:08                       ` Christian König
2023-04-04 19:00         ` [Intel-xe] " Daniel Vetter
2023-04-04 19:00           ` Daniel Vetter
2023-04-04 20:03           ` Matthew Brost [this message]
2023-04-04 20:03             ` Matthew Brost
2023-04-04 20:11             ` [Intel-xe] " Daniel Vetter
2023-04-04 20:11               ` Daniel Vetter
2023-04-04 20:19               ` [Intel-xe] " Matthew Brost
2023-04-04 20:19                 ` Matthew Brost
2023-04-04 20:31                 ` [Intel-xe] " Daniel Vetter
2023-04-04 20:31                   ` Daniel Vetter
2023-04-04 20:46                   ` [Intel-xe] " Matthew Brost
2023-04-04 20:46                     ` Matthew Brost
2023-04-04 14:45   ` kernel test robot
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 09/10] drm/sched: Support long-running sched entities Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-04-04  0:22 ` [Intel-xe] [RFC PATCH 10/10] drm/syncobj: Warn on long running dma-fences Matthew Brost
2023-04-04  0:22   ` Matthew Brost
2023-04-04  0:24 ` [Intel-xe] ✗ CI.Patch_applied: failure for Xe DRM scheduler and long running workload plans Patchwork
2023-04-04  1:07 ` [Intel-xe] [RFC PATCH 00/10] " Asahi Lina
2023-04-04  1:07   ` Asahi Lina
2023-04-04  1:58   ` [Intel-xe] " Matthew Brost
2023-04-04  1:58     ` Matthew Brost
2023-04-08  7:05     ` [Intel-xe] " Asahi Lina
2023-04-08  7:05       ` Asahi Lina
2023-04-11 14:07       ` [Intel-xe] " Daniel Vetter
2023-04-11 14:07         ` Daniel Vetter
2023-04-12  5:47         ` [Intel-xe] " Asahi Lina
2023-04-12  5:47           ` Asahi Lina
2023-04-12  8:18           ` [Intel-xe] " Daniel Vetter
2023-04-12  8:18             ` Daniel Vetter
2023-04-17  0:03       ` [Intel-xe] " Matthew Brost
2023-04-17  0:03         ` Matthew Brost
2023-04-04  9:04 ` [Intel-xe] " Christian König
2023-04-04  9:04   ` Christian König
2023-04-04 13:23   ` [Intel-xe] " Matthew Brost
2023-04-04 13:23     ` Matthew Brost
2023-04-04  9:13 ` [Intel-xe] " Christian König
2023-04-04  9:13   ` Christian König
2023-04-04 13:37   ` [Intel-xe] " Matthew Brost
2023-04-04 13:37     ` Matthew Brost
2023-04-05  7:41     ` [Intel-xe] " Christian König
2023-04-05  7:41       ` Christian König
2023-04-05  8:34       ` [Intel-xe] " Daniel Vetter
2023-04-05  8:34         ` Daniel Vetter
2023-04-05  8:53         ` [Intel-xe] " Christian König
2023-04-05  8:53           ` Christian König
2023-04-05  9:07           ` [Intel-xe] " Daniel Vetter
2023-04-05  9:07             ` Daniel Vetter
2023-04-05  9:57             ` [Intel-xe] " Christian König
2023-04-05  9:57               ` Christian König
2023-04-05 10:12               ` [Intel-xe] " Daniel Vetter
2023-04-05 10:12                 ` Daniel Vetter
2023-04-06  2:08                 ` [Intel-xe] " Matthew Brost
2023-04-06  2:08                   ` Matthew Brost
2023-04-06  6:37                   ` [Intel-xe] " Daniel Vetter
2023-04-06  6:37                     ` Daniel Vetter
2023-04-06 10:14                     ` [Intel-xe] " Christian König
2023-04-06 10:14                       ` Christian König
2023-04-06 10:32                       ` [Intel-xe] " Daniel Vetter
2023-04-06 10:32                         ` Daniel Vetter
2023-04-04  9:43 ` [Intel-xe] " Tvrtko Ursulin
2023-04-04  9:43   ` Tvrtko Ursulin
2023-04-04  9:48   ` [Intel-xe] " Christian König
2023-04-04  9:48     ` Christian König
2023-04-04 13:43     ` [Intel-xe] " Matthew Brost
2023-04-04 13:43       ` Matthew Brost
2023-04-04 13:52   ` [Intel-xe] " Matthew Brost
2023-04-04 13:52     ` Matthew Brost
2023-04-04 17:29     ` [Intel-xe] " Tvrtko Ursulin
2023-04-04 17:29       ` Tvrtko Ursulin
2023-04-04 19:07       ` [Intel-xe] " Daniel Vetter
2023-04-04 19:07         ` Daniel Vetter
2023-04-04 18:02 ` [Intel-xe] " Zeng, Oak
2023-04-04 18:02   ` Zeng, Oak
2023-04-04 18:08   ` [Intel-xe] " Matthew Brost
2023-04-04 18:08     ` Matthew Brost
2023-04-05  7:30     ` [Intel-xe] " Christian König
2023-04-05  7:30       ` Christian König
2023-04-05  8:42       ` [Intel-xe] " Daniel Vetter
2023-04-05  8:42         ` Daniel Vetter
2023-04-05 18:06       ` [Intel-xe] " Zeng, Oak
2023-04-05 18:06         ` Zeng, Oak
2023-04-05 18:53         ` [Intel-xe] " Matthew Brost
2023-04-05 18:53           ` Matthew Brost
2023-04-06 10:04           ` [Intel-xe] " Christian König
2023-04-06 10:04             ` Christian König
2023-04-07  0:20           ` [Intel-xe] " Zeng, Oak
2023-04-07  0:20             ` Zeng, Oak
2023-04-11  9:02             ` [Intel-xe] " Christian König
2023-04-11  9:02               ` Christian König
2023-04-11 14:13               ` [Intel-xe] " Daniel Vetter
2023-04-11 14:13                 ` Daniel Vetter
2023-04-17  6:47                 ` [Intel-xe] " Christian König
2023-04-17  6:47                   ` Christian König
2023-04-17  8:39                   ` [Intel-xe] " Daniel Vetter
2023-04-17  8:39                     ` Daniel Vetter
2023-04-18 15:10 ` [Intel-xe] " Liviu Dudau
2023-04-18 15:10   ` Liviu Dudau

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=ZCyCpyFmteD0uZ3v@DUT025-TGLU.fm.intel.com \
    --to=matthew.brost@intel.com \
    --cc=airlied@linux.ie \
    --cc=boris.brezillon@collabora.com \
    --cc=christian.koenig@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=faith.ekstrand@collabora.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=lina@asahilina.net \
    --cc=robdclark@chromium.org \
    /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.