> > > Rodrigo: And why here and not some upper layer? like in prepare.... > alan: wait_for_suspend does both the checking for idle as well as the potential > wedging if guc or hw has hung at this late state. if i call from the upper > layer before this wait_for_suspend, it might be too early because the > wait-for-idle could experience workloads completing and new contexts-derigtrations > being queued. If i call it from upper layer after wait_for_suspend, then it would > be unnecessary if wait_for_suspend decided to nuke everything. Hmmm.. but i guess > the latter could work too - since the nuke case would have emptied out the link-list > of that worker and so it would either run and do nothing or would not even be queued. > Would you rather i go that way? (i'll recheck with my team mates for i-dotting/t-crossing > discussion. actually, after going up a layer, i realize the right place might be to insert late stage worker-flushing into intel_uc_suspend (called from intel_gt_suspend_late) which is also where the gsc worker is flushed. This will also mean we don't need to create intel_uc_suspend_prepare for new plumbing.