All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
@ 2019-10-01 13:54 Chris Wilson
  2019-10-01 13:54 ` [PATCH 2/2] drm/i915/tgl: Restrict availables engines to rcs0 by default Chris Wilson
                   ` (9 more replies)
  0 siblings, 10 replies; 15+ messages in thread
From: Chris Wilson @ 2019-10-01 13:54 UTC (permalink / raw)
  To: intel-gfx

Allow the user to restrict the available set of engines via a module
parameter.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Stuart Summers <stuart.summers@intel.com>
Cc: Andi Shyti <andi.shyti@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Martin Peres <martin.peres@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_engine_cs.c | 35 ++++++++++++++++-------
 drivers/gpu/drm/i915/i915_gem.c           |  5 ++++
 drivers/gpu/drm/i915/i915_params.c        |  4 +++
 drivers/gpu/drm/i915/i915_params.h        |  1 +
 4 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 80fd072ac719..690da64ec256 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -389,6 +389,29 @@ void intel_engines_cleanup(struct drm_i915_private *i915)
 	}
 }
 
+static bool engine_available(struct drm_i915_private *i915, int id)
+{
+	/* uAPI -- modparam bits must be consistent between kernels */
+	static const unsigned int param_bit[] = {
+		[RCS0]  = BIT(0),
+		[VCS0]  = BIT(1),
+		[BCS0]  = BIT(2),
+		[VECS0] = BIT(3),
+		[VCS1]  = BIT(4),
+		[VCS2]  = BIT(5),
+		[VCS3]  = BIT(6),
+		[VECS1] = BIT(7),
+	};
+
+	if (!HAS_ENGINE(i915, id))
+		return false;
+
+	if (!(i915_modparams.engines & param_bit[id]))
+		return false;
+
+	return true;
+}
+
 /**
  * intel_engines_init_mmio() - allocate and prepare the Engine Command Streamers
  * @i915: the i915 device
@@ -397,7 +420,6 @@ void intel_engines_cleanup(struct drm_i915_private *i915)
  */
 int intel_engines_init_mmio(struct drm_i915_private *i915)
 {
-	struct intel_device_info *device_info = mkwrite_device_info(i915);
 	const unsigned int engine_mask = INTEL_INFO(i915)->engine_mask;
 	unsigned int mask = 0;
 	unsigned int i;
@@ -411,7 +433,7 @@ int intel_engines_init_mmio(struct drm_i915_private *i915)
 		return -ENODEV;
 
 	for (i = 0; i < ARRAY_SIZE(intel_engines); i++) {
-		if (!HAS_ENGINE(i915, i))
+		if (!engine_available(i915, i))
 			continue;
 
 		err = intel_engine_setup(&i915->gt, i);
@@ -421,14 +443,7 @@ int intel_engines_init_mmio(struct drm_i915_private *i915)
 		mask |= BIT(i);
 	}
 
-	/*
-	 * Catch failures to update intel_engines table when the new engines
-	 * are added to the driver by a warning and disabling the forgotten
-	 * engines.
-	 */
-	if (WARN_ON(mask != engine_mask))
-		device_info->engine_mask = mask;
-
+	mkwrite_device_info(i915)->engine_mask = mask;
 	RUNTIME_INFO(i915)->num_engines = hweight32(mask);
 
 	intel_gt_check_and_clear_faults(&i915->gt);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 3d3fda4cae99..bb25731466a9 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1308,6 +1308,11 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 {
 	int ret;
 
+	if (!RUNTIME_INFO(dev_priv)->num_engines) {
+		intel_gt_set_wedged_on_init(&dev_priv->gt);
+		return 0;
+	}
+
 	/* We need to fallback to 4K pages if host doesn't support huge gtt. */
 	if (intel_vgpu_active(dev_priv) && !intel_vgpu_has_huge_gtt(dev_priv))
 		mkwrite_device_info(dev_priv)->page_sizes =
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
index 296452f9efe4..27813bd79aa8 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -44,6 +44,10 @@ i915_param_named(modeset, int, 0400,
 	"Use kernel modesetting [KMS] (0=disable, "
 	"1=on, -1=force vga console preference [default])");
 
+i915_param_named(engines, uint, 0400,
+	"Only expose selected command streamers [GPU engines] (0=disable GPU, "
+	"-1/0xffffffff enable all [default]). Each bit corresponds to a different phyiscal engine: 0=RCS0, 1=VCS0, 2=BCS0, 3=VECS0, 4=VCS1, 5=VCS2, 6=VCS3, 7=VECS1");
+
 i915_param_named_unsafe(enable_dc, int, 0400,
 	"Enable power-saving display C-states. "
 	"(-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6)");
diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
index d29ade3b7de6..f876db78a59a 100644
--- a/drivers/gpu/drm/i915/i915_params.h
+++ b/drivers/gpu/drm/i915/i915_params.h
@@ -45,6 +45,7 @@ struct drm_printer;
 #define I915_PARAMS_FOR_EACH(param) \
 	param(char *, vbt_firmware, NULL) \
 	param(int, modeset, -1) \
+	param(unsigned int, engines, -1) \
 	param(int, lvds_channel_mode, 0) \
 	param(int, panel_use_ssc, -1) \
 	param(int, vbt_sdvo_panel_type, -1) \
-- 
2.23.0

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

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

* [PATCH 2/2] drm/i915/tgl: Restrict availables engines to rcs0 by default
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
@ 2019-10-01 13:54 ` Chris Wilson
  2019-10-08 15:17   ` Summers, Stuart
  2019-10-01 16:36 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines Patchwork
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 15+ messages in thread
From: Chris Wilson @ 2019-10-01 13:54 UTC (permalink / raw)
  To: intel-gfx

CI is still unstable whenever we enable more than one engine, and we
have not yet found a better hack than restricting it to using just rcs0.

However, to allow testing to continue on the other engines by
developers, we allow the available set of engines to be overridden on
the command line with just the default set limited to [rcs0].

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Andi Shyti <andi.shyti@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 690da64ec256..9c8c7c8af394 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -406,6 +406,10 @@ static bool engine_available(struct drm_i915_private *i915, int id)
 	if (!HAS_ENGINE(i915, id))
 		return false;
 
+	/* XXX reduced by default for CI stability XXX */
+	if (IS_TIGERLAKE(i915) && i915_modparams.engines == -1u)
+		return id == RCS0;
+
 	if (!(i915_modparams.engines & param_bit[id]))
 		return false;
 
-- 
2.23.0

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

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

* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
  2019-10-01 13:54 ` [PATCH 2/2] drm/i915/tgl: Restrict availables engines to rcs0 by default Chris Wilson
@ 2019-10-01 16:36 ` Patchwork
  2019-10-01 16:59 ` ✗ Fi.CI.BAT: failure " Patchwork
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-10-01 16:36 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines
URL   : https://patchwork.freedesktop.org/series/67450/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
d9fbdccc5cd1 drm/i915: Use a modparam to restrict exposed engines
-:109: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#109: FILE: drivers/gpu/drm/i915/i915_params.c:48:
+i915_param_named(engines, uint, 0400,
+	"Only expose selected command streamers [GPU engines] (0=disable GPU, "

total: 0 errors, 0 warnings, 1 checks, 87 lines checked
e38072e0b2fa drm/i915/tgl: Restrict availables engines to rcs0 by default

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

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

* ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
  2019-10-01 13:54 ` [PATCH 2/2] drm/i915/tgl: Restrict availables engines to rcs0 by default Chris Wilson
  2019-10-01 16:36 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines Patchwork
@ 2019-10-01 16:59 ` Patchwork
  2019-10-01 17:48   ` [Intel-gfx] " kbuild test robot
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-10-01 16:59 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines
URL   : https://patchwork.freedesktop.org/series/67450/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6985 -> Patchwork_14610
====================================================

Summary
-------

  **FAILURE**

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@runner@aborted:
    - fi-bsw-n3050:       NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14610/fi-bsw-n3050/igt@runner@aborted.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_hangcheck:
    - fi-bsw-n3050:       [PASS][2] -> [INCOMPLETE][3] ([fdo#105876])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6985/fi-bsw-n3050/igt@i915_selftest@live_hangcheck.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14610/fi-bsw-n3050/igt@i915_selftest@live_hangcheck.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-blb-e6850:       [INCOMPLETE][4] ([fdo#107718]) -> [PASS][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6985/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14610/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][6] ([fdo#102614]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6985/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14610/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
#### Warnings ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][8] ([fdo#111045] / [fdo#111096]) -> [FAIL][9] ([fdo#111407])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6985/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14610/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

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

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#105876]: https://bugs.freedesktop.org/show_bug.cgi?id=105876
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#111604]: https://bugs.freedesktop.org/show_bug.cgi?id=111604
  [fdo#111714]: https://bugs.freedesktop.org/show_bug.cgi?id=111714
  [fdo#111735]: https://bugs.freedesktop.org/show_bug.cgi?id=111735


Participating hosts (51 -> 45)
------------------------------

  Additional (2): fi-cml-h fi-pnv-d510 
  Missing    (8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-u3 fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6985 -> Patchwork_14610

  CI-20190529: 20190529
  CI_DRM_6985: 75d23ba38b952a5f3d0fc42baf1df2d15c5e74b1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5208: c0131b4f132acf287d9d05b0f5078003d3159e1c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14610: e38072e0b2fa7bb6638f58c2d2b1d4c1c6075c87 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

e38072e0b2fa drm/i915/tgl: Restrict availables engines to rcs0 by default
d9fbdccc5cd1 drm/i915: Use a modparam to restrict exposed engines

== Logs ==

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

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

* Re: [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
@ 2019-10-01 17:48   ` kbuild test robot
  2019-10-01 16:36 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines Patchwork
                     ` (8 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-10-01 17:48 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7228 bytes --]

Hi Chris,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc1 next-20191001]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Use-a-modparam-to-restrict-exposed-engines/20191002-003226
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_init':
>> drivers/gpu/drm/i915/i915_gem.c:1411:3: error: implicit declaration of function 'intel_gt_set_wedged_on_init'; did you mean 'intel_gt_set_wedged'? [-Werror=implicit-function-declaration]
      intel_gt_set_wedged_on_init(&dev_priv->gt);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      intel_gt_set_wedged
   cc1: some warnings being treated as errors

vim +1411 drivers/gpu/drm/i915/i915_gem.c

  1405	
  1406	int i915_gem_init(struct drm_i915_private *dev_priv)
  1407	{
  1408		int ret;
  1409	
  1410		if (!RUNTIME_INFO(dev_priv)->num_engines) {
> 1411			intel_gt_set_wedged_on_init(&dev_priv->gt);
  1412			return 0;
  1413		}
  1414	
  1415		/* We need to fallback to 4K pages if host doesn't support huge gtt. */
  1416		if (intel_vgpu_active(dev_priv) && !intel_vgpu_has_huge_gtt(dev_priv))
  1417			mkwrite_device_info(dev_priv)->page_sizes =
  1418				I915_GTT_PAGE_SIZE_4K;
  1419	
  1420		intel_timelines_init(dev_priv);
  1421	
  1422		ret = i915_gem_init_userptr(dev_priv);
  1423		if (ret)
  1424			return ret;
  1425	
  1426		intel_uc_fetch_firmwares(&dev_priv->gt.uc);
  1427		intel_wopcm_init(&dev_priv->wopcm);
  1428	
  1429		/* This is just a security blanket to placate dragons.
  1430		 * On some systems, we very sporadically observe that the first TLBs
  1431		 * used by the CS may be stale, despite us poking the TLB reset. If
  1432		 * we hold the forcewake during initialisation these problems
  1433		 * just magically go away.
  1434		 */
  1435		mutex_lock(&dev_priv->drm.struct_mutex);
  1436		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
  1437	
  1438		ret = i915_init_ggtt(dev_priv);
  1439		if (ret) {
  1440			GEM_BUG_ON(ret == -EIO);
  1441			goto err_unlock;
  1442		}
  1443	
  1444		ret = i915_gem_init_scratch(dev_priv,
  1445					    IS_GEN(dev_priv, 2) ? SZ_256K : PAGE_SIZE);
  1446		if (ret) {
  1447			GEM_BUG_ON(ret == -EIO);
  1448			goto err_ggtt;
  1449		}
  1450	
  1451		ret = intel_engines_setup(dev_priv);
  1452		if (ret) {
  1453			GEM_BUG_ON(ret == -EIO);
  1454			goto err_unlock;
  1455		}
  1456	
  1457		ret = i915_gem_contexts_init(dev_priv);
  1458		if (ret) {
  1459			GEM_BUG_ON(ret == -EIO);
  1460			goto err_scratch;
  1461		}
  1462	
  1463		ret = intel_engines_init(dev_priv);
  1464		if (ret) {
  1465			GEM_BUG_ON(ret == -EIO);
  1466			goto err_context;
  1467		}
  1468	
  1469		intel_init_gt_powersave(dev_priv);
  1470	
  1471		intel_uc_init(&dev_priv->gt.uc);
  1472	
  1473		ret = i915_gem_init_hw(dev_priv);
  1474		if (ret)
  1475			goto err_uc_init;
  1476	
  1477		/* Only when the HW is re-initialised, can we replay the requests */
  1478		ret = intel_gt_resume(&dev_priv->gt);
  1479		if (ret)
  1480			goto err_init_hw;
  1481	
  1482		/*
  1483		 * Despite its name intel_init_clock_gating applies both display
  1484		 * clock gating workarounds; GT mmio workarounds and the occasional
  1485		 * GT power context workaround. Worse, sometimes it includes a context
  1486		 * register workaround which we need to apply before we record the
  1487		 * default HW state for all contexts.
  1488		 *
  1489		 * FIXME: break up the workarounds and apply them at the right time!
  1490		 */
  1491		intel_init_clock_gating(dev_priv);
  1492	
  1493		ret = intel_engines_verify_workarounds(dev_priv);
  1494		if (ret)
  1495			goto err_gt;
  1496	
  1497		ret = __intel_engines_record_defaults(dev_priv);
  1498		if (ret)
  1499			goto err_gt;
  1500	
  1501		ret = i915_inject_load_error(dev_priv, -ENODEV);
  1502		if (ret)
  1503			goto err_gt;
  1504	
  1505		ret = i915_inject_load_error(dev_priv, -EIO);
  1506		if (ret)
  1507			goto err_gt;
  1508	
  1509		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1510		mutex_unlock(&dev_priv->drm.struct_mutex);
  1511	
  1512		return 0;
  1513	
  1514		/*
  1515		 * Unwinding is complicated by that we want to handle -EIO to mean
  1516		 * disable GPU submission but keep KMS alive. We want to mark the
  1517		 * HW as irrevisibly wedged, but keep enough state around that the
  1518		 * driver doesn't explode during runtime.
  1519		 */
  1520	err_gt:
  1521		mutex_unlock(&dev_priv->drm.struct_mutex);
  1522	
  1523		intel_gt_set_wedged(&dev_priv->gt);
  1524		i915_gem_suspend(dev_priv);
  1525		i915_gem_suspend_late(dev_priv);
  1526	
  1527		i915_gem_drain_workqueue(dev_priv);
  1528	
  1529		mutex_lock(&dev_priv->drm.struct_mutex);
  1530	err_init_hw:
  1531		intel_uc_fini_hw(&dev_priv->gt.uc);
  1532	err_uc_init:
  1533		if (ret != -EIO) {
  1534			intel_uc_fini(&dev_priv->gt.uc);
  1535			intel_cleanup_gt_powersave(dev_priv);
  1536			intel_engines_cleanup(dev_priv);
  1537		}
  1538	err_context:
  1539		if (ret != -EIO)
  1540			i915_gem_contexts_fini(dev_priv);
  1541	err_scratch:
  1542		i915_gem_fini_scratch(dev_priv);
  1543	err_ggtt:
  1544	err_unlock:
  1545		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1546		mutex_unlock(&dev_priv->drm.struct_mutex);
  1547	
  1548		if (ret != -EIO) {
  1549			intel_uc_cleanup_firmwares(&dev_priv->gt.uc);
  1550			i915_gem_cleanup_userptr(dev_priv);
  1551			intel_timelines_fini(dev_priv);
  1552		}
  1553	
  1554		if (ret == -EIO) {
  1555			mutex_lock(&dev_priv->drm.struct_mutex);
  1556	
  1557			/*
  1558			 * Allow engines or uC initialisation to fail by marking the GPU
  1559			 * as wedged. But we only want to do this when the GPU is angry,
  1560			 * for all other failure, such as an allocation failure, bail.
  1561			 */
  1562			if (!intel_gt_is_wedged(&dev_priv->gt)) {
  1563				i915_probe_error(dev_priv,
  1564						 "Failed to initialize GPU, declaring it wedged!\n");
  1565				intel_gt_set_wedged(&dev_priv->gt);
  1566			}
  1567	
  1568			/* Minimal basic recovery for KMS */
  1569			ret = i915_ggtt_enable_hw(dev_priv);
  1570			i915_gem_restore_gtt_mappings(dev_priv);
  1571			i915_gem_restore_fences(dev_priv);
  1572			intel_init_clock_gating(dev_priv);
  1573	
  1574			mutex_unlock(&dev_priv->drm.struct_mutex);
  1575		}
  1576	
  1577		i915_gem_drain_freed_objects(dev_priv);
  1578		return ret;
  1579	}
  1580	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28068 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

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

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

* Re: [Intel-gfx] [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
@ 2019-10-01 17:48   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-10-01 17:48 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7440 bytes --]

Hi Chris,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc1 next-20191001]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Use-a-modparam-to-restrict-exposed-engines/20191002-003226
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_init':
>> drivers/gpu/drm/i915/i915_gem.c:1411:3: error: implicit declaration of function 'intel_gt_set_wedged_on_init'; did you mean 'intel_gt_set_wedged'? [-Werror=implicit-function-declaration]
      intel_gt_set_wedged_on_init(&dev_priv->gt);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      intel_gt_set_wedged
   cc1: some warnings being treated as errors

vim +1411 drivers/gpu/drm/i915/i915_gem.c

  1405	
  1406	int i915_gem_init(struct drm_i915_private *dev_priv)
  1407	{
  1408		int ret;
  1409	
  1410		if (!RUNTIME_INFO(dev_priv)->num_engines) {
> 1411			intel_gt_set_wedged_on_init(&dev_priv->gt);
  1412			return 0;
  1413		}
  1414	
  1415		/* We need to fallback to 4K pages if host doesn't support huge gtt. */
  1416		if (intel_vgpu_active(dev_priv) && !intel_vgpu_has_huge_gtt(dev_priv))
  1417			mkwrite_device_info(dev_priv)->page_sizes =
  1418				I915_GTT_PAGE_SIZE_4K;
  1419	
  1420		intel_timelines_init(dev_priv);
  1421	
  1422		ret = i915_gem_init_userptr(dev_priv);
  1423		if (ret)
  1424			return ret;
  1425	
  1426		intel_uc_fetch_firmwares(&dev_priv->gt.uc);
  1427		intel_wopcm_init(&dev_priv->wopcm);
  1428	
  1429		/* This is just a security blanket to placate dragons.
  1430		 * On some systems, we very sporadically observe that the first TLBs
  1431		 * used by the CS may be stale, despite us poking the TLB reset. If
  1432		 * we hold the forcewake during initialisation these problems
  1433		 * just magically go away.
  1434		 */
  1435		mutex_lock(&dev_priv->drm.struct_mutex);
  1436		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
  1437	
  1438		ret = i915_init_ggtt(dev_priv);
  1439		if (ret) {
  1440			GEM_BUG_ON(ret == -EIO);
  1441			goto err_unlock;
  1442		}
  1443	
  1444		ret = i915_gem_init_scratch(dev_priv,
  1445					    IS_GEN(dev_priv, 2) ? SZ_256K : PAGE_SIZE);
  1446		if (ret) {
  1447			GEM_BUG_ON(ret == -EIO);
  1448			goto err_ggtt;
  1449		}
  1450	
  1451		ret = intel_engines_setup(dev_priv);
  1452		if (ret) {
  1453			GEM_BUG_ON(ret == -EIO);
  1454			goto err_unlock;
  1455		}
  1456	
  1457		ret = i915_gem_contexts_init(dev_priv);
  1458		if (ret) {
  1459			GEM_BUG_ON(ret == -EIO);
  1460			goto err_scratch;
  1461		}
  1462	
  1463		ret = intel_engines_init(dev_priv);
  1464		if (ret) {
  1465			GEM_BUG_ON(ret == -EIO);
  1466			goto err_context;
  1467		}
  1468	
  1469		intel_init_gt_powersave(dev_priv);
  1470	
  1471		intel_uc_init(&dev_priv->gt.uc);
  1472	
  1473		ret = i915_gem_init_hw(dev_priv);
  1474		if (ret)
  1475			goto err_uc_init;
  1476	
  1477		/* Only when the HW is re-initialised, can we replay the requests */
  1478		ret = intel_gt_resume(&dev_priv->gt);
  1479		if (ret)
  1480			goto err_init_hw;
  1481	
  1482		/*
  1483		 * Despite its name intel_init_clock_gating applies both display
  1484		 * clock gating workarounds; GT mmio workarounds and the occasional
  1485		 * GT power context workaround. Worse, sometimes it includes a context
  1486		 * register workaround which we need to apply before we record the
  1487		 * default HW state for all contexts.
  1488		 *
  1489		 * FIXME: break up the workarounds and apply them at the right time!
  1490		 */
  1491		intel_init_clock_gating(dev_priv);
  1492	
  1493		ret = intel_engines_verify_workarounds(dev_priv);
  1494		if (ret)
  1495			goto err_gt;
  1496	
  1497		ret = __intel_engines_record_defaults(dev_priv);
  1498		if (ret)
  1499			goto err_gt;
  1500	
  1501		ret = i915_inject_load_error(dev_priv, -ENODEV);
  1502		if (ret)
  1503			goto err_gt;
  1504	
  1505		ret = i915_inject_load_error(dev_priv, -EIO);
  1506		if (ret)
  1507			goto err_gt;
  1508	
  1509		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1510		mutex_unlock(&dev_priv->drm.struct_mutex);
  1511	
  1512		return 0;
  1513	
  1514		/*
  1515		 * Unwinding is complicated by that we want to handle -EIO to mean
  1516		 * disable GPU submission but keep KMS alive. We want to mark the
  1517		 * HW as irrevisibly wedged, but keep enough state around that the
  1518		 * driver doesn't explode during runtime.
  1519		 */
  1520	err_gt:
  1521		mutex_unlock(&dev_priv->drm.struct_mutex);
  1522	
  1523		intel_gt_set_wedged(&dev_priv->gt);
  1524		i915_gem_suspend(dev_priv);
  1525		i915_gem_suspend_late(dev_priv);
  1526	
  1527		i915_gem_drain_workqueue(dev_priv);
  1528	
  1529		mutex_lock(&dev_priv->drm.struct_mutex);
  1530	err_init_hw:
  1531		intel_uc_fini_hw(&dev_priv->gt.uc);
  1532	err_uc_init:
  1533		if (ret != -EIO) {
  1534			intel_uc_fini(&dev_priv->gt.uc);
  1535			intel_cleanup_gt_powersave(dev_priv);
  1536			intel_engines_cleanup(dev_priv);
  1537		}
  1538	err_context:
  1539		if (ret != -EIO)
  1540			i915_gem_contexts_fini(dev_priv);
  1541	err_scratch:
  1542		i915_gem_fini_scratch(dev_priv);
  1543	err_ggtt:
  1544	err_unlock:
  1545		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1546		mutex_unlock(&dev_priv->drm.struct_mutex);
  1547	
  1548		if (ret != -EIO) {
  1549			intel_uc_cleanup_firmwares(&dev_priv->gt.uc);
  1550			i915_gem_cleanup_userptr(dev_priv);
  1551			intel_timelines_fini(dev_priv);
  1552		}
  1553	
  1554		if (ret == -EIO) {
  1555			mutex_lock(&dev_priv->drm.struct_mutex);
  1556	
  1557			/*
  1558			 * Allow engines or uC initialisation to fail by marking the GPU
  1559			 * as wedged. But we only want to do this when the GPU is angry,
  1560			 * for all other failure, such as an allocation failure, bail.
  1561			 */
  1562			if (!intel_gt_is_wedged(&dev_priv->gt)) {
  1563				i915_probe_error(dev_priv,
  1564						 "Failed to initialize GPU, declaring it wedged!\n");
  1565				intel_gt_set_wedged(&dev_priv->gt);
  1566			}
  1567	
  1568			/* Minimal basic recovery for KMS */
  1569			ret = i915_ggtt_enable_hw(dev_priv);
  1570			i915_gem_restore_gtt_mappings(dev_priv);
  1571			i915_gem_restore_fences(dev_priv);
  1572			intel_init_clock_gating(dev_priv);
  1573	
  1574			mutex_unlock(&dev_priv->drm.struct_mutex);
  1575		}
  1576	
  1577		i915_gem_drain_freed_objects(dev_priv);
  1578		return ret;
  1579	}
  1580	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28068 bytes --]

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

* Re: [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
@ 2019-10-01 18:21   ` kbuild test robot
  2019-10-01 16:36 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines Patchwork
                     ` (8 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-10-01 18:21 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7198 bytes --]

Hi Chris,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc1 next-20191001]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Use-a-modparam-to-restrict-exposed-engines/20191002-003226
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-a002-201939 (attached as .config)
compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_init':
>> drivers/gpu/drm/i915/i915_gem.c:1411:3: error: implicit declaration of function 'intel_gt_set_wedged_on_init' [-Werror=implicit-function-declaration]
      intel_gt_set_wedged_on_init(&dev_priv->gt);
      ^
   cc1: some warnings being treated as errors

vim +/intel_gt_set_wedged_on_init +1411 drivers/gpu/drm/i915/i915_gem.c

  1405	
  1406	int i915_gem_init(struct drm_i915_private *dev_priv)
  1407	{
  1408		int ret;
  1409	
  1410		if (!RUNTIME_INFO(dev_priv)->num_engines) {
> 1411			intel_gt_set_wedged_on_init(&dev_priv->gt);
  1412			return 0;
  1413		}
  1414	
  1415		/* We need to fallback to 4K pages if host doesn't support huge gtt. */
  1416		if (intel_vgpu_active(dev_priv) && !intel_vgpu_has_huge_gtt(dev_priv))
  1417			mkwrite_device_info(dev_priv)->page_sizes =
  1418				I915_GTT_PAGE_SIZE_4K;
  1419	
  1420		intel_timelines_init(dev_priv);
  1421	
  1422		ret = i915_gem_init_userptr(dev_priv);
  1423		if (ret)
  1424			return ret;
  1425	
  1426		intel_uc_fetch_firmwares(&dev_priv->gt.uc);
  1427		intel_wopcm_init(&dev_priv->wopcm);
  1428	
  1429		/* This is just a security blanket to placate dragons.
  1430		 * On some systems, we very sporadically observe that the first TLBs
  1431		 * used by the CS may be stale, despite us poking the TLB reset. If
  1432		 * we hold the forcewake during initialisation these problems
  1433		 * just magically go away.
  1434		 */
  1435		mutex_lock(&dev_priv->drm.struct_mutex);
  1436		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
  1437	
  1438		ret = i915_init_ggtt(dev_priv);
  1439		if (ret) {
  1440			GEM_BUG_ON(ret == -EIO);
  1441			goto err_unlock;
  1442		}
  1443	
  1444		ret = i915_gem_init_scratch(dev_priv,
  1445					    IS_GEN(dev_priv, 2) ? SZ_256K : PAGE_SIZE);
  1446		if (ret) {
  1447			GEM_BUG_ON(ret == -EIO);
  1448			goto err_ggtt;
  1449		}
  1450	
  1451		ret = intel_engines_setup(dev_priv);
  1452		if (ret) {
  1453			GEM_BUG_ON(ret == -EIO);
  1454			goto err_unlock;
  1455		}
  1456	
  1457		ret = i915_gem_contexts_init(dev_priv);
  1458		if (ret) {
  1459			GEM_BUG_ON(ret == -EIO);
  1460			goto err_scratch;
  1461		}
  1462	
  1463		ret = intel_engines_init(dev_priv);
  1464		if (ret) {
  1465			GEM_BUG_ON(ret == -EIO);
  1466			goto err_context;
  1467		}
  1468	
  1469		intel_init_gt_powersave(dev_priv);
  1470	
  1471		intel_uc_init(&dev_priv->gt.uc);
  1472	
  1473		ret = i915_gem_init_hw(dev_priv);
  1474		if (ret)
  1475			goto err_uc_init;
  1476	
  1477		/* Only when the HW is re-initialised, can we replay the requests */
  1478		ret = intel_gt_resume(&dev_priv->gt);
  1479		if (ret)
  1480			goto err_init_hw;
  1481	
  1482		/*
  1483		 * Despite its name intel_init_clock_gating applies both display
  1484		 * clock gating workarounds; GT mmio workarounds and the occasional
  1485		 * GT power context workaround. Worse, sometimes it includes a context
  1486		 * register workaround which we need to apply before we record the
  1487		 * default HW state for all contexts.
  1488		 *
  1489		 * FIXME: break up the workarounds and apply them at the right time!
  1490		 */
  1491		intel_init_clock_gating(dev_priv);
  1492	
  1493		ret = intel_engines_verify_workarounds(dev_priv);
  1494		if (ret)
  1495			goto err_gt;
  1496	
  1497		ret = __intel_engines_record_defaults(dev_priv);
  1498		if (ret)
  1499			goto err_gt;
  1500	
  1501		ret = i915_inject_load_error(dev_priv, -ENODEV);
  1502		if (ret)
  1503			goto err_gt;
  1504	
  1505		ret = i915_inject_load_error(dev_priv, -EIO);
  1506		if (ret)
  1507			goto err_gt;
  1508	
  1509		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1510		mutex_unlock(&dev_priv->drm.struct_mutex);
  1511	
  1512		return 0;
  1513	
  1514		/*
  1515		 * Unwinding is complicated by that we want to handle -EIO to mean
  1516		 * disable GPU submission but keep KMS alive. We want to mark the
  1517		 * HW as irrevisibly wedged, but keep enough state around that the
  1518		 * driver doesn't explode during runtime.
  1519		 */
  1520	err_gt:
  1521		mutex_unlock(&dev_priv->drm.struct_mutex);
  1522	
  1523		intel_gt_set_wedged(&dev_priv->gt);
  1524		i915_gem_suspend(dev_priv);
  1525		i915_gem_suspend_late(dev_priv);
  1526	
  1527		i915_gem_drain_workqueue(dev_priv);
  1528	
  1529		mutex_lock(&dev_priv->drm.struct_mutex);
  1530	err_init_hw:
  1531		intel_uc_fini_hw(&dev_priv->gt.uc);
  1532	err_uc_init:
  1533		if (ret != -EIO) {
  1534			intel_uc_fini(&dev_priv->gt.uc);
  1535			intel_cleanup_gt_powersave(dev_priv);
  1536			intel_engines_cleanup(dev_priv);
  1537		}
  1538	err_context:
  1539		if (ret != -EIO)
  1540			i915_gem_contexts_fini(dev_priv);
  1541	err_scratch:
  1542		i915_gem_fini_scratch(dev_priv);
  1543	err_ggtt:
  1544	err_unlock:
  1545		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1546		mutex_unlock(&dev_priv->drm.struct_mutex);
  1547	
  1548		if (ret != -EIO) {
  1549			intel_uc_cleanup_firmwares(&dev_priv->gt.uc);
  1550			i915_gem_cleanup_userptr(dev_priv);
  1551			intel_timelines_fini(dev_priv);
  1552		}
  1553	
  1554		if (ret == -EIO) {
  1555			mutex_lock(&dev_priv->drm.struct_mutex);
  1556	
  1557			/*
  1558			 * Allow engines or uC initialisation to fail by marking the GPU
  1559			 * as wedged. But we only want to do this when the GPU is angry,
  1560			 * for all other failure, such as an allocation failure, bail.
  1561			 */
  1562			if (!intel_gt_is_wedged(&dev_priv->gt)) {
  1563				i915_probe_error(dev_priv,
  1564						 "Failed to initialize GPU, declaring it wedged!\n");
  1565				intel_gt_set_wedged(&dev_priv->gt);
  1566			}
  1567	
  1568			/* Minimal basic recovery for KMS */
  1569			ret = i915_ggtt_enable_hw(dev_priv);
  1570			i915_gem_restore_gtt_mappings(dev_priv);
  1571			i915_gem_restore_fences(dev_priv);
  1572			intel_init_clock_gating(dev_priv);
  1573	
  1574			mutex_unlock(&dev_priv->drm.struct_mutex);
  1575		}
  1576	
  1577		i915_gem_drain_freed_objects(dev_priv);
  1578		return ret;
  1579	}
  1580	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 35671 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

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

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

* Re: [Intel-gfx] [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
@ 2019-10-01 18:21   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-10-01 18:21 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7409 bytes --]

Hi Chris,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.4-rc1 next-20191001]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Use-a-modparam-to-restrict-exposed-engines/20191002-003226
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-a002-201939 (attached as .config)
compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_init':
>> drivers/gpu/drm/i915/i915_gem.c:1411:3: error: implicit declaration of function 'intel_gt_set_wedged_on_init' [-Werror=implicit-function-declaration]
      intel_gt_set_wedged_on_init(&dev_priv->gt);
      ^
   cc1: some warnings being treated as errors

vim +/intel_gt_set_wedged_on_init +1411 drivers/gpu/drm/i915/i915_gem.c

  1405	
  1406	int i915_gem_init(struct drm_i915_private *dev_priv)
  1407	{
  1408		int ret;
  1409	
  1410		if (!RUNTIME_INFO(dev_priv)->num_engines) {
> 1411			intel_gt_set_wedged_on_init(&dev_priv->gt);
  1412			return 0;
  1413		}
  1414	
  1415		/* We need to fallback to 4K pages if host doesn't support huge gtt. */
  1416		if (intel_vgpu_active(dev_priv) && !intel_vgpu_has_huge_gtt(dev_priv))
  1417			mkwrite_device_info(dev_priv)->page_sizes =
  1418				I915_GTT_PAGE_SIZE_4K;
  1419	
  1420		intel_timelines_init(dev_priv);
  1421	
  1422		ret = i915_gem_init_userptr(dev_priv);
  1423		if (ret)
  1424			return ret;
  1425	
  1426		intel_uc_fetch_firmwares(&dev_priv->gt.uc);
  1427		intel_wopcm_init(&dev_priv->wopcm);
  1428	
  1429		/* This is just a security blanket to placate dragons.
  1430		 * On some systems, we very sporadically observe that the first TLBs
  1431		 * used by the CS may be stale, despite us poking the TLB reset. If
  1432		 * we hold the forcewake during initialisation these problems
  1433		 * just magically go away.
  1434		 */
  1435		mutex_lock(&dev_priv->drm.struct_mutex);
  1436		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
  1437	
  1438		ret = i915_init_ggtt(dev_priv);
  1439		if (ret) {
  1440			GEM_BUG_ON(ret == -EIO);
  1441			goto err_unlock;
  1442		}
  1443	
  1444		ret = i915_gem_init_scratch(dev_priv,
  1445					    IS_GEN(dev_priv, 2) ? SZ_256K : PAGE_SIZE);
  1446		if (ret) {
  1447			GEM_BUG_ON(ret == -EIO);
  1448			goto err_ggtt;
  1449		}
  1450	
  1451		ret = intel_engines_setup(dev_priv);
  1452		if (ret) {
  1453			GEM_BUG_ON(ret == -EIO);
  1454			goto err_unlock;
  1455		}
  1456	
  1457		ret = i915_gem_contexts_init(dev_priv);
  1458		if (ret) {
  1459			GEM_BUG_ON(ret == -EIO);
  1460			goto err_scratch;
  1461		}
  1462	
  1463		ret = intel_engines_init(dev_priv);
  1464		if (ret) {
  1465			GEM_BUG_ON(ret == -EIO);
  1466			goto err_context;
  1467		}
  1468	
  1469		intel_init_gt_powersave(dev_priv);
  1470	
  1471		intel_uc_init(&dev_priv->gt.uc);
  1472	
  1473		ret = i915_gem_init_hw(dev_priv);
  1474		if (ret)
  1475			goto err_uc_init;
  1476	
  1477		/* Only when the HW is re-initialised, can we replay the requests */
  1478		ret = intel_gt_resume(&dev_priv->gt);
  1479		if (ret)
  1480			goto err_init_hw;
  1481	
  1482		/*
  1483		 * Despite its name intel_init_clock_gating applies both display
  1484		 * clock gating workarounds; GT mmio workarounds and the occasional
  1485		 * GT power context workaround. Worse, sometimes it includes a context
  1486		 * register workaround which we need to apply before we record the
  1487		 * default HW state for all contexts.
  1488		 *
  1489		 * FIXME: break up the workarounds and apply them at the right time!
  1490		 */
  1491		intel_init_clock_gating(dev_priv);
  1492	
  1493		ret = intel_engines_verify_workarounds(dev_priv);
  1494		if (ret)
  1495			goto err_gt;
  1496	
  1497		ret = __intel_engines_record_defaults(dev_priv);
  1498		if (ret)
  1499			goto err_gt;
  1500	
  1501		ret = i915_inject_load_error(dev_priv, -ENODEV);
  1502		if (ret)
  1503			goto err_gt;
  1504	
  1505		ret = i915_inject_load_error(dev_priv, -EIO);
  1506		if (ret)
  1507			goto err_gt;
  1508	
  1509		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1510		mutex_unlock(&dev_priv->drm.struct_mutex);
  1511	
  1512		return 0;
  1513	
  1514		/*
  1515		 * Unwinding is complicated by that we want to handle -EIO to mean
  1516		 * disable GPU submission but keep KMS alive. We want to mark the
  1517		 * HW as irrevisibly wedged, but keep enough state around that the
  1518		 * driver doesn't explode during runtime.
  1519		 */
  1520	err_gt:
  1521		mutex_unlock(&dev_priv->drm.struct_mutex);
  1522	
  1523		intel_gt_set_wedged(&dev_priv->gt);
  1524		i915_gem_suspend(dev_priv);
  1525		i915_gem_suspend_late(dev_priv);
  1526	
  1527		i915_gem_drain_workqueue(dev_priv);
  1528	
  1529		mutex_lock(&dev_priv->drm.struct_mutex);
  1530	err_init_hw:
  1531		intel_uc_fini_hw(&dev_priv->gt.uc);
  1532	err_uc_init:
  1533		if (ret != -EIO) {
  1534			intel_uc_fini(&dev_priv->gt.uc);
  1535			intel_cleanup_gt_powersave(dev_priv);
  1536			intel_engines_cleanup(dev_priv);
  1537		}
  1538	err_context:
  1539		if (ret != -EIO)
  1540			i915_gem_contexts_fini(dev_priv);
  1541	err_scratch:
  1542		i915_gem_fini_scratch(dev_priv);
  1543	err_ggtt:
  1544	err_unlock:
  1545		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
  1546		mutex_unlock(&dev_priv->drm.struct_mutex);
  1547	
  1548		if (ret != -EIO) {
  1549			intel_uc_cleanup_firmwares(&dev_priv->gt.uc);
  1550			i915_gem_cleanup_userptr(dev_priv);
  1551			intel_timelines_fini(dev_priv);
  1552		}
  1553	
  1554		if (ret == -EIO) {
  1555			mutex_lock(&dev_priv->drm.struct_mutex);
  1556	
  1557			/*
  1558			 * Allow engines or uC initialisation to fail by marking the GPU
  1559			 * as wedged. But we only want to do this when the GPU is angry,
  1560			 * for all other failure, such as an allocation failure, bail.
  1561			 */
  1562			if (!intel_gt_is_wedged(&dev_priv->gt)) {
  1563				i915_probe_error(dev_priv,
  1564						 "Failed to initialize GPU, declaring it wedged!\n");
  1565				intel_gt_set_wedged(&dev_priv->gt);
  1566			}
  1567	
  1568			/* Minimal basic recovery for KMS */
  1569			ret = i915_ggtt_enable_hw(dev_priv);
  1570			i915_gem_restore_gtt_mappings(dev_priv);
  1571			i915_gem_restore_fences(dev_priv);
  1572			intel_init_clock_gating(dev_priv);
  1573	
  1574			mutex_unlock(&dev_priv->drm.struct_mutex);
  1575		}
  1576	
  1577		i915_gem_drain_freed_objects(dev_priv);
  1578		return ret;
  1579	}
  1580	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35671 bytes --]

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

* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2)
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
                   ` (4 preceding siblings ...)
  2019-10-01 18:21   ` [Intel-gfx] " kbuild test robot
@ 2019-10-01 21:54 ` Patchwork
  2019-10-01 22:20 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-10-01 21:54 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2)
URL   : https://patchwork.freedesktop.org/series/67450/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
c8be7f867553 drm/i915: Use a modparam to restrict exposed engines
-:109: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#109: FILE: drivers/gpu/drm/i915/i915_params.c:48:
+i915_param_named(engines, uint, 0400,
+	"Only expose selected command streamers [GPU engines] (0=disable GPU, "

total: 0 errors, 0 warnings, 1 checks, 87 lines checked
971c66ff56ce drm/i915/tgl: Restrict availables engines to rcs0 by default

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

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

* ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2)
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
                   ` (5 preceding siblings ...)
  2019-10-01 21:54 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2) Patchwork
@ 2019-10-01 22:20 ` Patchwork
  2019-10-02  8:38 ` ✗ Fi.CI.IGT: failure " Patchwork
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-10-01 22:20 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2)
URL   : https://patchwork.freedesktop.org/series/67450/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6986 -> Patchwork_14618
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/index.html

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

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

### IGT changes ###

#### Suppressed ####

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

  * igt@gem_sync@basic-many-each:
    - {fi-cml-h}:         [PASS][1] -> [TIMEOUT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/fi-cml-h/igt@gem_sync@basic-many-each.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/fi-cml-h/igt@gem_sync@basic-many-each.html

  * igt@runner@aborted:
    - {fi-cml-h}:         NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/fi-cml-h/igt@runner@aborted.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_switch@rcs0:
    - fi-bxt-dsi:         [PASS][4] -> [INCOMPLETE][5] ([fdo#103927])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/fi-bxt-dsi/igt@gem_ctx_switch@rcs0.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/fi-bxt-dsi/igt@gem_ctx_switch@rcs0.html

  * igt@gem_mmap_gtt@basic-read:
    - fi-icl-u3:          [PASS][6] -> [DMESG-WARN][7] ([fdo#107724]) +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/fi-icl-u3/igt@gem_mmap_gtt@basic-read.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/fi-icl-u3/igt@gem_mmap_gtt@basic-read.html

  
#### Possible fixes ####

  * igt@gem_linear_blits@basic:
    - fi-icl-u3:          [DMESG-WARN][8] ([fdo#107724]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/fi-icl-u3/igt@gem_linear_blits@basic.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/fi-icl-u3/igt@gem_linear_blits@basic.html

  * igt@i915_module_load@reload:
    - fi-icl-u3:          [DMESG-WARN][10] ([fdo#107724] / [fdo#111214]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/fi-icl-u3/igt@i915_module_load@reload.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/fi-icl-u3/igt@i915_module_load@reload.html

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

  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214
  [fdo#111604]: https://bugs.freedesktop.org/show_bug.cgi?id=111604
  [fdo#111714]: https://bugs.freedesktop.org/show_bug.cgi?id=111714


Participating hosts (54 -> 47)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6986 -> Patchwork_14618

  CI-20190529: 20190529
  CI_DRM_6986: 9300459553e8c1032f10ec1953e1a375a99aba13 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5208: c0131b4f132acf287d9d05b0f5078003d3159e1c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14618: 971c66ff56ceb82389ee13876716ab9e41cd7252 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

971c66ff56ce drm/i915/tgl: Restrict availables engines to rcs0 by default
c8be7f867553 drm/i915: Use a modparam to restrict exposed engines

== Logs ==

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

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

* ✗ Fi.CI.IGT: failure for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2)
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
                   ` (6 preceding siblings ...)
  2019-10-01 22:20 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-10-02  8:38 ` Patchwork
  2019-10-05 10:10 ` [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Andi Shyti
  2019-10-08 15:21 ` Summers, Stuart
  9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-10-02  8:38 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2)
URL   : https://patchwork.freedesktop.org/series/67450/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6986_full -> Patchwork_14618_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_14618_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_14618_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@syncobj_wait@wait-any-complex:
    - shard-kbl:          [PASS][1] -> [TIMEOUT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-kbl3/igt@syncobj_wait@wait-any-complex.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-kbl7/igt@syncobj_wait@wait-any-complex.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@drm_read@short-buffer-wakeup:
    - shard-apl:          [PASS][3] -> [INCOMPLETE][4] ([fdo#103927])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-apl4/igt@drm_read@short-buffer-wakeup.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-apl4/igt@drm_read@short-buffer-wakeup.html

  * igt@gem_ctx_shared@exec-single-timeline-bsd:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#110841])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb5/igt@gem_ctx_shared@exec-single-timeline-bsd.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb4/igt@gem_ctx_shared@exec-single-timeline-bsd.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#110854])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb4/igt@gem_exec_balancer@smoke.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb7/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@in-order-bsd:
    - shard-iclb:         [PASS][9] -> [SKIP][10] ([fdo#111325]) +9 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb6/igt@gem_exec_schedule@in-order-bsd.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb2/igt@gem_exec_schedule@in-order-bsd.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive:
    - shard-snb:          [PASS][11] -> [DMESG-WARN][12] ([fdo#110789])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-snb6/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-snb1/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
    - shard-apl:          [PASS][13] -> [DMESG-WARN][14] ([fdo#109385] / [fdo#111870]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-apl6/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-apl7/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-glk2/igt@gem_userptr_blits@sync-unmap.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-glk9/igt@gem_userptr_blits@sync-unmap.html

  * igt@gem_userptr_blits@sync-unmap-after-close:
    - shard-snb:          [PASS][17] -> [DMESG-WARN][18] ([fdo#111870])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-snb1/igt@gem_userptr_blits@sync-unmap-after-close.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-snb6/igt@gem_userptr_blits@sync-unmap-after-close.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-skl:          [PASS][19] -> [INCOMPLETE][20] ([fdo#104108])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl1/igt@i915_suspend@fence-restore-untiled.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl2/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-apl:          [PASS][21] -> [DMESG-WARN][22] ([fdo#108566]) +5 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-apl4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-kbl:          [PASS][23] -> [INCOMPLETE][24] ([fdo#103665]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-kbl3/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render:
    - shard-iclb:         [PASS][25] -> [FAIL][26] ([fdo#103167])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_plane@plane-panning-bottom-right-pipe-a-planes:
    - shard-skl:          [PASS][27] -> [FAIL][28] ([fdo#103166])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl5/igt@kms_plane@plane-panning-bottom-right-pipe-a-planes.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl4/igt@kms_plane@plane-panning-bottom-right-pipe-a-planes.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-iclb:         [PASS][29] -> [FAIL][30] ([fdo#103166])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb6/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb1/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [PASS][31] -> [SKIP][32] ([fdo#109441]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb3/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_setmode@basic:
    - shard-apl:          [PASS][33] -> [FAIL][34] ([fdo#99912])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-apl6/igt@kms_setmode@basic.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-apl7/igt@kms_setmode@basic.html

  * igt@perf_pmu@cpu-hotplug:
    - shard-kbl:          [PASS][35] -> [TIMEOUT][36] ([fdo#111546] / [fdo#111800])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-kbl3/igt@perf_pmu@cpu-hotplug.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-kbl7/igt@perf_pmu@cpu-hotplug.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][37] -> [SKIP][38] ([fdo#109276]) +7 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb2/igt@prime_vgem@fence-wait-bsd2.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb3/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_exec_schedule@out-order-bsd2:
    - shard-iclb:         [SKIP][39] ([fdo#109276]) -> [PASS][40] +23 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb8/igt@gem_exec_schedule@out-order-bsd2.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb4/igt@gem_exec_schedule@out-order-bsd2.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [SKIP][41] ([fdo#111325]) -> [PASS][42] +4 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb1/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb8/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_request_retire@retire-vma-not-inactive:
    - shard-hsw:          [INCOMPLETE][43] ([fdo#103540]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-hsw4/igt@gem_request_retire@retire-vma-not-inactive.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-hsw5/igt@gem_request_retire@retire-vma-not-inactive.html

  * igt@gem_softpin@noreloc-s3:
    - shard-skl:          [INCOMPLETE][45] ([fdo#104108] / [fdo#107773]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl6/igt@gem_softpin@noreloc-s3.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl6/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-skl:          [DMESG-WARN][47] ([fdo#111870]) -> [PASS][48] +1 similar issue
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl4/igt@gem_userptr_blits@dmabuf-unsync.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl1/igt@gem_userptr_blits@dmabuf-unsync.html
    - shard-kbl:          [DMESG-WARN][49] ([fdo#111870]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-kbl3/igt@gem_userptr_blits@dmabuf-unsync.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-kbl4/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-snb:          [DMESG-WARN][51] ([fdo#110789] / [fdo#111870]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-snb7/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-snb4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
    - shard-glk:          [DMESG-WARN][53] ([fdo#111870]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-glk5/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-glk7/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-apl:          [DMESG-WARN][55] ([fdo#109385] / [fdo#111870]) -> [PASS][56] +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-apl6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-apl7/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-hsw:          [DMESG-WARN][57] ([fdo#111870]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-hsw1/igt@gem_userptr_blits@sync-unmap.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-hsw1/igt@gem_userptr_blits@sync-unmap.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [DMESG-WARN][59] ([fdo#111870]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-snb1/igt@gem_userptr_blits@sync-unmap-cycles.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-snb1/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-apl:          [DMESG-WARN][61] ([fdo#108566]) -> [PASS][62] +3 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-apl4/igt@i915_suspend@fence-restore-tiled2untiled.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-apl3/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_flip@2x-dpms-vs-vblank-race-interruptible:
    - shard-hsw:          [DMESG-FAIL][63] ([fdo#102614]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-hsw5/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-hsw6/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-skl:          [FAIL][65] ([fdo#105363]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl7/igt@kms_flip@flip-vs-expired-vblank.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl9/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_flip@plain-flip-fb-recreate:
    - shard-skl:          [FAIL][67] ([fdo#100368]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl2/igt@kms_flip@plain-flip-fb-recreate.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl5/igt@kms_flip@plain-flip-fb-recreate.html

  * igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
    - shard-iclb:         [FAIL][69] ([fdo#103167]) -> [PASS][70] +7 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-gtt:
    - shard-skl:          [FAIL][71] ([fdo#103167]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl8/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-gtt.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl10/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-skl:          [FAIL][73] ([fdo#108145]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl10/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [FAIL][75] ([fdo#108145] / [fdo#110403]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-skl9/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [SKIP][77] ([fdo#109441]) -> [PASS][78] +1 similar issue
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb6/igt@kms_psr@psr2_cursor_blt.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_setmode@basic:
    - shard-glk:          [FAIL][79] ([fdo#99912]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-glk3/igt@kms_setmode@basic.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-glk3/igt@kms_setmode@basic.html
    - shard-kbl:          [FAIL][81] ([fdo#99912]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-kbl6/igt@kms_setmode@basic.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-kbl4/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [INCOMPLETE][83] ([fdo#103665]) -> [PASS][84] +1 similar issue
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-kbl6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  
#### Warnings ####

  * igt@gem_mocs_settings@mocs-isolation-bsd2:
    - shard-iclb:         [SKIP][85] ([fdo#109276]) -> [FAIL][86] ([fdo#111330])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb7/igt@gem_mocs_settings@mocs-isolation-bsd2.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb1/igt@gem_mocs_settings@mocs-isolation-bsd2.html

  * igt@gem_mocs_settings@mocs-reset-bsd2:
    - shard-iclb:         [FAIL][87] ([fdo#111330]) -> [SKIP][88] ([fdo#109276]) +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-iclb4/igt@gem_mocs_settings@mocs-reset-bsd2.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-iclb5/igt@gem_mocs_settings@mocs-reset-bsd2.html

  * igt@kms_flip@2x-flip-vs-panning-interruptible:
    - shard-kbl:          [SKIP][89] ([fdo#109271]) -> [INCOMPLETE][90] ([fdo#103665])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6986/shard-kbl3/igt@kms_flip@2x-flip-vs-panning-interruptible.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14618/shard-kbl7/igt@kms_flip@2x-flip-vs-panning-interruptible.html

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

  [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109385]: https://bugs.freedesktop.org/show_bug.cgi?id=109385
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#111546]: https://bugs.freedesktop.org/show_bug.cgi?id=111546
  [fdo#111781]: https://bugs.freedesktop.org/show_bug.cgi?id=111781
  [fdo#111800]: https://bugs.freedesktop.org/show_bug.cgi?id=111800
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (16 -> 10)
------------------------------

  Missing    (6): shard-tglb1 shard-tglb2 shard-tglb3 shard-tglb4 shard-tglb5 shard-tglb6 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6986 -> Patchwork_14618

  CI-20190529: 20190529
  CI_DRM_6986: 9300459553e8c1032f10ec1953e1a375a99aba13 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5208: c0131b4f132acf287d9d05b0f5078003d3159e1c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14618: 971c66ff56ceb82389ee13876716ab9e41cd7252 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab841

== Logs ==

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

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

* Re: [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
                   ` (7 preceding siblings ...)
  2019-10-02  8:38 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2019-10-05 10:10 ` Andi Shyti
  2019-10-05 10:20   ` Chris Wilson
  2019-10-08 15:21 ` Summers, Stuart
  9 siblings, 1 reply; 15+ messages in thread
From: Andi Shyti @ 2019-10-05 10:10 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

Hi Chris,

On Tue, Oct 01, 2019 at 02:54:02PM +0100, Chris Wilson wrote:
> Allow the user to restrict the available set of engines via a module
> parameter.

what is the driving reason for wanting this? Could you explain it
in the commit log?

It feels a bit confusing, though. You are actually making a
difference between engines we don't have and engines we don't
want, and I don't see why.

Wouldn't it make sense to either

 - define a new architecture (which could make things more
   confusing).

or

 - have it specified in kernel configuration

> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Stuart Summers <stuart.summers@intel.com>
> Cc: Andi Shyti <andi.shyti@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Martin Peres <martin.peres@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 35 ++++++++++++++++-------
>  drivers/gpu/drm/i915/i915_gem.c           |  5 ++++
>  drivers/gpu/drm/i915/i915_params.c        |  4 +++
>  drivers/gpu/drm/i915/i915_params.h        |  1 +
>  4 files changed, 35 insertions(+), 10 deletions(-)

Because this is a module option that is set by the user, I don't
see any documentation about it.

> +static bool engine_available(struct drm_i915_private *i915, int id)
> +{
> +	/* uAPI -- modparam bits must be consistent between kernels */
> +	static const unsigned int param_bit[] = {
> +		[RCS0]  = BIT(0),
> +		[VCS0]  = BIT(1),
> +		[BCS0]  = BIT(2),
> +		[VECS0] = BIT(3),
> +		[VCS1]  = BIT(4),
> +		[VCS2]  = BIT(5),
> +		[VCS3]  = BIT(6),
> +		[VECS1] = BIT(7),
> +	};

Yet another way to refer to engines... this time inside a static
function, without any visibility outside.

Andi

> +
> +	if (!HAS_ENGINE(i915, id))
> +		return false;

(engines we don't have...

> +	if (!(i915_modparams.engines & param_bit[id]))
> +		return false;

... engines we don't want)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
  2019-10-05 10:10 ` [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Andi Shyti
@ 2019-10-05 10:20   ` Chris Wilson
  0 siblings, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2019-10-05 10:20 UTC (permalink / raw)
  To: Andi Shyti; +Cc: intel-gfx

Quoting Andi Shyti (2019-10-05 11:10:45)
> Hi Chris,
> 
> On Tue, Oct 01, 2019 at 02:54:02PM +0100, Chris Wilson wrote:
> > Allow the user to restrict the available set of engines via a module
> > parameter.
> 
> what is the driving reason for wanting this? Could you explain it
> in the commit log?

It's to allow the user to restrict the available set of engines, for
whatever reason they may have, presumably because they want to work
around some HW stability (or if that is the case to enable some HW
despite instability, since we should err on the side of caution).

> It feels a bit confusing, though. You are actually making a
> difference between engines we don't have and engines we don't
> want, and I don't see why.
> 
> Wouldn't it make sense to either
> 
>  - define a new architecture (which could make things more
>    confusing).

No, it's an optional overlay of an existing under the whim of the user.
 
> or
> 
>  - have it specified in kernel configuration

Is how we configure the defaults in reduced configurations.
 
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Stuart Summers <stuart.summers@intel.com>
> > Cc: Andi Shyti <andi.shyti@intel.com>
> > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > Cc: Martin Peres <martin.peres@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 35 ++++++++++++++++-------
> >  drivers/gpu/drm/i915/i915_gem.c           |  5 ++++
> >  drivers/gpu/drm/i915/i915_params.c        |  4 +++
> >  drivers/gpu/drm/i915/i915_params.h        |  1 +
> >  4 files changed, 35 insertions(+), 10 deletions(-)
> 
> Because this is a module option that is set by the user, I don't
> see any documentation about it.

It's in i915_params.c

> > +static bool engine_available(struct drm_i915_private *i915, int id)
> > +{
> > +     /* uAPI -- modparam bits must be consistent between kernels */
> > +     static const unsigned int param_bit[] = {
> > +             [RCS0]  = BIT(0),
> > +             [VCS0]  = BIT(1),
> > +             [BCS0]  = BIT(2),
> > +             [VECS0] = BIT(3),
> > +             [VCS1]  = BIT(4),
> > +             [VCS2]  = BIT(5),
> > +             [VCS3]  = BIT(6),
> > +             [VECS1] = BIT(7),
> > +     };
> 
> Yet another way to refer to engines... this time inside a static
> function, without any visibility outside.

Sure. It's a static mapping table that has to stable for generations to
come because it is described in i915_params as part of the i915.engines
contract.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 2/2] drm/i915/tgl: Restrict availables engines to rcs0 by default
  2019-10-01 13:54 ` [PATCH 2/2] drm/i915/tgl: Restrict availables engines to rcs0 by default Chris Wilson
@ 2019-10-08 15:17   ` Summers, Stuart
  0 siblings, 0 replies; 15+ messages in thread
From: Summers, Stuart @ 2019-10-08 15:17 UTC (permalink / raw)
  To: intel-gfx@lists.freedesktop.org, chris@chris-wilson.co.uk


[-- Attachment #1.1: Type: text/plain, Size: 1552 bytes --]

On Tue, 2019-10-01 at 14:54 +0100, Chris Wilson wrote:
> CI is still unstable whenever we enable more than one engine, and we
> have not yet found a better hack than restricting it to using just
> rcs0.
> 
> However, to allow testing to continue on the other engines by
> developers, we allow the available set of engines to be overridden on
> the command line with just the default set limited to [rcs0].
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Andi Shyti <andi.shyti@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> index 690da64ec256..9c8c7c8af394 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> @@ -406,6 +406,10 @@ static bool engine_available(struct
> drm_i915_private *i915, int id)
>  	if (!HAS_ENGINE(i915, id))
>  		return false;
>  
> +	/* XXX reduced by default for CI stability XXX */
> +	if (IS_TIGERLAKE(i915) && i915_modparams.engines == -1u)
> +		return id == RCS0;
> +

So I'm not completely against this, and I generally (from a debug
perspective) like the idea of being able to tweak this kind of thing.
But given our CI, is this really needed on top of just reducing the
engines in i915_pci.c?

Thanks,
Stuart

>  	if (!(i915_modparams.engines & param_bit[id]))
>  		return false;
>  

[-- Attachment #1.2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 3270 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

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

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

* Re: [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
  2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
                   ` (8 preceding siblings ...)
  2019-10-05 10:10 ` [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Andi Shyti
@ 2019-10-08 15:21 ` Summers, Stuart
  9 siblings, 0 replies; 15+ messages in thread
From: Summers, Stuart @ 2019-10-08 15:21 UTC (permalink / raw)
  To: intel-gfx@lists.freedesktop.org, chris@chris-wilson.co.uk


[-- Attachment #1.1: Type: text/plain, Size: 5837 bytes --]

On Tue, 2019-10-01 at 14:54 +0100, Chris Wilson wrote:
> Allow the user to restrict the available set of engines via a module
> parameter.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Stuart Summers <stuart.summers@intel.com>
> Cc: Andi Shyti <andi.shyti@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Martin Peres <martin.peres@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 35 ++++++++++++++++-----
> --
>  drivers/gpu/drm/i915/i915_gem.c           |  5 ++++
>  drivers/gpu/drm/i915/i915_params.c        |  4 +++
>  drivers/gpu/drm/i915/i915_params.h        |  1 +
>  4 files changed, 35 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> index 80fd072ac719..690da64ec256 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> @@ -389,6 +389,29 @@ void intel_engines_cleanup(struct
> drm_i915_private *i915)
>  	}
>  }
>  
> +static bool engine_available(struct drm_i915_private *i915, int id)
> +{
> +	/* uAPI -- modparam bits must be consistent between kernels */
> +	static const unsigned int param_bit[] = {
> +		[RCS0]  = BIT(0),
> +		[VCS0]  = BIT(1),
> +		[BCS0]  = BIT(2),
> +		[VECS0] = BIT(3),
> +		[VCS1]  = BIT(4),
> +		[VCS2]  = BIT(5),
> +		[VCS3]  = BIT(6),
> +		[VECS1] = BIT(7),
> +	};

To be a little controversial here... I don't see how this is better
than just matching to our currently available engines for the platform.
The user will still need to look in the code to determine what engines
are available. I understand this restricts us to a static module
parameter across kernel revisions, but at the same time, this will add
a maintenance burden for an unsafe feature, something not used
regularly. And it seems like this will be easy to get stale over time.

> +
> +	if (!HAS_ENGINE(i915, id))
> +		return false;
> +
> +	if (!(i915_modparams.engines & param_bit[id]))
> +		return false;
> +
> +	return true;
> +}
> +
>  /**
>   * intel_engines_init_mmio() - allocate and prepare the Engine
> Command Streamers
>   * @i915: the i915 device
> @@ -397,7 +420,6 @@ void intel_engines_cleanup(struct
> drm_i915_private *i915)
>   */
>  int intel_engines_init_mmio(struct drm_i915_private *i915)
>  {
> -	struct intel_device_info *device_info =
> mkwrite_device_info(i915);
>  	const unsigned int engine_mask = INTEL_INFO(i915)->engine_mask;
>  	unsigned int mask = 0;
>  	unsigned int i;
> @@ -411,7 +433,7 @@ int intel_engines_init_mmio(struct
> drm_i915_private *i915)
>  		return -ENODEV;
>  
>  	for (i = 0; i < ARRAY_SIZE(intel_engines); i++) {
> -		if (!HAS_ENGINE(i915, i))
> +		if (!engine_available(i915, i))
>  			continue;
>  
>  		err = intel_engine_setup(&i915->gt, i);
> @@ -421,14 +443,7 @@ int intel_engines_init_mmio(struct
> drm_i915_private *i915)
>  		mask |= BIT(i);
>  	}
>  
> -	/*
> -	 * Catch failures to update intel_engines table when the new
> engines
> -	 * are added to the driver by a warning and disabling the
> forgotten
> -	 * engines.
> -	 */
> -	if (WARN_ON(mask != engine_mask))
> -		device_info->engine_mask = mask;
> -
> +	mkwrite_device_info(i915)->engine_mask = mask;
>  	RUNTIME_INFO(i915)->num_engines = hweight32(mask);
>  
>  	intel_gt_check_and_clear_faults(&i915->gt);
> diff --git a/drivers/gpu/drm/i915/i915_gem.c
> b/drivers/gpu/drm/i915/i915_gem.c
> index 3d3fda4cae99..bb25731466a9 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1308,6 +1308,11 @@ int i915_gem_init(struct drm_i915_private
> *dev_priv)
>  {
>  	int ret;
>  
> +	if (!RUNTIME_INFO(dev_priv)->num_engines) {
> +		intel_gt_set_wedged_on_init(&dev_priv->gt);
> +		return 0;
> +	}

Wait, why do we want to force a wedge if no engines are present? This
seems like an intentional limitation if we get to this point, so it
doesn't seem necessary to me to force this.

> +
>  	/* We need to fallback to 4K pages if host doesn't support huge
> gtt. */
>  	if (intel_vgpu_active(dev_priv) &&
> !intel_vgpu_has_huge_gtt(dev_priv))
>  		mkwrite_device_info(dev_priv)->page_sizes =
> diff --git a/drivers/gpu/drm/i915/i915_params.c
> b/drivers/gpu/drm/i915/i915_params.c
> index 296452f9efe4..27813bd79aa8 100644
> --- a/drivers/gpu/drm/i915/i915_params.c
> +++ b/drivers/gpu/drm/i915/i915_params.c
> @@ -44,6 +44,10 @@ i915_param_named(modeset, int, 0400,
>  	"Use kernel modesetting [KMS] (0=disable, "
>  	"1=on, -1=force vga console preference [default])");
>  
> +i915_param_named(engines, uint, 0400,
> +	"Only expose selected command streamers [GPU engines]
> (0=disable GPU, "
> +	"-1/0xffffffff enable all [default]). Each bit corresponds to a
> different phyiscal engine: 0=RCS0, 1=VCS0, 2=BCS0, 3=VECS0, 4=VCS1,
> 5=VCS2, 6=VCS3, 7=VECS1");

Shouldn't this be unsafe?

Thanks,
Stuart

> +
>  i915_param_named_unsafe(enable_dc, int, 0400,
>  	"Enable power-saving display C-states. "
>  	"(-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6)");
> diff --git a/drivers/gpu/drm/i915/i915_params.h
> b/drivers/gpu/drm/i915/i915_params.h
> index d29ade3b7de6..f876db78a59a 100644
> --- a/drivers/gpu/drm/i915/i915_params.h
> +++ b/drivers/gpu/drm/i915/i915_params.h
> @@ -45,6 +45,7 @@ struct drm_printer;
>  #define I915_PARAMS_FOR_EACH(param) \
>  	param(char *, vbt_firmware, NULL) \
>  	param(int, modeset, -1) \
> +	param(unsigned int, engines, -1) \
>  	param(int, lvds_channel_mode, 0) \
>  	param(int, panel_use_ssc, -1) \
>  	param(int, vbt_sdvo_panel_type, -1) \

[-- Attachment #1.2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 3270 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

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

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

end of thread, other threads:[~2019-10-08 15:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-01 13:54 [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Chris Wilson
2019-10-01 13:54 ` [PATCH 2/2] drm/i915/tgl: Restrict availables engines to rcs0 by default Chris Wilson
2019-10-08 15:17   ` Summers, Stuart
2019-10-01 16:36 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines Patchwork
2019-10-01 16:59 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-10-01 17:48 ` [PATCH 1/2] " kbuild test robot
2019-10-01 17:48   ` [Intel-gfx] " kbuild test robot
2019-10-01 18:21 ` kbuild test robot
2019-10-01 18:21   ` [Intel-gfx] " kbuild test robot
2019-10-01 21:54 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Use a modparam to restrict exposed engines (rev2) Patchwork
2019-10-01 22:20 ` ✓ Fi.CI.BAT: success " Patchwork
2019-10-02  8:38 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-10-05 10:10 ` [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines Andi Shyti
2019-10-05 10:20   ` Chris Wilson
2019-10-08 15:21 ` Summers, Stuart

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.