Hi Alex, I agree with your suggestion - v2 drops the enable_mes check and marks the queues on KIQ as well.
To be clear, KIQ itself does not hit this bug. On reset, kgd2kfd_pre_reset() calls kgd2kfd_suspend(), which ends up in evict_process_queues_cpsch(). On the KIQ path that loop has no fallible call in it - remove_queue_mes() is behind enable_mes, and execute_queues_cpsch() is outside the loop - so the loop always runs to the end and every queue is left with is_evicted set and is_active clear. Process teardown then has nothing to send. Marking on KIQ is just to keep the state honest: after a reset the queues are gone on both, and is_reset says that, while is_active == false only means "do not schedule it now". v2 is out, please take a look when you have time. Thanks, YuanShang
