All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org, kbuild-all@01.org
Subject: Re: [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
Date: Wed, 2 Oct 2019 01:48:47 +0800	[thread overview]
Message-ID: <201910020120.IyF8H8yo%lkp@intel.com> (raw)
In-Reply-To: <20191001135403.2026-1-chris@chris-wilson.co.uk>

[-- 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

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [Intel-gfx] [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines
Date: Wed, 02 Oct 2019 01:48:47 +0800	[thread overview]
Message-ID: <201910020120.IyF8H8yo%lkp@intel.com> (raw)
In-Reply-To: <20191001135403.2026-1-chris@chris-wilson.co.uk>

[-- 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 --]

  parent reply	other threads:[~2019-10-01 17:49 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 ` kbuild test robot [this message]
2019-10-01 17:48   ` [Intel-gfx] [PATCH 1/2] " 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201910020120.IyF8H8yo%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=kbuild-all@01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.