Re: [PATCH v2 07/15] drm/i915: Protect the request->global_seqno with the engine->timeline lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 22/02/2017 12:45, Chris Wilson wrote:
On Wed, Feb 22, 2017 at 12:29:00PM +0000, Tvrtko Ursulin wrote:

On 22/02/2017 11:46, Chris Wilson wrote:
A request is assigned a global seqno only when it is on the hardware
execution queue. The global seqno can be used to maintain a list of
requests on the same engine in retirement order, for example for
constructing a priority queue for waiting. Prior to its execution, or
if it is subsequently removed in the event of preemption, its global
seqno is zero. As both insertion and removal from the execution queue
may operate in IRQ context, it is not guarded by the usual struct_mutex
BKL. Instead those relying on the global seqno must be prepared for its
value to change between reads. Only when the request is complete can
the global seqno be stable (due to the memory barriers on submitting
the commands to the hardware to write the breadcrumb, if the HWS shows
that it has passed the global seqno and the global seqno is unchanged
after the read, it is indeed complete).

Missed some questions I've raised on this one in the previous round.

Just missed it when scanning for opens from the threads.

I never got round re-reading it if you were waiting for that by any chance.

Looks like it is one you have to read after seeing where the series
goes.

Yes I did not peek ahead when reading it the first time. Looks fine.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>

Regards,

Tvrtko

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux