diff mbox series

[v2] drm/i915/uc: Don't fail on HuC firmware failure

Message ID 20190729112612.37476-1-michal.wajdeczko@intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915/uc: Don't fail on HuC firmware failure | expand

Commit Message

Michal Wajdeczko July 29, 2019, 11:26 a.m. UTC
HuC is usually not a critical component, so we can safely ignore
firmware load or authentication failures unless HuC was explicitly
requested by the user.

v2: add convenient way to disable loading (Chris)

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> #v1
---
 drivers/gpu/drm/i915/gt/uc/intel_uc.c    | 8 ++++----
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 5 +++--
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h | 6 ++++++
 3 files changed, 13 insertions(+), 6 deletions(-)

Comments

Michal Wajdeczko July 29, 2019, 3:14 p.m. UTC | #1
On Mon, 29 Jul 2019 16:56:37 +0200, Patchwork  
<patchwork@emeril.freedesktop.org> wrote:

> == Series Details ==
>
> Series: drm/i915/uc: Don't fail on HuC firmware failure (rev2)
> URL   : https://patchwork.freedesktop.org/series/64326/
> State : failure
>
> == Summary ==
>
> CI Bug Log - changes from CI_DRM_6573 -> Patchwork_13785
> ====================================================
>
> Summary
> -------
>
>   **FAILURE**
>
>   Serious unknown changes coming with Patchwork_13785 absolutely need to  
> be
>   verified manually.
>  If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_13785, please notify your bug team to allow  
> them
>   to document this new failure mode, which will reduce false positives  
> in CI.
>
>   External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/
>
> Possible new issues
> -------------------
>
>   Here are the unknown changes that may have been introduced in  
> Patchwork_13785:
>
> ### IGT changes ###
>
> #### Possible regressions ####
>
>   * igt@i915_selftest@live_guc:
>     - fi-byt-n2820:       NOTRUN -> [DMESG-WARN][1]
>    [1]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-byt-n2820/igt@i915_selftest@live_guc.html

<4> [436.295995] DEBUG_LOCKS_WARN_ON(lock->magic != lock)
<4> [436.296191] Workqueue: i915 __i915_vm_release [i915]
<4> [436.296375]  ? i915_vma_destroy+0x86/0x350 [i915]
<4> [436.296495]  ? i915_vma_destroy+0x86/0x350 [i915]
<4> [436.296604]  i915_vma_destroy+0x86/0x350 [i915]
<4> [436.296826]  __i915_vm_release+0xfc/0x1d0 [i915]

>
>   * igt@i915_selftest@live_objects:
>     - fi-hsw-4770r:       NOTRUN -> [DMESG-WARN][2]
>    [2]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-hsw-4770r/igt@i915_selftest@live_objects.html
>
> Known issues
> ------------
>
>   Here are the changes found in Patchwork_13785 that come from known  
> issues:
>
> ### IGT changes ###
>
> #### Issues hit ####
>
>   * igt@gem_exec_suspend@basic-s3:
>     - fi-blb-e6850:       [PASS][3] -> [INCOMPLETE][4] ([fdo#107718])
>    [3]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
>    [4]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
>
>   * igt@i915_selftest@live_gtt:
>     - fi-icl-dsi:         [PASS][5] -> [INCOMPLETE][6] ([fdo#107713])
>    [5]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-icl-dsi/igt@i915_selftest@live_gtt.html
>    [6]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-icl-dsi/igt@i915_selftest@live_gtt.html
>
>   * igt@i915_selftest@live_hugepages:
>     - fi-hsw-peppy:       [PASS][7] -> [DMESG-WARN][8] ([fdo#111249])
>    [7]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-hsw-peppy/igt@i915_selftest@live_hugepages.html
>    [8]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-hsw-peppy/igt@i915_selftest@live_hugepages.html
>
>   * igt@prime_vgem@basic-fence-flip:
>     - fi-kbl-7500u:       [PASS][9] -> [SKIP][10] ([fdo#109271]) +23  
> similar issues
>    [9]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-kbl-7500u/igt@prime_vgem@basic-fence-flip.html
>    [10]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-kbl-7500u/igt@prime_vgem@basic-fence-flip.html
>
> #### Possible fixes ####
>
>   * igt@i915_module_load@reload-no-display:
>     - fi-byt-j1900:       [DMESG-WARN][11] ([fdo#111249]) -> [PASS][12]
>    [11]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-byt-j1900/igt@i915_module_load@reload-no-display.html
>    [12]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-byt-j1900/igt@i915_module_load@reload-no-display.html
>     - fi-ivb-3770:        [DMESG-WARN][13] ([fdo#111249]) -> [PASS][14]
>    [13]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-ivb-3770/igt@i915_module_load@reload-no-display.html
>    [14]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-ivb-3770/igt@i915_module_load@reload-no-display.html
>     - fi-hsw-4770:        [DMESG-WARN][15] ([fdo#111249]) -> [PASS][16]
>    [15]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-hsw-4770/igt@i915_module_load@reload-no-display.html
>    [16]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-hsw-4770/igt@i915_module_load@reload-no-display.html
>
>   * igt@i915_module_load@reload-with-fault-injection:
>     - fi-hsw-4770r:       [DMESG-WARN][17] ([fdo#111249]) -> [PASS][18]
>    [17]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html
>    [18]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html
>
>   * igt@i915_selftest@live_execlists:
>     - fi-skl-gvtdvm:      [DMESG-FAIL][19] ([fdo#111108]) -> [PASS][20]
>    [19]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
>    [20]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
>
>   * igt@i915_selftest@live_hugepages:
>     - fi-byt-n2820:       [DMESG-WARN][21] ([fdo#111249]) -> [PASS][22]
>    [21]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-byt-n2820/igt@i915_selftest@live_hugepages.html
>    [22]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-byt-n2820/igt@i915_selftest@live_hugepages.html
>
>   * igt@i915_selftest@live_reset:
>     - fi-icl-u3:          [INCOMPLETE][23] ([fdo#107713]) -> [PASS][24]
>    [23]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-icl-u3/igt@i915_selftest@live_reset.html
>    [24]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-icl-u3/igt@i915_selftest@live_reset.html
>
> #### Warnings ####
>
>   * igt@runner@aborted:
>     - fi-hsw-4770:        [FAIL][25] ([fdo#111249]) -> [FAIL][26]  
> ([fdo#107732] / [fdo#111249])
>    [25]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-hsw-4770/igt@runner@aborted.html
>    [26]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-hsw-4770/igt@runner@aborted.html
>     - fi-hsw-4770r:       [FAIL][27] ([fdo#107732]) -> [FAIL][28]  
> ([fdo#111249])
>    [27]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-hsw-4770r/igt@runner@aborted.html
>    [28]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-hsw-4770r/igt@runner@aborted.html
>     - fi-byt-n2820:       [FAIL][29] ([fdo#110326 ]) -> [FAIL][30]  
> ([fdo#111249])
>    [29]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6573/fi-byt-n2820/igt@runner@aborted.html
>    [30]:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/fi-byt-n2820/igt@runner@aborted.html
>
>  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
>   [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
>   [fdo#107732]: https://bugs.freedesktop.org/show_bug.cgi?id=107732
>   [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
>   [fdo#110326 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110326
>   [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108
>   [fdo#111249]: https://bugs.freedesktop.org/show_bug.cgi?id=111249
>
>
> Participating hosts (52 -> 45)
> ------------------------------
>
>   Missing    (7): fi-kbl-soraka fi-icl-u4 fi-byt-squawks fi-bsw-cyan  
> fi-icl-y fi-byt-clapper fi-bdw-samus
>
>
> Build changes
> -------------
>
>   * CI: CI-20190529 -> None
>   * Linux: CI_DRM_6573 -> Patchwork_13785
>
>   CI-20190529: 20190529
>   CI_DRM_6573: 69756063f5af4bf16b5af96e929860163a2d340d @  
> git://anongit.freedesktop.org/gfx-ci/linux
>   IGT_5114: 54450721c3b323d01e0c6e5d5e883b7499c8022c @  
> git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
>   Patchwork_13785: da503011422c83cdc407f41fb9402fb59a826068 @  
> git://anongit.freedesktop.org/gfx-ci/linux
>
>
> == Linux commits ==
>
> da503011422c drm/i915/uc: Don't fail on HuC firmware failure
>
> == Logs ==
>
> For more details see:  
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13785/
Joonas Lahtinen July 30, 2019, 7:06 a.m. UTC | #2
Quoting Michal Wajdeczko (2019-07-29 14:26:12)
> HuC is usually not a critical component, so we can safely ignore
> firmware load or authentication failures unless HuC was explicitly
> requested by the user.

Do we have the fault injection and respective IGT patches somewhere?

Regards, Joonas
Michal Wajdeczko July 30, 2019, 11:02 a.m. UTC | #3
On Tue, 30 Jul 2019 09:06:19 +0200, Joonas Lahtinen  
<joonas.lahtinen@linux.intel.com> wrote:

> Quoting Michal Wajdeczko (2019-07-29 14:26:12)
>> HuC is usually not a critical component, so we can safely ignore
>> firmware load or authentication failures unless HuC was explicitly
>> requested by the user.
>
> Do we have the fault injection and respective IGT patches somewhere?

fault injection (at various places) is WIP

https://patchwork.freedesktop.org/series/64390/#rev1

IGT was also discussed

https://patchwork.freedesktop.org/patch/305805/?series=60800&rev=3

but we stopped at

https://patchwork.freedesktop.org/patch/305806/?series=60807&rev=2
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index fafa9be1e12a..6eb8bb3fa252 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -422,7 +422,7 @@  int intel_uc_init_hw(struct intel_uc *uc)
 
 		if (intel_uc_is_using_huc(uc)) {
 			ret = intel_huc_fw_upload(huc);
-			if (ret)
+			if (ret && intel_uc_fw_is_overridden(&huc->fw))
 				goto err_out;
 		}
 
@@ -444,9 +444,9 @@  int intel_uc_init_hw(struct intel_uc *uc)
 	if (ret)
 		goto err_log_capture;
 
-	if (intel_uc_is_using_huc(uc)) {
+	if (intel_uc_fw_is_loaded(&huc->fw)) {
 		ret = intel_huc_auth(huc);
-		if (ret)
+		if (ret && intel_uc_fw_is_overridden(&huc->fw))
 			goto err_communication;
 	}
 
@@ -465,7 +465,7 @@  int intel_uc_init_hw(struct intel_uc *uc)
 	dev_info(i915->drm.dev, "GuC submission %s\n",
 		 enableddisabled(intel_uc_is_using_guc_submission(uc)));
 	dev_info(i915->drm.dev, "HuC %s\n",
-		 enableddisabled(intel_uc_is_using_huc(uc)));
+		 enableddisabled(intel_huc_is_authenticated(huc)));
 
 	return 0;
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
index 0f9badf44837..ac91e3efd02b 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -146,7 +146,8 @@  __uc_fw_override(struct intel_uc_fw *uc_fw)
 		break;
 	}
 
-	return uc_fw->path;
+	uc_fw->user_overridden = uc_fw->path;
+	return uc_fw->user_overridden;
 }
 
 /**
@@ -176,7 +177,7 @@  void intel_uc_fw_init_early(struct intel_uc_fw *uc_fw,
 		__uc_fw_auto_select(uc_fw, INTEL_INFO(i915)->platform,
 				    INTEL_REVID(i915));
 
-	if (uc_fw->path)
+	if (uc_fw->path && *uc_fw->path)
 		uc_fw->status = INTEL_UC_FIRMWARE_SELECTED;
 	else
 		uc_fw->status = INTEL_UC_FIRMWARE_NOT_SUPPORTED;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
index c2ab2803715d..6b64b8073703 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
@@ -61,6 +61,7 @@  struct intel_uc_fw {
 	enum intel_uc_fw_type type;
 	enum intel_uc_fw_status status;
 	const char *path;
+	bool user_overridden;
 	size_t size;
 	struct drm_i915_gem_object *obj;
 
@@ -141,6 +142,11 @@  static inline bool intel_uc_fw_supported(struct intel_uc_fw *uc_fw)
 	return __intel_uc_fw_status(uc_fw) != INTEL_UC_FIRMWARE_NOT_SUPPORTED;
 }
 
+static inline bool intel_uc_fw_is_overridden(const struct intel_uc_fw *uc_fw)
+{
+	return uc_fw->user_overridden;
+}
+
 static inline void intel_uc_fw_sanitize(struct intel_uc_fw *uc_fw)
 {
 	if (intel_uc_fw_is_loaded(uc_fw))