<div dir="ltr">Hi! I learned that each pipe can manage multiple hardware queues from the previous discussion: <div><a href="https://lists.freedesktop.org/archives/amd-gfx/2018-February/019034.html">https://lists.freedesktop.org/archives/amd-gfx/2018-February/019034.html</a> . And I had a few questions about the details.</div><div>I was wondering that how a pipe switches between the hardware queues belong to it: </div><div>1. Dose the pipe process a queue continuously until the queue is empty? Or Dose it use round-robin with time-sharing between those hardware queues?</div><div>2. If the former, is it possible that some hardware queues suffer from starvation?</div><div>3. The previous discussion said that, at the same time, only one kernel can be running on each pipe.
If the pipe used round-robin, did it incur the "<span style="color:rgb(0,0,0);white-space:pre-wrap">compute wave save/restore"(CWSR) when the pipe switch from a hardware queue that has a running kernel to another hardware queue?
</span></div></div>