All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN
@ 2019-08-29 12:17 Chris Wilson
  2019-08-29 13:03 ` ✗ Fi.CI.BAT: failure for " Patchwork
  2019-08-29 22:19 ` [PATCH] " Rodrigo Vivi
  0 siblings, 2 replies; 3+ messages in thread
From: Chris Wilson @ 2019-08-29 12:17 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula, Daniel Vetter, Dave Airlie

We would like some freedom to break the user API/ABI for future HW but
yet still expose the driver for upstream development on that HW.
Currently, we have the i915.force_probe module parameter to avoid binding
to HW while the driver is under development, but that is still a little
too soft with respect to the stringent no-regression rules if we also
plan to be redesigning the uAPI to go along with the new HW.

To allow the uAPI to be changed during development, only expose that API
and in development HW under STAGING (and BROKEN). Hopefully, making it
explicit that such interfaces to that HW are under development and not
to be blindly enabled by distributions.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/i915/Kconfig.debug       | 15 +++++++++++++++
 drivers/gpu/drm/i915/i915_gem.c          | 10 ++++++++++
 drivers/gpu/drm/i915/intel_device_info.h |  1 +
 3 files changed, 26 insertions(+)

diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
index 00786a142ff0..7707d1230b85 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -36,6 +36,9 @@ config DRM_I915_DEBUG
 	select DRM_I915_SELFTEST
 	select DRM_I915_DEBUG_RUNTIME_PM
 	select DRM_I915_DEBUG_MMIO
+	select STAGING
+	select BROKEN
+	select DRM_I915_DEBUG_EARLY_API
         default n
         help
           Choose this option to turn on extra driver debugging that may affect
@@ -212,3 +215,15 @@ config DRM_I915_DEBUG_RUNTIME_PM
 	  driver loading, suspend and resume operations.
 
 	  If in doubt, say "N"
+
+config DRM_I915_DEBUG_EARLY_API
+	bool "Expose new HW uAPIs for early testing"
+	depends on DRM_I915
+	depends on STAGING
+	depends on BROKEN
+	default n
+	help
+	  Expose in-development uAPI for early testing on HW. Such uAPI
+	  will likely subtly change before release and must not be relied upon.
+
+	  If in doubt, say "N"
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index bb39c64a0a17..eab2219d7a50 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1344,6 +1344,15 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 {
 	int ret;
 
+	if (INTEL_INFO(dev_priv)->early_render_uapi) {
+		if (!IS_ENABLED(CONFIG_DRM_I915_DEBUG_EARLY_API)) {
+			ret = -EIO;
+			goto err_disable;
+		}
+
+		add_taint(TAINT_USER, LOCKDEP_STILL_OK);
+	}
+
 	/* 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 =
@@ -1476,6 +1485,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 		intel_timelines_fini(dev_priv);
 	}
 
+err_disable:
 	if (ret == -EIO) {
 		/*
 		 * Allow engines or uC initialisation to fail by marking the GPU
diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
index 92e0c2e0954c..5931f619e66b 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -107,6 +107,7 @@ enum intel_ppgtt_type {
 	func(is_mobile); \
 	func(is_lp); \
 	func(require_force_probe); \
+	func(early_render_uapi); \
 	/* Keep has_* in alphabetical order */ \
 	func(has_64bit_reloc); \
 	func(gpu_reset_clobbers_display); \
-- 
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] 3+ messages in thread

* ✗ Fi.CI.BAT: failure for RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN
  2019-08-29 12:17 [PATCH] RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN Chris Wilson
@ 2019-08-29 13:03 ` Patchwork
  2019-08-29 22:19 ` [PATCH] " Rodrigo Vivi
  1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2019-08-29 13:03 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN
URL   : https://patchwork.freedesktop.org/series/65987/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6801 -> Patchwork_14223
====================================================

Summary
-------

  **FAILURE**

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-icl-u2:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@kms_chamelium@hdmi-edid-read.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@kms_chamelium@hdmi-edid-read.html

  
#### Warnings ####

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-icl-u2:          [DMESG-WARN][3] ([fdo#102505] / [fdo#110390]) -> [FAIL][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-icl-u2:          [FAIL][5] ([fdo#111407]) -> [FAIL][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_chamelium@vga-hpd-fast:
    - fi-icl-u2:          [SKIP][7] ([fdo#109309]) -> [FAIL][8] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@kms_chamelium@vga-hpd-fast.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@kms_chamelium@vga-hpd-fast.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_gem_contexts:
    - fi-skl-iommu:       [PASS][9] -> [INCOMPLETE][10] ([fdo#111519])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-skl-iommu/igt@i915_selftest@live_gem_contexts.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-skl-iommu/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@dp-edid-read:
    - fi-kbl-7500u:       [PASS][11] -> [FAIL][12] ([fdo#109483] / [fdo#109635 ])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html
    - fi-icl-u2:          [PASS][13] -> [FAIL][14] ([fdo#109635 ]) +2 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@kms_chamelium@dp-edid-read.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@kms_chamelium@dp-edid-read.html

  
#### Possible fixes ####

  * igt@gem_ctx_create@basic-files:
    - {fi-icl-guc}:       [INCOMPLETE][15] ([fdo#107713] / [fdo#109100]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-guc/igt@gem_ctx_create@basic-files.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-guc/igt@gem_ctx_create@basic-files.html

  * igt@i915_module_load@reload:
    - fi-icl-u2:          [DMESG-WARN][17] ([fdo#110595] / [fdo#111214]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@i915_module_load@reload.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@i915_module_load@reload.html

  * igt@i915_module_load@reload-with-fault-injection:
    - fi-icl-u2:          [DMESG-WARN][19] ([fdo#110595]) -> [PASS][20] +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@i915_module_load@reload-with-fault-injection.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_selftest@live_execlists:
    - fi-skl-gvtdvm:      [DMESG-FAIL][21] ([fdo#111108]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-kbl-guc:         [INCOMPLETE][23] ([fdo#111519]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-kbl-guc/igt@i915_selftest@live_gem_contexts.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-kbl-guc/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_frontbuffer_tracking@basic:
    - {fi-icl-u4}:        [FAIL][25] ([fdo#103167]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u4/igt@kms_frontbuffer_tracking@basic.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u4/igt@kms_frontbuffer_tracking@basic.html
    - fi-hsw-peppy:       [DMESG-WARN][27] ([fdo#102614]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
    - fi-icl-u2:          [FAIL][29] ([fdo#103167]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  
#### Warnings ####

  * igt@kms_chamelium@dp-hpd-fast:
    - fi-icl-u2:          [FAIL][31] ([fdo#111407]) -> [FAIL][32] ([fdo#109635 ])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6801/fi-icl-u2/igt@kms_chamelium@dp-hpd-fast.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14223/fi-icl-u2/igt@kms_chamelium@dp-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#102505]: https://bugs.freedesktop.org/show_bug.cgi?id=102505
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
  [fdo#109635 ]: https://bugs.freedesktop.org/show_bug.cgi?id=109635 
  [fdo#110390]: https://bugs.freedesktop.org/show_bug.cgi?id=110390
  [fdo#110595]: https://bugs.freedesktop.org/show_bug.cgi?id=110595
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#111519]: https://bugs.freedesktop.org/show_bug.cgi?id=111519


Participating hosts (52 -> 44)
------------------------------

  Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-tgl-u fi-hsw-4200u fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6801 -> Patchwork_14223

  CI-20190529: 20190529
  CI_DRM_6801: 244c5c8116c0042d61455697a9d85e899e2d9267 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5153: 32ffe5304957d585d41c2f14cc5190d4588ccc41 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14223: 31434356cd98d201fe7e29bfe9b955dc8d9851f1 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

31434356cd98 RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN

== Logs ==

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

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

* Re: [PATCH] RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN
  2019-08-29 12:17 [PATCH] RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN Chris Wilson
  2019-08-29 13:03 ` ✗ Fi.CI.BAT: failure for " Patchwork
@ 2019-08-29 22:19 ` Rodrigo Vivi
  1 sibling, 0 replies; 3+ messages in thread
From: Rodrigo Vivi @ 2019-08-29 22:19 UTC (permalink / raw)
  To: Chris Wilson; +Cc: Jani Nikula, Daniel Vetter, intel-gfx, Dave Airlie

On Thu, Aug 29, 2019 at 01:17:22PM +0100, Chris Wilson wrote:
> We would like some freedom to break the user API/ABI for future HW but
> yet still expose the driver for upstream development on that HW.
> Currently, we have the i915.force_probe module parameter to avoid binding
> to HW while the driver is under development, but that is still a little
> too soft with respect to the stringent no-regression rules if we also
> plan to be redesigning the uAPI to go along with the new HW.
> 
> To allow the uAPI to be changed during development, only expose that API
> and in development HW under STAGING (and BROKEN). Hopefully, making it
> explicit that such interfaces to that HW are under development and not
> to be blindly enabled by distributions.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Dave Airlie <airlied@redhat.com>
> ---
>  drivers/gpu/drm/i915/Kconfig.debug       | 15 +++++++++++++++
>  drivers/gpu/drm/i915/i915_gem.c          | 10 ++++++++++
>  drivers/gpu/drm/i915/intel_device_info.h |  1 +
>  3 files changed, 26 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
> index 00786a142ff0..7707d1230b85 100644
> --- a/drivers/gpu/drm/i915/Kconfig.debug
> +++ b/drivers/gpu/drm/i915/Kconfig.debug
> @@ -36,6 +36,9 @@ config DRM_I915_DEBUG
>  	select DRM_I915_SELFTEST
>  	select DRM_I915_DEBUG_RUNTIME_PM
>  	select DRM_I915_DEBUG_MMIO
> +	select STAGING
> +	select BROKEN
> +	select DRM_I915_DEBUG_EARLY_API

I'm not sure about forcing this all all debug.

>          default n
>          help
>            Choose this option to turn on extra driver debugging that may affect
> @@ -212,3 +215,15 @@ config DRM_I915_DEBUG_RUNTIME_PM
>  	  driver loading, suspend and resume operations.
>  
>  	  If in doubt, say "N"
> +
> +config DRM_I915_DEBUG_EARLY_API
> +	bool "Expose new HW uAPIs for early testing"
> +	depends on DRM_I915
> +	depends on STAGING
> +	depends on BROKEN

instead why not
select STAGING
select BROKEN
depends on DRM_I915_DEBUG

?

> +	default n
> +	help
> +	  Expose in-development uAPI for early testing on HW. Such uAPI
> +	  will likely subtly change before release and must not be relied upon.
> +
> +	  If in doubt, say "N"
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index bb39c64a0a17..eab2219d7a50 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1344,6 +1344,15 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
>  {
>  	int ret;
>  
> +	if (INTEL_INFO(dev_priv)->early_render_uapi) {
> +		if (!IS_ENABLED(CONFIG_DRM_I915_DEBUG_EARLY_API)) {
> +			ret = -EIO;
> +			goto err_disable;
> +		}
> +
> +		add_taint(TAINT_USER, LOCKDEP_STILL_OK);
> +	}
> +
>  	/* 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 =
> @@ -1476,6 +1485,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
>  		intel_timelines_fini(dev_priv);
>  	}
>  
> +err_disable:
>  	if (ret == -EIO) {
>  		/*
>  		 * Allow engines or uC initialisation to fail by marking the GPU
> diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
> index 92e0c2e0954c..5931f619e66b 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.h
> +++ b/drivers/gpu/drm/i915/intel_device_info.h
> @@ -107,6 +107,7 @@ enum intel_ppgtt_type {
>  	func(is_mobile); \
>  	func(is_lp); \
>  	func(require_force_probe); \
> +	func(early_render_uapi); \
>  	/* Keep has_* in alphabetical order */ \
>  	func(has_64bit_reloc); \
>  	func(gpu_reset_clobbers_display); \
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-29 12:17 [PATCH] RFC drm/i915: Put future HW and their uAPIs under STAGING & BROKEN Chris Wilson
2019-08-29 13:03 ` ✗ Fi.CI.BAT: failure for " Patchwork
2019-08-29 22:19 ` [PATCH] " Rodrigo Vivi

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.