diff mbox series

[02/11] drm/i915: Put future HW and their uAPIs under STAGING & BROKEN

Message ID 20191024114028.6170-3-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series [01/11] drm/i915/gem: Make context persistence optional | expand

Commit Message

Chris Wilson Oct. 24, 2019, 11:40 a.m. UTC
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          |  8 ++++++++
 drivers/gpu/drm/i915/Kconfig.debug    |  1 +
 drivers/gpu/drm/i915/Kconfig.unstable | 20 ++++++++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 100644 drivers/gpu/drm/i915/Kconfig.unstable

Comments

David Airlie Oct. 24, 2019, 11:25 p.m. UTC | #1
Acked-by: Dave Airlie <airlied@redhat.com>

On Thu, Oct 24, 2019 at 9:40 PM Chris Wilson <chris@chris-wilson.co.uk> 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          |  8 ++++++++
>  drivers/gpu/drm/i915/Kconfig.debug    |  1 +
>  drivers/gpu/drm/i915/Kconfig.unstable | 20 ++++++++++++++++++++
>  3 files changed, 29 insertions(+)
>  create mode 100644 drivers/gpu/drm/i915/Kconfig.unstable
>
> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
> index 3c6d57df262d..1fd9e665b742 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -148,3 +148,11 @@ menu "drm/i915 Profile Guided Optimisation"
>         depends on DRM_I915
>         source "drivers/gpu/drm/i915/Kconfig.profile"
>  endmenu
> +
> +menu "drm/i915 Ustable Evolution"
> +       visible if EXPERT
> +       visible if STAGING
> +       visible if BROKEN
> +       depends on DRM_I915
> +       source "drivers/gpu/drm/i915/Kconfig.unstable"
> +endmenu
> diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
> index d2ba8f7e5e50..ef123eb29168 100644
> --- a/drivers/gpu/drm/i915/Kconfig.debug
> +++ b/drivers/gpu/drm/i915/Kconfig.debug
> @@ -44,6 +44,7 @@ config DRM_I915_DEBUG
>         select DRM_I915_SELFTEST
>         select DRM_I915_DEBUG_RUNTIME_PM
>         select DRM_I915_DEBUG_MMIO
> +       select BROKEN # for prototype uAPI
>         default n
>         help
>           Choose this option to turn on extra driver debugging that may affect
> diff --git a/drivers/gpu/drm/i915/Kconfig.unstable b/drivers/gpu/drm/i915/Kconfig.unstable
> new file mode 100644
> index 000000000000..ecc8458b5a32
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/Kconfig.unstable
> @@ -0,0 +1,20 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +config DRM_I915_UNSTABLE
> +       bool "Enable unstable API for early prototype development"
> +       depends on EXPERT
> +       depends on STAGING
> +       depends on BROKEN # should never be enabled by distros!
> +       # We use the dependency on !COMPILE_TEST to not be enabled in
> +       # allmodconfig or allyesconfig configurations
> +       depends on !COMPILE_TEST
> +       default n
> +       help
> +         Enable prototype uAPI under general discussion before they are
> +         finalized. Such prototypes may be withdrawn or substantially
> +         changed before release. They are only enabled here so that a wide
> +         number of interested parties (userspace driver developers) can
> +         verify that the uAPI meet their expectations.
> +
> +         Recommended for driver developers _only_.
> +
> +         If in the slightest bit of doubt, say "N".
> --
> 2.24.0.rc0
>
Rodrigo Vivi Oct. 24, 2019, 11:35 p.m. UTC | #2
On Thu, Oct 24, 2019 at 12:40:19PM +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>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/Kconfig          |  8 ++++++++
>  drivers/gpu/drm/i915/Kconfig.debug    |  1 +
>  drivers/gpu/drm/i915/Kconfig.unstable | 20 ++++++++++++++++++++
>  3 files changed, 29 insertions(+)
>  create mode 100644 drivers/gpu/drm/i915/Kconfig.unstable
> 
> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
> index 3c6d57df262d..1fd9e665b742 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -148,3 +148,11 @@ menu "drm/i915 Profile Guided Optimisation"
>  	depends on DRM_I915
>  	source "drivers/gpu/drm/i915/Kconfig.profile"
>  endmenu
> +
> +menu "drm/i915 Ustable Evolution"
> +	visible if EXPERT
> +	visible if STAGING
> +	visible if BROKEN
> +	depends on DRM_I915
> +	source "drivers/gpu/drm/i915/Kconfig.unstable"
> +endmenu
> diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
> index d2ba8f7e5e50..ef123eb29168 100644
> --- a/drivers/gpu/drm/i915/Kconfig.debug
> +++ b/drivers/gpu/drm/i915/Kconfig.debug
> @@ -44,6 +44,7 @@ config DRM_I915_DEBUG
>  	select DRM_I915_SELFTEST
>  	select DRM_I915_DEBUG_RUNTIME_PM
>  	select DRM_I915_DEBUG_MMIO
> +	select BROKEN # for prototype uAPI
>  	default n
>  	help
>  	  Choose this option to turn on extra driver debugging that may affect
> diff --git a/drivers/gpu/drm/i915/Kconfig.unstable b/drivers/gpu/drm/i915/Kconfig.unstable
> new file mode 100644
> index 000000000000..ecc8458b5a32
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/Kconfig.unstable
> @@ -0,0 +1,20 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +config DRM_I915_UNSTABLE
> +	bool "Enable unstable API for early prototype development"
> +	depends on EXPERT
> +	depends on STAGING
> +	depends on BROKEN # should never be enabled by distros!
> +	# We use the dependency on !COMPILE_TEST to not be enabled in
> +	# allmodconfig or allyesconfig configurations
> +	depends on !COMPILE_TEST
> +	default n
> +	help
> +	  Enable prototype uAPI under general discussion before they are
> +	  finalized. Such prototypes may be withdrawn or substantially
> +	  changed before release. They are only enabled here so that a wide
> +	  number of interested parties (userspace driver developers) can
> +	  verify that the uAPI meet their expectations.
> +
> +	  Recommended for driver developers _only_.
> +
> +	  If in the slightest bit of doubt, say "N".
> -- 
> 2.24.0.rc0
>
Jani Nikula Oct. 25, 2019, 7:09 a.m. UTC | #3
On Thu, 24 Oct 2019, Chris Wilson <chris@chris-wilson.co.uk> 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          |  8 ++++++++
>  drivers/gpu/drm/i915/Kconfig.debug    |  1 +
>  drivers/gpu/drm/i915/Kconfig.unstable | 20 ++++++++++++++++++++
>  3 files changed, 29 insertions(+)
>  create mode 100644 drivers/gpu/drm/i915/Kconfig.unstable
>
> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
> index 3c6d57df262d..1fd9e665b742 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -148,3 +148,11 @@ menu "drm/i915 Profile Guided Optimisation"
>  	depends on DRM_I915
>  	source "drivers/gpu/drm/i915/Kconfig.profile"
>  endmenu
> +
> +menu "drm/i915 Ustable Evolution"
> +	visible if EXPERT
> +	visible if STAGING
> +	visible if BROKEN

The kconfig docs fail to mention whether multiple "visible if"
statements are combined with OR or AND. The kernel tree lacks any prior
art.

How about

	visible if EXPERT && STAGING && BROKEN

which should be fine and apparently matches your intent?

No biggie though, it's the actually config option that matters.

FWIW, this is

Acked-by: Jani Nikula <jani.nikula@intel.com>

though it's Dave's ack that really matters here.

BR,
Jani.


> +	depends on DRM_I915
> +	source "drivers/gpu/drm/i915/Kconfig.unstable"
> +endmenu
> diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
> index d2ba8f7e5e50..ef123eb29168 100644
> --- a/drivers/gpu/drm/i915/Kconfig.debug
> +++ b/drivers/gpu/drm/i915/Kconfig.debug
> @@ -44,6 +44,7 @@ config DRM_I915_DEBUG
>  	select DRM_I915_SELFTEST
>  	select DRM_I915_DEBUG_RUNTIME_PM
>  	select DRM_I915_DEBUG_MMIO
> +	select BROKEN # for prototype uAPI
>  	default n
>  	help
>  	  Choose this option to turn on extra driver debugging that may affect
> diff --git a/drivers/gpu/drm/i915/Kconfig.unstable b/drivers/gpu/drm/i915/Kconfig.unstable
> new file mode 100644
> index 000000000000..ecc8458b5a32
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/Kconfig.unstable
> @@ -0,0 +1,20 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +config DRM_I915_UNSTABLE
> +	bool "Enable unstable API for early prototype development"
> +	depends on EXPERT
> +	depends on STAGING
> +	depends on BROKEN # should never be enabled by distros!
> +	# We use the dependency on !COMPILE_TEST to not be enabled in
> +	# allmodconfig or allyesconfig configurations
> +	depends on !COMPILE_TEST
> +	default n
> +	help
> +	  Enable prototype uAPI under general discussion before they are
> +	  finalized. Such prototypes may be withdrawn or substantially
> +	  changed before release. They are only enabled here so that a wide
> +	  number of interested parties (userspace driver developers) can
> +	  verify that the uAPI meet their expectations.
> +
> +	  Recommended for driver developers _only_.
> +
> +	  If in the slightest bit of doubt, say "N".
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index 3c6d57df262d..1fd9e665b742 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -148,3 +148,11 @@  menu "drm/i915 Profile Guided Optimisation"
 	depends on DRM_I915
 	source "drivers/gpu/drm/i915/Kconfig.profile"
 endmenu
+
+menu "drm/i915 Ustable Evolution"
+	visible if EXPERT
+	visible if STAGING
+	visible if BROKEN
+	depends on DRM_I915
+	source "drivers/gpu/drm/i915/Kconfig.unstable"
+endmenu
diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
index d2ba8f7e5e50..ef123eb29168 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -44,6 +44,7 @@  config DRM_I915_DEBUG
 	select DRM_I915_SELFTEST
 	select DRM_I915_DEBUG_RUNTIME_PM
 	select DRM_I915_DEBUG_MMIO
+	select BROKEN # for prototype uAPI
 	default n
 	help
 	  Choose this option to turn on extra driver debugging that may affect
diff --git a/drivers/gpu/drm/i915/Kconfig.unstable b/drivers/gpu/drm/i915/Kconfig.unstable
new file mode 100644
index 000000000000..ecc8458b5a32
--- /dev/null
+++ b/drivers/gpu/drm/i915/Kconfig.unstable
@@ -0,0 +1,20 @@ 
+# SPDX-License-Identifier: GPL-2.0-only
+config DRM_I915_UNSTABLE
+	bool "Enable unstable API for early prototype development"
+	depends on EXPERT
+	depends on STAGING
+	depends on BROKEN # should never be enabled by distros!
+	# We use the dependency on !COMPILE_TEST to not be enabled in
+	# allmodconfig or allyesconfig configurations
+	depends on !COMPILE_TEST
+	default n
+	help
+	  Enable prototype uAPI under general discussion before they are
+	  finalized. Such prototypes may be withdrawn or substantially
+	  changed before release. They are only enabled here so that a wide
+	  number of interested parties (userspace driver developers) can
+	  verify that the uAPI meet their expectations.
+
+	  Recommended for driver developers _only_.
+
+	  If in the slightest bit of doubt, say "N".