[Intel-gfx] About dealing with CSB.context element switch in execlist mode.

Michel Thierry michel.thierry at intel.com
Wed Nov 25 05:14:42 PST 2015


On 11/25/2015 1:00 PM, Wang, Zhi A wrote:
> Another question about EXECLIST is: Can a preemption happen between element switch?
>
> I know this is beyond the scope of i915 a little. I'm just curious if it's possible.
>
> Let's say we have context A B C
>
> At first, we submit context A B in one ELSP write.
> Then, we submit context C in another ELSP write at some time.
>
> If context A or B is running and gets preempted, then there will be CSB.preempted in CSB buffer. This is the normal behavior.
>
> I'm wondering that if there is any possibility that a preemption can happen between the two elements.
>
> Then the CSB should look like:
>
> [CSB 0 idle-to-active]
> [CSB 1 CTX A element_switch/context_complete]
> [CSB 2 CTX C active-to-idle/context_complete]
>
> Is it possible?

I would expect to always have a preempted event in the CSB, even in the 
remote case that A already completed and B hasn't started; there was an 
active execlist and it has been replaced by a new one:

  [CSB 0 idle-to-active]
  [CSB 1 CTX A element_switch/context_complete]
  [CSB 2 preempted ]
  [CSB 3 CTX C active-to-idle/context_complete]


More information about the Intel-gfx mailing list