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

Reply via email to