On Fri, Oct 16, 2020 at 06:54:11PM +0100, Chris Wilson wrote:
MEDIA_STATE_VFE only accepts the 'maximum number of threads' in the range [0, n-1] where n is #EU * (#threads/EU) with the number of threads based on plaform and the number of EU based on the number of slices and subslices. This is a fixed number per platform/gt, so appropriately limit the number of threads we spawn to match the device.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2024 Fixes: 47f8253d2b89 ("drm/i915/gen7: Clear all EU/L3 residual contexts") Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com> Cc: Prathap Kumar Valsan <prathap.kumar.valsan at intel.com> Cc: Akeem G Abodunrin <akeem.g.abodunrin at intel.com> Cc: Balestrieri Francesco <francesco.balestrieri at intel.com> Cc: Bloomfield Jon <jon.bloomfield at intel.com> Cc: <stable at vger.kernel.org> # v5.7+
...
I tested this patch and found that it prevents the GPU hang I had reported on the HP Pavilion Mini 300-020 in https://gitlab.freedesktop.org/drm/intel/-/issues/2413.
In more detail: I built linux-next at tag next-20201106 without the patch, and booted the result on an Ubuntu 20.04 base system. As expected, I observed the hang that I had previously reported as soon as Cinnnamon started when I entered graphical.target.
I then applied this patch - that being the only change to my kernel - and I was able to boot to graphical.target 5 times consecutively without any GPU hang.
You may add my endorsements:
Tested-by: Randy Wright rwright@hpe.com Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2413 Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2106