On Fri, 10 Mar 2023 17:01:42 -0800, John Harrison wrote: > > >> + for (count = 0; count < 20; count++) { > >> + ret = wait_for(guc_load_done(uncore, &status, &success), 1000); > > > > Isn't 20 secs a bit too long for an in-place wait? I get that if the GuC > > doesn't load (or fail to) within a few secs the HW is likely toast, but > > still that seems a bit too long to me. What's the worst case load time > > ever observed? I suggest reducing the wait to 3 secs as a compromise, if > > that's bigger than the worst case. > > I can drop it to 3 for normal builds and keep 20 for > CONFIG_DRM_I915_DEBUG_GEM builds. However, that won't actually be long > enough for all slow situations. We have seen times of at least 11s when the > GPU is running at minimum frequency. So, for CI runs we definitely want to > keep the 20s limit. For end users? Is it better to wait for up to 20s or to > boot in display only fallback mode? And note that this is a timeout only. A > functional system will still complete in tens of milliseconds. Just FYI, in this related patch: https://patchwork.freedesktop.org/series/115003/#rev2 I am holding a mutex across GuC FW load, so very unlikely, but worst case a thread can get blocked for the duration of the GuC reset/FW load. Ashutosh