On 2022-06-16 10:49, Eric Huang wrote:
Does it break the case of q->gws with q->properties.is_active == true?

Thanks for catching this, it breaks pqm_set_gws, I will revert this and send v2 for review.

Regards,

Philip

Regards,
Eric

On 2022-06-15 17:56, Philip Yang wrote:
We remove the user queue from MES scheduler to update queue properties.
If the queue becomes active after updating, add the user queue to MES
scheduler, to be able to handle command packet submission.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
---
  drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index e1797657b04c..67ae5b6385a2 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -866,8 +866,10 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q,
       * dqm->active_queue_count to determine whether a new runlist must be
       * uploaded.
       */
-    if (q->properties.is_active && !prev_active) {
-        increment_queue_count(dqm, &pdd->qpd, q);
+    if (q->properties.is_active) {
+        add_queue = true;
+        if (!prev_active)
+            increment_queue_count(dqm, &pdd->qpd, q);
      } else if (!q->properties.is_active && prev_active) {
          decrement_queue_count(dqm, &pdd->qpd, q);
      } else if (q->gws && !q->properties.is_gws) {