All of lore.kernel.org
 help / color / mirror / Atom feed
* [CI 0/3] add more probe failures
@ 2019-08-02 12:21 Michal Wajdeczko
  2019-08-02 12:21 ` [CI 1/3] drm/i915: Add i915 to i915_inject_probe_failure Michal Wajdeczko
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-02 12:21 UTC (permalink / raw)
  To: intel-gfx

v3: fix Gen9 issue discovered by the v2
v4: rebased
v5: more injected errors and more fixes

Michal Wajdeczko (3):
  drm/i915: Add i915 to i915_inject_probe_failure
  drm/i915/uc: Inject probe errors into intel_uc_init_hw
  drm/i915/wopcm: Don't fail on WOPCM partitioning failure

 .../gpu/drm/i915/display/intel_connector.c    |  2 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  2 +-
 .../gpu/drm/i915/gt/uc/intel_guc_submission.c |  4 +++
 drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  8 +++--
 drivers/gpu/drm/i915/gt/uc/intel_uc.c         | 25 +++++++++++++---
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c      | 18 +++++++----
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h      | 14 ++++-----
 drivers/gpu/drm/i915/i915_drv.c               | 27 +++++++++--------
 drivers/gpu/drm/i915/i915_drv.h               | 12 ++++----
 drivers/gpu/drm/i915/i915_gem.c               | 18 ++++-------
 drivers/gpu/drm/i915/i915_pci.c               |  2 +-
 drivers/gpu/drm/i915/intel_gvt.c              |  2 +-
 drivers/gpu/drm/i915/intel_uncore.c           |  2 +-
 drivers/gpu/drm/i915/intel_wopcm.c            | 30 +++++++++----------
 drivers/gpu/drm/i915/intel_wopcm.h            |  2 +-
 15 files changed, 97 insertions(+), 71 deletions(-)

-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [CI 1/3] drm/i915: Add i915 to i915_inject_probe_failure
  2019-08-02 12:21 [CI 0/3] add more probe failures Michal Wajdeczko
@ 2019-08-02 12:21 ` Michal Wajdeczko
  2019-08-02 12:21 ` [CI 2/3] drm/i915/uc: Inject probe errors into intel_uc_init_hw Michal Wajdeczko
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-02 12:21 UTC (permalink / raw)
  To: intel-gfx

With i915 added to i915_inject_probe_failure we can use dedicated
printk when injecting artificial load failure.

Also make this function look like other i915 functions that return
error code and make it more flexible to return any provided error
code instead of previously assumed -ENODEV.

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>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 .../gpu/drm/i915/display/intel_connector.c    |  2 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  2 +-
 drivers/gpu/drm/i915/i915_drv.c               | 27 ++++++++++---------
 drivers/gpu/drm/i915/i915_drv.h               | 12 +++++----
 drivers/gpu/drm/i915/i915_gem.c               | 10 +++----
 drivers/gpu/drm/i915/i915_pci.c               |  2 +-
 drivers/gpu/drm/i915/intel_gvt.c              |  2 +-
 drivers/gpu/drm/i915/intel_uncore.c           |  2 +-
 drivers/gpu/drm/i915/intel_wopcm.c            |  2 +-
 9 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
index d0163d86c42a..cf8823ce9606 100644
--- a/drivers/gpu/drm/i915/display/intel_connector.c
+++ b/drivers/gpu/drm/i915/display/intel_connector.c
@@ -118,7 +118,7 @@ int intel_connector_register(struct drm_connector *connector)
 	if (ret)
 		goto err;
 
-	if (i915_inject_probe_failure()) {
+	if (i915_inject_probe_failure(to_i915(connector->dev))) {
 		ret = -EFAULT;
 		goto err_backlight;
 	}
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 65cbf1d9118d..8bd9a9adf4a5 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -426,7 +426,7 @@ int intel_engines_init_mmio(struct drm_i915_private *i915)
 	WARN_ON(engine_mask &
 		GENMASK(BITS_PER_TYPE(mask) - 1, I915_NUM_ENGINES));
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(i915))
 		return -ENODEV;
 
 	for (i = 0; i < ARRAY_SIZE(intel_engines); i++) {
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 79f89d348196..402ada99c385 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -83,19 +83,20 @@ static struct drm_driver driver;
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
 static unsigned int i915_probe_fail_count;
 
-bool __i915_inject_probe_failure(const char *func, int line)
+int __i915_inject_load_error(struct drm_i915_private *i915, int err,
+			     const char *func, int line)
 {
 	if (i915_probe_fail_count >= i915_modparams.inject_load_failure)
-		return false;
+		return 0;
 
-	if (++i915_probe_fail_count == i915_modparams.inject_load_failure) {
-		DRM_INFO("Injecting failure at checkpoint %u [%s:%d]\n",
-			 i915_modparams.inject_load_failure, func, line);
-		i915_modparams.inject_load_failure = 0;
-		return true;
-	}
+	if (++i915_probe_fail_count < i915_modparams.inject_load_failure)
+		return 0;
 
-	return false;
+	__i915_printk(i915, KERN_INFO,
+		      "Injecting failure %d at checkpoint %u [%s:%d]\n",
+		      err, i915_modparams.inject_load_failure, func, line);
+	i915_modparams.inject_load_failure = 0;
+	return err;
 }
 
 bool i915_error_injected(void)
@@ -687,7 +688,7 @@ static int i915_driver_modeset_probe(struct drm_device *dev)
 	struct pci_dev *pdev = dev_priv->drm.pdev;
 	int ret;
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(dev_priv))
 		return -ENODEV;
 
 	if (HAS_DISPLAY(dev_priv)) {
@@ -894,7 +895,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
 {
 	int ret = 0;
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(dev_priv))
 		return -ENODEV;
 
 	intel_device_info_subplatform_init(dev_priv);
@@ -985,7 +986,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv)
 {
 	int ret;
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(dev_priv))
 		return -ENODEV;
 
 	if (i915_get_bridge_dev(dev_priv))
@@ -1530,7 +1531,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
 	struct pci_dev *pdev = dev_priv->drm.pdev;
 	int ret;
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(dev_priv))
 		return -ENODEV;
 
 	intel_device_info_runtime_init(dev_priv);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 74ab76247018..9e9085b9067b 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -122,19 +122,21 @@
 
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
 
-bool __i915_inject_probe_failure(const char *func, int line);
-#define i915_inject_probe_failure() \
-	__i915_inject_probe_failure(__func__, __LINE__)
-
+int __i915_inject_load_error(struct drm_i915_private *i915, int err,
+			     const char *func, int line);
+#define i915_inject_load_error(_i915, _err) \
+	__i915_inject_load_error((_i915), (_err), __func__, __LINE__)
 bool i915_error_injected(void);
 
 #else
 
-#define i915_inject_probe_failure() false
+#define i915_inject_load_error(_err) 0
 #define i915_error_injected() false
 
 #endif
 
+#define i915_inject_probe_failure(i915) i915_inject_load_error((i915), -ENODEV)
+
 #define i915_probe_error(i915, fmt, ...)				   \
 	__i915_printk(i915, i915_error_injected() ? KERN_DEBUG : KERN_ERR, \
 		      fmt, ##__VA_ARGS__)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index e779dba2e5a3..5e87acc4b770 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1520,15 +1520,13 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 	if (ret)
 		goto err_gt;
 
-	if (i915_inject_probe_failure()) {
-		ret = -ENODEV;
+	ret = i915_inject_load_error(dev_priv, -ENODEV);
+	if (ret)
 		goto err_gt;
-	}
 
-	if (i915_inject_probe_failure()) {
-		ret = -EIO;
+	ret = i915_inject_load_error(dev_priv, -EIO);
+	if (ret)
 		goto err_gt;
-	}
 
 	intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 	mutex_unlock(&dev_priv->drm.struct_mutex);
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index a7e1cde4a6d9..20e562ced8cc 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -959,7 +959,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (err)
 		return err;
 
-	if (i915_inject_probe_failure()) {
+	if (i915_inject_probe_failure(to_i915(pci_get_drvdata(pdev)))) {
 		i915_pci_remove(pdev);
 		return -ENODEV;
 	}
diff --git a/drivers/gpu/drm/i915/intel_gvt.c b/drivers/gpu/drm/i915/intel_gvt.c
index c66b2d8a6219..2b6c016387c2 100644
--- a/drivers/gpu/drm/i915/intel_gvt.c
+++ b/drivers/gpu/drm/i915/intel_gvt.c
@@ -95,7 +95,7 @@ int intel_gvt_init(struct drm_i915_private *dev_priv)
 {
 	int ret;
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(dev_priv))
 		return -ENODEV;
 
 	if (!i915_modparams.enable_gvt) {
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 2b839acfa0f6..738f232564a6 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -1331,7 +1331,7 @@ static int __fw_domain_init(struct intel_uncore *uncore,
 	GEM_BUG_ON(domain_id >= FW_DOMAIN_ID_COUNT);
 	GEM_BUG_ON(uncore->fw_domain[domain_id]);
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(uncore->i915))
 		return -ENOMEM;
 
 	d = kzalloc(sizeof(*d), GFP_KERNEL);
diff --git a/drivers/gpu/drm/i915/intel_wopcm.c b/drivers/gpu/drm/i915/intel_wopcm.c
index d9973c0b0384..291881937d97 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/intel_wopcm.c
@@ -177,7 +177,7 @@ int intel_wopcm_init(struct intel_wopcm *wopcm)
 
 	GEM_BUG_ON(!wopcm->size);
 
-	if (i915_inject_probe_failure())
+	if (i915_inject_probe_failure(i915))
 		return -E2BIG;
 
 	if (guc_fw_size >= wopcm->size) {
-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [CI 2/3] drm/i915/uc: Inject probe errors into intel_uc_init_hw
  2019-08-02 12:21 [CI 0/3] add more probe failures Michal Wajdeczko
  2019-08-02 12:21 ` [CI 1/3] drm/i915: Add i915 to i915_inject_probe_failure Michal Wajdeczko
@ 2019-08-02 12:21 ` Michal Wajdeczko
  2019-08-02 12:21 ` [CI 3/3] drm/i915/wopcm: Don't fail on WOPCM partitioning failure Michal Wajdeczko
  2019-08-02 13:12 ` ✗ Fi.CI.BAT: failure for add more probe failures (rev6) Patchwork
  3 siblings, 0 replies; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-02 12:21 UTC (permalink / raw)
  To: intel-gfx

Inject probe errors into intel_uc_init_hw to make sure we
correctly handle any uC initialization failure.

To avoid complains from CI about injected errors use
i915_probe_error to lower message level.

v2: _sanitize instead _reset to correctly handle Gen9 retries
v3: reorder fw status codes as failed fw is still available
    add more failure points

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>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> #v1
---
 .../gpu/drm/i915/gt/uc/intel_guc_submission.c |  4 ++++
 drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  8 +++++---
 drivers/gpu/drm/i915/gt/uc/intel_uc.c         | 20 +++++++++++++++----
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c      | 18 +++++++++++------
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h      | 14 ++++++-------
 drivers/gpu/drm/i915/i915_gem.c               |  2 +-
 6 files changed, 45 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index b4b508f19a1c..412892096daa 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -1123,6 +1123,10 @@ int intel_guc_submission_enable(struct intel_guc *guc)
 	enum intel_engine_id id;
 	int err;
 
+	err = i915_inject_load_error(gt->i915, -ENXIO);
+	if (err)
+		return err;
+
 	/*
 	 * We're using GuC work items for submitting work through GuC. Since
 	 * we're coalescing multiple requests from a single context into a
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
index d642b167a389..ef54053c5ef9 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
@@ -139,6 +139,10 @@ int intel_huc_auth(struct intel_huc *huc)
 	GEM_BUG_ON(!intel_uc_fw_is_loaded(&huc->fw));
 	GEM_BUG_ON(intel_huc_is_authenticated(huc));
 
+	ret = i915_inject_load_error(gt->i915, -ENXIO);
+	if (ret)
+		goto fail;
+
 	ret = intel_guc_auth_huc(guc,
 				 intel_guc_ggtt_offset(guc, huc->rsa_data));
 	if (ret) {
@@ -158,13 +162,11 @@ int intel_huc_auth(struct intel_huc *huc)
 	}
 
 	huc->fw.status = INTEL_UC_FIRMWARE_RUNNING;
-
 	return 0;
 
 fail:
+	i915_probe_error(gt->i915, "HuC: Authentication failed %d\n", ret);
 	huc->fw.status = INTEL_UC_FIRMWARE_FAIL;
-
-	DRM_ERROR("HuC: Authentication failed %d\n", ret);
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index d1b08b28b1ad..1d21c2646831 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -41,6 +41,10 @@ static int __intel_uc_reset_hw(struct intel_uc *uc)
 	int ret;
 	u32 guc_status;
 
+	ret = i915_inject_load_error(gt->i915, -ENXIO);
+	if (ret)
+		return ret;
+
 	ret = intel_reset_guc(gt);
 	if (ret) {
 		DRM_ERROR("Failed to reset GuC, ret = %d\n", ret);
@@ -209,6 +213,10 @@ static int guc_enable_communication(struct intel_guc *guc)
 
 	GEM_BUG_ON(guc_communication_enabled(guc));
 
+	ret = i915_inject_load_error(i915, -ENXIO);
+	if (ret)
+		return ret;
+
 	ret = intel_guc_ct_enable(&guc->ct);
 	if (ret)
 		return ret;
@@ -340,7 +348,7 @@ void intel_uc_fini(struct intel_uc *uc)
 	intel_guc_fini(guc);
 }
 
-static void __uc_sanitize(struct intel_uc *uc)
+static int __uc_sanitize(struct intel_uc *uc)
 {
 	struct intel_guc *guc = &uc->guc;
 	struct intel_huc *huc = &uc->huc;
@@ -350,7 +358,7 @@ static void __uc_sanitize(struct intel_uc *uc)
 	intel_huc_sanitize(huc);
 	intel_guc_sanitize(guc);
 
-	__intel_uc_reset_hw(uc);
+	return __intel_uc_reset_hw(uc);
 }
 
 void intel_uc_sanitize(struct intel_uc *uc)
@@ -378,6 +386,10 @@ static int uc_init_wopcm(struct intel_uc *uc)
 	GEM_BUG_ON(!(size & GUC_WOPCM_SIZE_MASK));
 	GEM_BUG_ON(size & ~GUC_WOPCM_SIZE_MASK);
 
+	err = i915_inject_load_error(gt->i915, -ENXIO);
+	if (err)
+		return err;
+
 	mask = GUC_WOPCM_SIZE_MASK | GUC_WOPCM_SIZE_LOCKED;
 	err = intel_uncore_write_and_verify(uncore, GUC_WOPCM_SIZE, size, mask,
 					    size | GUC_WOPCM_SIZE_LOCKED);
@@ -434,7 +446,7 @@ int intel_uc_init_hw(struct intel_uc *uc)
 		 * Always reset the GuC just before (re)loading, so
 		 * that the state and timing are fairly predictable
 		 */
-		ret = __intel_uc_reset_hw(uc);
+		ret = __uc_sanitize(uc);
 		if (ret)
 			goto err_out;
 
@@ -504,7 +516,7 @@ int intel_uc_init_hw(struct intel_uc *uc)
 	if (GEM_WARN_ON(ret == -EIO))
 		ret = -EINVAL;
 
-	dev_err(i915->drm.dev, "GuC initialization failed %d\n", ret);
+	i915_probe_error(i915, "GuC initialization failed %d\n", ret);
 	return ret;
 }
 
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 650ad6037b74..a3a22a26016c 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -383,6 +383,10 @@ static int uc_fw_xfer(struct intel_uc_fw *uc_fw, struct intel_gt *gt,
 	u64 offset;
 	int ret;
 
+	ret = i915_inject_load_error(gt->i915, -ETIMEDOUT);
+	if (ret)
+		return ret;
+
 	intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL);
 
 	/* Set the source address for the uCode */
@@ -443,8 +447,13 @@ int intel_uc_fw_upload(struct intel_uc_fw *uc_fw, struct intel_gt *gt,
 	/* make sure the status was cleared the last time we reset the uc */
 	GEM_BUG_ON(intel_uc_fw_is_loaded(uc_fw));
 
+	err = i915_inject_load_error(gt->i915, -ENOEXEC);
+	if (err)
+		return err;
+
 	if (!intel_uc_fw_is_available(uc_fw))
 		return -ENOEXEC;
+
 	/* Call custom loader */
 	intel_uc_fw_ggtt_bind(uc_fw, gt);
 	err = uc_fw_xfer(uc_fw, gt, wopcm_offset, dma_flags);
@@ -464,13 +473,10 @@ int intel_uc_fw_upload(struct intel_uc_fw *uc_fw, struct intel_gt *gt,
 	return 0;
 
 fail:
+	i915_probe_error(gt->i915, "Failed to load %s firmware %s (%d)\n",
+			 intel_uc_fw_type_repr(uc_fw->type), uc_fw->path,
+			 err);
 	uc_fw->status = INTEL_UC_FIRMWARE_FAIL;
-	DRM_DEBUG_DRIVER("%s fw load failed\n",
-			 intel_uc_fw_type_repr(uc_fw->type));
-
-	DRM_WARN("%s: Failed to load firmware %s (error %d)\n",
-		 intel_uc_fw_type_repr(uc_fw->type), uc_fw->path, err);
-
 	return err;
 }
 
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 6b64b8073703..bfe3614613b7 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
@@ -37,12 +37,12 @@ struct intel_gt;
 #define INTEL_UC_FIRMWARE_URL "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915"
 
 enum intel_uc_fw_status {
-	INTEL_UC_FIRMWARE_FAIL = -3, /* failed to xfer or init/auth the fw */
-	INTEL_UC_FIRMWARE_MISSING = -2, /* blob not found on the system */
-	INTEL_UC_FIRMWARE_NOT_SUPPORTED = -1, /* no uc HW */
+	INTEL_UC_FIRMWARE_NOT_SUPPORTED = -1, /* no uc HW or disabled */
 	INTEL_UC_FIRMWARE_UNINITIALIZED = 0, /* used to catch checks done too early */
 	INTEL_UC_FIRMWARE_SELECTED, /* selected the blob we want to load */
+	INTEL_UC_FIRMWARE_MISSING, /* blob not found on the system */
 	INTEL_UC_FIRMWARE_AVAILABLE, /* blob found and copied in mem */
+	INTEL_UC_FIRMWARE_FAIL, /* failed to xfer or init/auth the fw */
 	INTEL_UC_FIRMWARE_TRANSFERRED, /* dma xfer done */
 	INTEL_UC_FIRMWARE_RUNNING /* init/auth done */
 };
@@ -83,18 +83,18 @@ static inline
 const char *intel_uc_fw_status_repr(enum intel_uc_fw_status status)
 {
 	switch (status) {
-	case INTEL_UC_FIRMWARE_FAIL:
-		return "FAIL";
-	case INTEL_UC_FIRMWARE_MISSING:
-		return "MISSING";
 	case INTEL_UC_FIRMWARE_NOT_SUPPORTED:
 		return "N/A";
 	case INTEL_UC_FIRMWARE_UNINITIALIZED:
 		return "UNINITIALIZED";
 	case INTEL_UC_FIRMWARE_SELECTED:
 		return "SELECTED";
+	case INTEL_UC_FIRMWARE_MISSING:
+		return "MISSING";
 	case INTEL_UC_FIRMWARE_AVAILABLE:
 		return "AVAILABLE";
+	case INTEL_UC_FIRMWARE_FAIL:
+		return "FAIL";
 	case INTEL_UC_FIRMWARE_TRANSFERRED:
 		return "TRANSFERRED";
 	case INTEL_UC_FIRMWARE_RUNNING:
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 5e87acc4b770..2436cd598e6e 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1243,7 +1243,7 @@ int i915_gem_init_hw(struct drm_i915_private *i915)
 	/* We can't enable contexts until all firmware is loaded */
 	ret = intel_uc_init_hw(&gt->uc);
 	if (ret) {
-		DRM_ERROR("Enabling uc failed (%d)\n", ret);
+		i915_probe_error(i915, "Enabling uc failed (%d)\n", ret);
 		goto out;
 	}
 
-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [CI 3/3] drm/i915/wopcm: Don't fail on WOPCM partitioning failure
  2019-08-02 12:21 [CI 0/3] add more probe failures Michal Wajdeczko
  2019-08-02 12:21 ` [CI 1/3] drm/i915: Add i915 to i915_inject_probe_failure Michal Wajdeczko
  2019-08-02 12:21 ` [CI 2/3] drm/i915/uc: Inject probe errors into intel_uc_init_hw Michal Wajdeczko
@ 2019-08-02 12:21 ` Michal Wajdeczko
  2019-08-02 13:12 ` ✗ Fi.CI.BAT: failure for add more probe failures (rev6) Patchwork
  3 siblings, 0 replies; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-02 12:21 UTC (permalink / raw)
  To: intel-gfx

We don't have to immediately fail on WOPCM partitioning, we can wait
until we will start programming WOPCM registers. This should give us
more options if we decide to restore fallback in case of GuC failures.

v3: rebased

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>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/gt/uc/intel_uc.c |  5 +++++
 drivers/gpu/drm/i915/i915_gem.c       |  6 +-----
 drivers/gpu/drm/i915/intel_wopcm.c    | 28 +++++++++++++--------------
 drivers/gpu/drm/i915/intel_wopcm.h    |  2 +-
 4 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index 1d21c2646831..6051fd0c4554 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -380,6 +380,11 @@ static int uc_init_wopcm(struct intel_uc *uc)
 	u32 mask;
 	int err;
 
+	if (unlikely(!base || !size)) {
+		i915_probe_error(gt->i915, "Unsuccessful WOPCM partitioning\n");
+		return -E2BIG;
+	}
+
 	GEM_BUG_ON(!intel_uc_supports_guc(uc));
 	GEM_BUG_ON(!(base & GUC_WOPCM_OFFSET_MASK));
 	GEM_BUG_ON(base & ~GUC_WOPCM_OFFSET_MASK);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 2436cd598e6e..deaca3c2416d 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1441,10 +1441,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 		return ret;
 
 	intel_uc_fetch_firmwares(&dev_priv->gt.uc);
-
-	ret = intel_wopcm_init(&dev_priv->wopcm);
-	if (ret)
-		goto err_uc_fw;
+	intel_wopcm_init(&dev_priv->wopcm);
 
 	/* This is just a security blanket to placate dragons.
 	 * On some systems, we very sporadically observe that the first TLBs
@@ -1568,7 +1565,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 	intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 	mutex_unlock(&dev_priv->drm.struct_mutex);
 
-err_uc_fw:
 	intel_uc_cleanup_firmwares(&dev_priv->gt.uc);
 
 	if (ret != -EIO) {
diff --git a/drivers/gpu/drm/i915/intel_wopcm.c b/drivers/gpu/drm/i915/intel_wopcm.c
index 291881937d97..4c22143ee84f 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/intel_wopcm.c
@@ -156,12 +156,10 @@ static inline int check_hw_restriction(struct drm_i915_private *i915,
  * This function will partition WOPCM space based on GuC and HuC firmware sizes
  * and will allocate max remaining for use by GuC. This function will also
  * enforce platform dependent hardware restrictions on GuC WOPCM offset and
- * size. It will fail the WOPCM init if any of these checks were failed, so that
- * the following GuC firmware uploading would be aborted.
- *
- * Return: 0 on success, non-zero error code on failure.
+ * size. It will fail the WOPCM init if any of these checks fail, so that the
+ * following WOPCM registers setup and GuC firmware uploading would be aborted.
  */
-int intel_wopcm_init(struct intel_wopcm *wopcm)
+void intel_wopcm_init(struct intel_wopcm *wopcm)
 {
 	struct drm_i915_private *i915 = wopcm_to_i915(wopcm);
 	u32 guc_fw_size = intel_uc_fw_get_upload_size(&i915->gt.uc.guc.fw);
@@ -173,23 +171,25 @@ int intel_wopcm_init(struct intel_wopcm *wopcm)
 	int err;
 
 	if (!USES_GUC(i915))
-		return 0;
+		return;
 
 	GEM_BUG_ON(!wopcm->size);
+	GEM_BUG_ON(wopcm->guc.base);
+	GEM_BUG_ON(wopcm->guc.size);
 
 	if (i915_inject_probe_failure(i915))
-		return -E2BIG;
+		return;
 
 	if (guc_fw_size >= wopcm->size) {
 		DRM_ERROR("GuC FW (%uKiB) is too big to fit in WOPCM.",
 			  guc_fw_size / 1024);
-		return -E2BIG;
+		return;
 	}
 
 	if (huc_fw_size >= wopcm->size) {
 		DRM_ERROR("HuC FW (%uKiB) is too big to fit in WOPCM.",
 			  huc_fw_size / 1024);
-		return -E2BIG;
+		return;
 	}
 
 	guc_wopcm_base = ALIGN(huc_fw_size + WOPCM_RESERVED_SIZE,
@@ -197,7 +197,7 @@ int intel_wopcm_init(struct intel_wopcm *wopcm)
 	if ((guc_wopcm_base + ctx_rsvd) >= wopcm->size) {
 		DRM_ERROR("GuC WOPCM base (%uKiB) is too big.\n",
 			  guc_wopcm_base / 1024);
-		return -E2BIG;
+		return;
 	}
 
 	guc_wopcm_size = wopcm->size - guc_wopcm_base - ctx_rsvd;
@@ -211,16 +211,16 @@ int intel_wopcm_init(struct intel_wopcm *wopcm)
 		DRM_ERROR("Need %uKiB WOPCM for GuC, %uKiB available.\n",
 			  (guc_fw_size + guc_wopcm_rsvd) / 1024,
 			  guc_wopcm_size / 1024);
-		return -E2BIG;
+		return;
 	}
 
 	err = check_hw_restriction(i915, guc_wopcm_base, guc_wopcm_size,
 				   huc_fw_size);
 	if (err)
-		return err;
+		return;
 
 	wopcm->guc.base = guc_wopcm_base;
 	wopcm->guc.size = guc_wopcm_size;
-
-	return 0;
+	GEM_BUG_ON(!wopcm->guc.base);
+	GEM_BUG_ON(!wopcm->guc.size);
 }
diff --git a/drivers/gpu/drm/i915/intel_wopcm.h b/drivers/gpu/drm/i915/intel_wopcm.h
index f9b603205bb1..17d6aa86008a 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.h
+++ b/drivers/gpu/drm/i915/intel_wopcm.h
@@ -55,6 +55,6 @@ static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm)
 }
 
 void intel_wopcm_init_early(struct intel_wopcm *wopcm);
-int intel_wopcm_init(struct intel_wopcm *wopcm);
+void intel_wopcm_init(struct intel_wopcm *wopcm);
 
 #endif
-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* ✗ Fi.CI.BAT: failure for add more probe failures (rev6)
  2019-08-02 12:21 [CI 0/3] add more probe failures Michal Wajdeczko
                   ` (2 preceding siblings ...)
  2019-08-02 12:21 ` [CI 3/3] drm/i915/wopcm: Don't fail on WOPCM partitioning failure Michal Wajdeczko
@ 2019-08-02 13:12 ` Patchwork
  2019-08-02 13:30   ` Chris Wilson
  3 siblings, 1 reply; 11+ messages in thread
From: Patchwork @ 2019-08-02 13:12 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: add more probe failures (rev6)
URL   : https://patchwork.freedesktop.org/series/64390/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6614 -> Patchwork_13848
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_13848 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_13848, 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_13848/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_13848:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_module_load@reload-with-fault-injection:
    - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html
    - fi-skl-guc:         [PASS][3] -> [DMESG-WARN][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-skl-guc/igt@i915_module_load@reload-with-fault-injection.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-skl-guc/igt@i915_module_load@reload-with-fault-injection.html
    - fi-apl-guc:         [PASS][5] -> [DMESG-WARN][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-apl-guc/igt@i915_module_load@reload-with-fault-injection.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-apl-guc/igt@i915_module_load@reload-with-fault-injection.html
    - fi-kbl-guc:         [PASS][7] -> [DMESG-WARN][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-kbl-guc/igt@i915_module_load@reload-with-fault-injection.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-kbl-guc/igt@i915_module_load@reload-with-fault-injection.html

  * igt@runner@aborted:
    - fi-snb-2520m:       NOTRUN -> [FAIL][9]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-snb-2520m/igt@runner@aborted.html
    - fi-cfl-guc:         NOTRUN -> [FAIL][10]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-cfl-guc/igt@runner@aborted.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_module_load@reload-with-fault-injection:
    - {fi-icl-guc}:       [PASS][11] -> [DMESG-WARN][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-icl-guc/igt@i915_module_load@reload-with-fault-injection.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-icl-guc/igt@i915_module_load@reload-with-fault-injection.html

  
Known issues
------------

  Here are the changes found in Patchwork_13848 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_sync@basic-store-all:
    - fi-snb-2520m:       [PASS][13] -> [DMESG-WARN][14] ([fdo#107469])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-snb-2520m/igt@gem_sync@basic-store-all.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-snb-2520m/igt@gem_sync@basic-store-all.html

  * igt@kms_busy@basic-flip-a:
    - fi-kbl-7567u:       [PASS][15] -> [SKIP][16] ([fdo#109271] / [fdo#109278]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][17] -> [FAIL][18] ([fdo#109485])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@prime_vgem@basic-fence-mmap:
    - fi-bsw-kefka:       [PASS][19] -> [INCOMPLETE][20] ([fdo#111276])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-bsw-kefka/igt@prime_vgem@basic-fence-mmap.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-bsw-kefka/igt@prime_vgem@basic-fence-mmap.html

  
#### Possible fixes ####

  * igt@gem_exec_reloc@basic-gtt-read-noreloc:
    - fi-icl-u3:          [DMESG-WARN][21] ([fdo#107724]) -> [PASS][22] +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-icl-u3/igt@gem_exec_reloc@basic-gtt-read-noreloc.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-icl-u3/igt@gem_exec_reloc@basic-gtt-read-noreloc.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-kbl-7567u:       [WARN][23] ([fdo#109380]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-kbl-7567u/igt@kms_chamelium@common-hpd-after-suspend.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-kbl-7567u/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_force_connector_basic@force-edid:
    - fi-ilk-650:         [DMESG-WARN][25] ([fdo#106387]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-ilk-650/igt@kms_force_connector_basic@force-edid.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-ilk-650/igt@kms_force_connector_basic@force-edid.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
    - fi-kbl-7567u:       [SKIP][27] ([fdo#109271]) -> [PASS][28] +23 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-kbl-7567u/igt@kms_pipe_crc_basic@read-crc-pipe-c.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-kbl-7567u/igt@kms_pipe_crc_basic@read-crc-pipe-c.html

  * igt@prime_vgem@basic-fence-mmap:
    - fi-elk-e7500:       [INCOMPLETE][29] ([fdo#103989] / [fdo#111276]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-elk-e7500/igt@prime_vgem@basic-fence-mmap.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-elk-e7500/igt@prime_vgem@basic-fence-mmap.html

  * igt@prime_vgem@basic-fence-read:
    - fi-byt-j1900:       [INCOMPLETE][31] ([fdo#102657]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-byt-j1900/igt@prime_vgem@basic-fence-read.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-byt-j1900/igt@prime_vgem@basic-fence-read.html

  * igt@prime_vgem@basic-sync-default:
    - fi-bxt-j4205:       [FAIL][33] ([fdo#111277]) -> [PASS][34] +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-bxt-j4205/igt@prime_vgem@basic-sync-default.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-bxt-j4205/igt@prime_vgem@basic-sync-default.html
    - fi-bxt-dsi:         [FAIL][35] ([fdo#111277]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-bxt-dsi/igt@prime_vgem@basic-sync-default.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-bxt-dsi/igt@prime_vgem@basic-sync-default.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102657]: https://bugs.freedesktop.org/show_bug.cgi?id=102657
  [fdo#103989]: https://bugs.freedesktop.org/show_bug.cgi?id=103989
  [fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#111276]: https://bugs.freedesktop.org/show_bug.cgi?id=111276
  [fdo#111277]: https://bugs.freedesktop.org/show_bug.cgi?id=111277


Participating hosts (55 -> 46)
------------------------------

  Missing    (9): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-pnv-d510 fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6614 -> Patchwork_13848

  CI-20190529: 20190529
  CI_DRM_6614: d3172c7a10586c799b051f38da171ecd1d33f005 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5120: b3138fbea79d5d7935e53530b90efe3e816236f4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13848: 9687719ff535f9251e3523962ef76dec21971efc @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

9687719ff535 drm/i915/wopcm: Don't fail on WOPCM partitioning failure
18f4fbc01640 drm/i915/uc: Inject probe errors into intel_uc_init_hw
da9abf00e761 drm/i915: Add i915 to i915_inject_probe_failure

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ✗ Fi.CI.BAT: failure for add more probe failures (rev6)
  2019-08-02 13:12 ` ✗ Fi.CI.BAT: failure for add more probe failures (rev6) Patchwork
@ 2019-08-02 13:30   ` Chris Wilson
  2019-08-02 17:02     ` Michal Wajdeczko
  0 siblings, 1 reply; 11+ messages in thread
From: Chris Wilson @ 2019-08-02 13:30 UTC (permalink / raw)
  To: Patchwork; +Cc: intel-gfx

Quoting Patchwork (2019-08-02 14:12:38)
> == Series Details ==
> 
> Series: add more probe failures (rev6)
> URL   : https://patchwork.freedesktop.org/series/64390/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_6614 -> Patchwork_13848
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_13848 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_13848, 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_13848/
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in Patchwork_13848:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@i915_module_load@reload-with-fault-injection:
>     - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html

Looks like we didn't flush the cleanup we started before reporting the
error. Maybe,
https://patchwork.freedesktop.org/patch/321279/?series=64612&rev=1
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ✗ Fi.CI.BAT: failure for add more probe failures (rev6)
  2019-08-02 13:30   ` Chris Wilson
@ 2019-08-02 17:02     ` Michal Wajdeczko
  2019-08-02 18:07       ` Daniele Ceraolo Spurio
  0 siblings, 1 reply; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-02 17:02 UTC (permalink / raw)
  To: Patchwork, intel-gfx, Chris Wilson

On Fri, 02 Aug 2019 15:30:19 +0200, Chris Wilson  
<chris@chris-wilson.co.uk> wrote:

> Quoting Patchwork (2019-08-02 14:12:38)
>> == Series Details ==
>>
>> Series: add more probe failures (rev6)
>> URL   : https://patchwork.freedesktop.org/series/64390/
>> State : failure
>>
>> == Summary ==
>>
>> CI Bug Log - changes from CI_DRM_6614 -> Patchwork_13848
>> ====================================================
>>
>> Summary
>> -------
>>
>>   **FAILURE**
>>
>>   Serious unknown changes coming with Patchwork_13848 absolutely need  
>> to be
>>   verified manually.
>>
>>   If you think the reported changes have nothing to do with the changes
>>   introduced in Patchwork_13848, 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_13848/
>>
>> Possible new issues
>> -------------------
>>
>>   Here are the unknown changes that may have been introduced in  
>> Patchwork_13848:
>>
>> ### IGT changes ###
>>
>> #### Possible regressions ####
>>
>>   * igt@i915_module_load@reload-with-fault-injection:
>>     - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2]
>>    [1]:  
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html
>>    [2]:  
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html
>
> Looks like we didn't flush the cleanup we started before reporting the
> error. Maybe,

it's "leaked" guc err log, that we now try to free after gem, see:

https://cgit.freedesktop.org/drm/drm-tip/commit/?id=6f76098fe0f3f0b519b2ad528b4319195d6d0f73
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ✗ Fi.CI.BAT: failure for add more probe failures (rev6)
  2019-08-02 17:02     ` Michal Wajdeczko
@ 2019-08-02 18:07       ` Daniele Ceraolo Spurio
  2019-08-02 18:14         ` Michal Wajdeczko
  0 siblings, 1 reply; 11+ messages in thread
From: Daniele Ceraolo Spurio @ 2019-08-02 18:07 UTC (permalink / raw)
  To: Michal Wajdeczko, Patchwork, intel-gfx, Chris Wilson



On 8/2/19 10:02 AM, Michal Wajdeczko wrote:
> On Fri, 02 Aug 2019 15:30:19 +0200, Chris Wilson 
> <chris@chris-wilson.co.uk> wrote:
> 
>> Quoting Patchwork (2019-08-02 14:12:38)
>>> == Series Details ==
>>>
>>> Series: add more probe failures (rev6)
>>> URL   : https://patchwork.freedesktop.org/series/64390/
>>> State : failure
>>>
>>> == Summary ==
>>>
>>> CI Bug Log - changes from CI_DRM_6614 -> Patchwork_13848
>>> ====================================================
>>>
>>> Summary
>>> -------
>>>
>>>   **FAILURE**
>>>
>>>   Serious unknown changes coming with Patchwork_13848 absolutely need 
>>> to be
>>>   verified manually.
>>>
>>>   If you think the reported changes have nothing to do with the changes
>>>   introduced in Patchwork_13848, 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_13848/
>>>
>>> Possible new issues
>>> -------------------
>>>
>>>   Here are the unknown changes that may have been introduced in 
>>> Patchwork_13848:
>>>
>>> ### IGT changes ###
>>>
>>> #### Possible regressions ####
>>>
>>>   * igt@i915_module_load@reload-with-fault-injection:
>>>     - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2]
>>>    [1]: 
>>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html 
>>>
>>>    [2]: 
>>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html 
>>>
>>
>> Looks like we didn't flush the cleanup we started before reporting the
>> error. Maybe,
> 
> it's "leaked" guc err log, that we now try to free after gem, see:
> 
> https://cgit.freedesktop.org/drm/drm-tip/commit/?id=6f76098fe0f3f0b519b2ad528b4319195d6d0f73 
> 

Not sure why but I was convinced that the log release was in uc_fini 
(but I should probably have checked). late_release isn't the place to 
release the logs IMO, but not sure where to put it since we don't really 
do anything with the log at the moment (we stopped wedging on uc failure 
a long time ago and the log is therefore never accessible). What's the 
plan with https://patchwork.freedesktop.org/patch/298002/? that would 
make the log useful again and skip uc_fini on load failure, making that 
the best place to put the release in.

Daniele
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ✗ Fi.CI.BAT: failure for add more probe failures (rev6)
  2019-08-02 18:07       ` Daniele Ceraolo Spurio
@ 2019-08-02 18:14         ` Michal Wajdeczko
  0 siblings, 0 replies; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-02 18:14 UTC (permalink / raw)
  To: Patchwork, intel-gfx, Chris Wilson, Daniele Ceraolo Spurio

On Fri, 02 Aug 2019 20:07:22 +0200, Daniele Ceraolo Spurio  
<daniele.ceraolospurio@intel.com> wrote:

>
>
> On 8/2/19 10:02 AM, Michal Wajdeczko wrote:
>> On Fri, 02 Aug 2019 15:30:19 +0200, Chris Wilson  
>> <chris@chris-wilson.co.uk> wrote:
>>
>>> Quoting Patchwork (2019-08-02 14:12:38)
>>>> == Series Details ==
>>>>
>>>> Series: add more probe failures (rev6)
>>>> URL   : https://patchwork.freedesktop.org/series/64390/
>>>> State : failure
>>>>
>>>> == Summary ==
>>>>
>>>> CI Bug Log - changes from CI_DRM_6614 -> Patchwork_13848
>>>> ====================================================
>>>>
>>>> Summary
>>>> -------
>>>>
>>>>   **FAILURE**
>>>>
>>>>   Serious unknown changes coming with Patchwork_13848 absolutely need  
>>>> to be
>>>>   verified manually.
>>>>
>>>>   If you think the reported changes have nothing to do with the  
>>>> changes
>>>>   introduced in Patchwork_13848, 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_13848/
>>>>
>>>> Possible new issues
>>>> -------------------
>>>>
>>>>   Here are the unknown changes that may have been introduced in  
>>>> Patchwork_13848:
>>>>
>>>> ### IGT changes ###
>>>>
>>>> #### Possible regressions ####
>>>>
>>>>   * igt@i915_module_load@reload-with-fault-injection:
>>>>     - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2]
>>>>    [1]:  
>>>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6614/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html  
>>>>    [2]:  
>>>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13848/fi-cfl-guc/igt@i915_module_load@reload-with-fault-injection.html
>>>
>>> Looks like we didn't flush the cleanup we started before reporting the
>>> error. Maybe,
>>  it's "leaked" guc err log, that we now try to free after gem, see:
>>   
>> https://cgit.freedesktop.org/drm/drm-tip/commit/?id=6f76098fe0f3f0b519b2ad528b4319195d6d0f73
>
> Not sure why but I was convinced that the log release was in uc_fini  
> (but I should probably have checked). late_release isn't the place to  
> release the logs IMO, but not sure where to put it since we don't really  
> do anything with the log at the moment (we stopped wedging on uc failure  
> a long time ago and the log is therefore never accessible). What's the  
> plan with https://patchwork.freedesktop.org/patch/298002/? that would  
> make the log useful again and skip uc_fini on load failure, making that  
> the best place to put the release in.

restoring -EIO is next on my list
for now I want to make probe error path more robust
updated series with fix for last issue will be sent shortly

~Michal
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [CI 0/3] add more probe failures
@ 2019-08-01 22:01 Michal Wajdeczko
  0 siblings, 0 replies; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-01 22:01 UTC (permalink / raw)
  To: intel-gfx

v3: fix Gen9 issue discovered by the v2
v4: rebased

Michal Wajdeczko (3):
  drm/i915: Add i915 to i915_inject_probe_failure
  drm/i915/uc: Inject probe errors into intel_uc_init_hw
  drm/i915/wopcm: Don't fail on WOPCM partitioning failure

 .../gpu/drm/i915/display/intel_connector.c    |  2 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  4 +++
 drivers/gpu/drm/i915/gt/uc/intel_uc.c         | 29 +++++++++++++++---
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c      |  5 ++++
 drivers/gpu/drm/i915/i915_drv.c               | 27 +++++++++--------
 drivers/gpu/drm/i915/i915_drv.h               | 12 ++++----
 drivers/gpu/drm/i915/i915_gem.c               | 18 ++++-------
 drivers/gpu/drm/i915/i915_pci.c               |  2 +-
 drivers/gpu/drm/i915/intel_gvt.c              |  2 +-
 drivers/gpu/drm/i915/intel_uncore.c           |  2 +-
 drivers/gpu/drm/i915/intel_wopcm.c            | 30 +++++++++----------
 drivers/gpu/drm/i915/intel_wopcm.h            |  2 +-
 13 files changed, 82 insertions(+), 55 deletions(-)

-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [CI 0/3] add more probe failures
@ 2019-08-01 16:10 Michal Wajdeczko
  0 siblings, 0 replies; 11+ messages in thread
From: Michal Wajdeczko @ 2019-08-01 16:10 UTC (permalink / raw)
  To: intel-gfx

v3: fix Gen9 issue discovered by the v2

Michal Wajdeczko (3):
  drm/i915: Add i915 to i915_inject_probe_failure
  drm/i915/uc: Inject probe errors into intel_uc_init_hw
  drm/i915/wopcm: Don't fail on WOPCM partitioning failure

 .../gpu/drm/i915/display/intel_connector.c    |  2 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c        |  4 +++
 drivers/gpu/drm/i915/gt/uc/intel_uc.c         | 29 +++++++++++++++---
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c      |  5 ++++
 drivers/gpu/drm/i915/i915_drv.c               | 27 +++++++++--------
 drivers/gpu/drm/i915/i915_drv.h               | 12 ++++----
 drivers/gpu/drm/i915/i915_gem.c               | 18 ++++-------
 drivers/gpu/drm/i915/i915_pci.c               |  2 +-
 drivers/gpu/drm/i915/intel_gvt.c              |  2 +-
 drivers/gpu/drm/i915/intel_uncore.c           |  2 +-
 drivers/gpu/drm/i915/intel_wopcm.c            | 30 +++++++++----------
 drivers/gpu/drm/i915/intel_wopcm.h            |  2 +-
 13 files changed, 82 insertions(+), 55 deletions(-)

-- 
2.19.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-08-02 18:14 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-02 12:21 [CI 0/3] add more probe failures Michal Wajdeczko
2019-08-02 12:21 ` [CI 1/3] drm/i915: Add i915 to i915_inject_probe_failure Michal Wajdeczko
2019-08-02 12:21 ` [CI 2/3] drm/i915/uc: Inject probe errors into intel_uc_init_hw Michal Wajdeczko
2019-08-02 12:21 ` [CI 3/3] drm/i915/wopcm: Don't fail on WOPCM partitioning failure Michal Wajdeczko
2019-08-02 13:12 ` ✗ Fi.CI.BAT: failure for add more probe failures (rev6) Patchwork
2019-08-02 13:30   ` Chris Wilson
2019-08-02 17:02     ` Michal Wajdeczko
2019-08-02 18:07       ` Daniele Ceraolo Spurio
2019-08-02 18:14         ` Michal Wajdeczko
  -- strict thread matches above, loose matches on Subject: below --
2019-08-01 22:01 [CI 0/3] add more probe failures Michal Wajdeczko
2019-08-01 16:10 Michal Wajdeczko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.