All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] dri: do not check for NULL debugfs dentry
@ 2021-10-11 19:06 ` Nirmoy Das
  0 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Daniel Vetter

Debugfs APIs returns encoded error on failure instead of NULL
and for drm primary/minor debugfs directories, we save the
returned value in the dentry pointer and pass it on to drm
drivers to further create debugfs files/directories. Error
conditions are handled by debugfs APIs, so no need to check
for NULL, as saved dentry pointers will either contain a
valid pointer or an error code.

CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
CC: Maxime Ripard <mripard@kernel.org>
CC: Thomas Zimmermann <tzimmermann@suse.de>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/drm_debugfs.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index b0a826489488..0073854a4383 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -272,9 +272,6 @@ static void drm_debugfs_remove_all_files(struct drm_minor *minor)

 void drm_debugfs_cleanup(struct drm_minor *minor)
 {
-	if (!minor->debugfs_root)
-		return;
-
 	drm_debugfs_remove_all_files(minor);

 	debugfs_remove_recursive(minor->debugfs_root);
@@ -419,9 +416,6 @@ void drm_debugfs_connector_add(struct drm_connector *connector)
 	struct drm_minor *minor = connector->dev->primary;
 	struct dentry *root;

-	if (!minor->debugfs_root)
-		return;
-
 	root = debugfs_create_dir(connector->name, minor->debugfs_root);
 	connector->debugfs_entry = root;

@@ -440,9 +434,6 @@ void drm_debugfs_connector_add(struct drm_connector *connector)

 void drm_debugfs_connector_remove(struct drm_connector *connector)
 {
-	if (!connector->debugfs_entry)
-		return;
-
 	debugfs_remove_recursive(connector->debugfs_entry);

 	connector->debugfs_entry = NULL;
--
2.32.0


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

* [Intel-gfx] [PATCH 1/4] dri: do not check for NULL debugfs dentry
@ 2021-10-11 19:06 ` Nirmoy Das
  0 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Daniel Vetter

Debugfs APIs returns encoded error on failure instead of NULL
and for drm primary/minor debugfs directories, we save the
returned value in the dentry pointer and pass it on to drm
drivers to further create debugfs files/directories. Error
conditions are handled by debugfs APIs, so no need to check
for NULL, as saved dentry pointers will either contain a
valid pointer or an error code.

CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
CC: Maxime Ripard <mripard@kernel.org>
CC: Thomas Zimmermann <tzimmermann@suse.de>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/drm_debugfs.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index b0a826489488..0073854a4383 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -272,9 +272,6 @@ static void drm_debugfs_remove_all_files(struct drm_minor *minor)

 void drm_debugfs_cleanup(struct drm_minor *minor)
 {
-	if (!minor->debugfs_root)
-		return;
-
 	drm_debugfs_remove_all_files(minor);

 	debugfs_remove_recursive(minor->debugfs_root);
@@ -419,9 +416,6 @@ void drm_debugfs_connector_add(struct drm_connector *connector)
 	struct drm_minor *minor = connector->dev->primary;
 	struct dentry *root;

-	if (!minor->debugfs_root)
-		return;
-
 	root = debugfs_create_dir(connector->name, minor->debugfs_root);
 	connector->debugfs_entry = root;

@@ -440,9 +434,6 @@ void drm_debugfs_connector_add(struct drm_connector *connector)

 void drm_debugfs_connector_remove(struct drm_connector *connector)
 {
-	if (!connector->debugfs_entry)
-		return;
-
 	debugfs_remove_recursive(connector->debugfs_entry);

 	connector->debugfs_entry = NULL;
--
2.32.0


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

* [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry
  2021-10-11 19:06 ` [Intel-gfx] " Nirmoy Das
@ 2021-10-11 19:06   ` Nirmoy Das
  -1 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Christian Koenig, Huang Rui, David Airlie,
	Daniel Vetter

For debugfs directory, it is recommended to save the result
and pass over to next debugfs API for creating debugfs
files/directories. Error conditions are handled by debugfs APIs.

CC: Christian Koenig <christian.koenig@amd.com>
CC: Huang Rui <ray.huang@amd.com>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/ttm/ttm_device.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c
index be24bb6cefd0..225ae6b0b4c2 100644
--- a/drivers/gpu/drm/ttm/ttm_device.c
+++ b/drivers/gpu/drm/ttm/ttm_device.c
@@ -77,9 +77,6 @@ static int ttm_global_init(void)
 	si_meminfo(&si);

 	ttm_debugfs_root = debugfs_create_dir("ttm", NULL);
-	if (IS_ERR(ttm_debugfs_root)) {
-		ttm_debugfs_root = NULL;
-	}

 	/* Limit the number of pages in the pool to about 50% of the total
 	 * system memory.
@@ -108,8 +105,7 @@ static int ttm_global_init(void)
 	debugfs_create_atomic_t("buffer_objects", 0444, ttm_debugfs_root,
 				&glob->bo_count);
 out:
-	if (ret && ttm_debugfs_root)
-		debugfs_remove(ttm_debugfs_root);
+	debugfs_remove(ttm_debugfs_root);
 	if (ret)
 		--ttm_glob_use_count;
 	mutex_unlock(&ttm_global_mutex);
--
2.32.0


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

* [Intel-gfx] [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry
@ 2021-10-11 19:06   ` Nirmoy Das
  0 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Christian Koenig, Huang Rui, David Airlie,
	Daniel Vetter

For debugfs directory, it is recommended to save the result
and pass over to next debugfs API for creating debugfs
files/directories. Error conditions are handled by debugfs APIs.

CC: Christian Koenig <christian.koenig@amd.com>
CC: Huang Rui <ray.huang@amd.com>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/ttm/ttm_device.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c
index be24bb6cefd0..225ae6b0b4c2 100644
--- a/drivers/gpu/drm/ttm/ttm_device.c
+++ b/drivers/gpu/drm/ttm/ttm_device.c
@@ -77,9 +77,6 @@ static int ttm_global_init(void)
 	si_meminfo(&si);

 	ttm_debugfs_root = debugfs_create_dir("ttm", NULL);
-	if (IS_ERR(ttm_debugfs_root)) {
-		ttm_debugfs_root = NULL;
-	}

 	/* Limit the number of pages in the pool to about 50% of the total
 	 * system memory.
@@ -108,8 +105,7 @@ static int ttm_global_init(void)
 	debugfs_create_atomic_t("buffer_objects", 0444, ttm_debugfs_root,
 				&glob->bo_count);
 out:
-	if (ret && ttm_debugfs_root)
-		debugfs_remove(ttm_debugfs_root);
+	debugfs_remove(ttm_debugfs_root);
 	if (ret)
 		--ttm_glob_use_count;
 	mutex_unlock(&ttm_global_mutex);
--
2.32.0


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

* [PATCH 3/4] drm/i915/gt: do not check for NULL debugfs dentry
  2021-10-11 19:06 ` [Intel-gfx] " Nirmoy Das
@ 2021-10-11 19:06   ` Nirmoy Das
  -1 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Jani Nikula, Joonas Lahtinen,
	Rodrigo Vivi, David Airlie, Daniel Vetter

Do not check for NULL value as drm.primary->debugfs_root
will either contain a valid pointer or an encoded error
instead of NULL.

CC: Jani Nikula <jani.nikula@linux.intel.com>
CC: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
CC: Rodrigo Vivi <rodrigo.vivi@intel.com>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/i915/gt/debugfs_gt.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.c b/drivers/gpu/drm/i915/gt/debugfs_gt.c
index 591eb60785db..95ca1b3ad320 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt.c
@@ -16,9 +16,6 @@ void debugfs_gt_register(struct intel_gt *gt)
 {
 	struct dentry *root;

-	if (!gt->i915->drm.primary->debugfs_root)
-		return;
-
 	root = debugfs_create_dir("gt", gt->i915->drm.primary->debugfs_root);
 	if (IS_ERR(root))
 		return;
--
2.32.0


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

* [Intel-gfx] [PATCH 3/4] drm/i915/gt: do not check for NULL debugfs dentry
@ 2021-10-11 19:06   ` Nirmoy Das
  0 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Jani Nikula, Joonas Lahtinen,
	Rodrigo Vivi, David Airlie, Daniel Vetter

Do not check for NULL value as drm.primary->debugfs_root
will either contain a valid pointer or an encoded error
instead of NULL.

CC: Jani Nikula <jani.nikula@linux.intel.com>
CC: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
CC: Rodrigo Vivi <rodrigo.vivi@intel.com>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/drm/i915/gt/debugfs_gt.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.c b/drivers/gpu/drm/i915/gt/debugfs_gt.c
index 591eb60785db..95ca1b3ad320 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt.c
@@ -16,9 +16,6 @@ void debugfs_gt_register(struct intel_gt *gt)
 {
 	struct dentry *root;

-	if (!gt->i915->drm.primary->debugfs_root)
-		return;
-
 	root = debugfs_create_dir("gt", gt->i915->drm.primary->debugfs_root);
 	if (IS_ERR(root))
 		return;
--
2.32.0


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

* [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
  2021-10-11 19:06 ` [Intel-gfx] " Nirmoy Das
@ 2021-10-11 19:06   ` Nirmoy Das
  -1 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Lukas Wunner, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann

Debugfs APIs returns encoded error on failure so use
debugfs_lookup() instead of checking for NULL.

CC: Lukas Wunner <lukas@wunner.de>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>
CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
CC: Maxime Ripard <mripard@kernel.org>
CC: Thomas Zimmermann <tzimmermann@suse.de>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/vga/vga_switcheroo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
index 365e6ddbe90f..a331525f0b32 100644
--- a/drivers/gpu/vga/vga_switcheroo.c
+++ b/drivers/gpu/vga/vga_switcheroo.c
@@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
 static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
 {
 	/* already initialised */
-	if (priv->debugfs_root)
+	if (debugfs_lookup("vgaswitcheroo", NULL))
 		return;

 	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
--
2.32.0


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

* [Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
@ 2021-10-11 19:06   ` Nirmoy Das
  0 siblings, 0 replies; 20+ messages in thread
From: Nirmoy Das @ 2021-10-11 19:06 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, Nirmoy Das, Lukas Wunner, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann

Debugfs APIs returns encoded error on failure so use
debugfs_lookup() instead of checking for NULL.

CC: Lukas Wunner <lukas@wunner.de>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>
CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
CC: Maxime Ripard <mripard@kernel.org>
CC: Thomas Zimmermann <tzimmermann@suse.de>

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
---
 drivers/gpu/vga/vga_switcheroo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
index 365e6ddbe90f..a331525f0b32 100644
--- a/drivers/gpu/vga/vga_switcheroo.c
+++ b/drivers/gpu/vga/vga_switcheroo.c
@@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
 static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
 {
 	/* already initialised */
-	if (priv->debugfs_root)
+	if (debugfs_lookup("vgaswitcheroo", NULL))
 		return;

 	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
--
2.32.0


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

* Re: [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
  2021-10-11 19:06   ` [Intel-gfx] " Nirmoy Das
@ 2021-10-11 20:24     ` Lukas Wunner
  -1 siblings, 0 replies; 20+ messages in thread
From: Lukas Wunner @ 2021-10-11 20:24 UTC (permalink / raw)
  To: Nirmoy Das
  Cc: dri-devel, intel-gfx, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann

On Mon, Oct 11, 2021 at 09:06:07PM +0200, Nirmoy Das wrote:
> Debugfs APIs returns encoded error on failure so use
> debugfs_lookup() instead of checking for NULL.
[...]
> --- a/drivers/gpu/vga/vga_switcheroo.c
> +++ b/drivers/gpu/vga/vga_switcheroo.c
> @@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
>  static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
>  {
>  	/* already initialised */
> -	if (priv->debugfs_root)
> +	if (debugfs_lookup("vgaswitcheroo", NULL))
>  		return;
> 
>  	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);

If debugfs_create_dir() returns an error code, it does make sense to
retry the call when another vga_switcheroo client registers later.
I like that.

However I'd prefer simply changing this to explicitly check for NULL, i.e.:

-	if (priv->debugfs_root)
+	if (priv->debugfs_root == NULL)

It's just as clear as calling debugfs_lookup() and it has way less
overhead.  Granted, this isn't a hot path, but it's called on boot,
and the less code we execute, the faster the machine boots.

Thanks,

Lukas

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

* Re: [Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
@ 2021-10-11 20:24     ` Lukas Wunner
  0 siblings, 0 replies; 20+ messages in thread
From: Lukas Wunner @ 2021-10-11 20:24 UTC (permalink / raw)
  To: Nirmoy Das
  Cc: dri-devel, intel-gfx, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann

On Mon, Oct 11, 2021 at 09:06:07PM +0200, Nirmoy Das wrote:
> Debugfs APIs returns encoded error on failure so use
> debugfs_lookup() instead of checking for NULL.
[...]
> --- a/drivers/gpu/vga/vga_switcheroo.c
> +++ b/drivers/gpu/vga/vga_switcheroo.c
> @@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
>  static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
>  {
>  	/* already initialised */
> -	if (priv->debugfs_root)
> +	if (debugfs_lookup("vgaswitcheroo", NULL))
>  		return;
> 
>  	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);

If debugfs_create_dir() returns an error code, it does make sense to
retry the call when another vga_switcheroo client registers later.
I like that.

However I'd prefer simply changing this to explicitly check for NULL, i.e.:

-	if (priv->debugfs_root)
+	if (priv->debugfs_root == NULL)

It's just as clear as calling debugfs_lookup() and it has way less
overhead.  Granted, this isn't a hot path, but it's called on boot,
and the less code we execute, the faster the machine boots.

Thanks,

Lukas

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

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/4] dri: do not check for NULL debugfs dentry
  2021-10-11 19:06 ` [Intel-gfx] " Nirmoy Das
                   ` (3 preceding siblings ...)
  (?)
@ 2021-10-11 22:09 ` Patchwork
  -1 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2021-10-11 22:09 UTC (permalink / raw)
  To: Nirmoy Das; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/4] dri: do not check for NULL debugfs dentry
URL   : https://patchwork.freedesktop.org/series/95691/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/ttm/ttm_device.c:138:5: warning: context imbalance in 'ttm_device_swapout' - wrong count at exit



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

* [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/4] dri: do not check for NULL debugfs dentry
  2021-10-11 19:06 ` [Intel-gfx] " Nirmoy Das
                   ` (4 preceding siblings ...)
  (?)
@ 2021-10-11 22:40 ` Patchwork
  -1 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2021-10-11 22:40 UTC (permalink / raw)
  To: Nirmoy Das; +Cc: intel-gfx

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

== Series Details ==

Series: series starting with [1/4] dri: do not check for NULL debugfs dentry
URL   : https://patchwork.freedesktop.org/series/95691/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10719 -> Patchwork_21311
====================================================

Summary
-------

  **FAILURE**

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@core_hotunplug@unbind-rebind:
    - fi-skl-6700k2:      [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-skl-6700k2/igt@core_hotunplug@unbind-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-skl-6700k2/igt@core_hotunplug@unbind-rebind.html
    - fi-rkl-guc:         [PASS][3] -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-rkl-guc/igt@core_hotunplug@unbind-rebind.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-rkl-guc/igt@core_hotunplug@unbind-rebind.html
    - fi-elk-e7500:       [PASS][5] -> [INCOMPLETE][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-elk-e7500/igt@core_hotunplug@unbind-rebind.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-elk-e7500/igt@core_hotunplug@unbind-rebind.html
    - fi-ivb-3770:        [PASS][7] -> [INCOMPLETE][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-ivb-3770/igt@core_hotunplug@unbind-rebind.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-ivb-3770/igt@core_hotunplug@unbind-rebind.html
    - fi-ilk-650:         [PASS][9] -> [INCOMPLETE][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-ilk-650/igt@core_hotunplug@unbind-rebind.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-ilk-650/igt@core_hotunplug@unbind-rebind.html
    - fi-bsw-n3050:       [PASS][11] -> [INCOMPLETE][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-bsw-n3050/igt@core_hotunplug@unbind-rebind.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bsw-n3050/igt@core_hotunplug@unbind-rebind.html
    - fi-cfl-guc:         [PASS][13] -> [INCOMPLETE][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-cfl-guc/igt@core_hotunplug@unbind-rebind.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cfl-guc/igt@core_hotunplug@unbind-rebind.html
    - fi-skl-6600u:       [PASS][15] -> [INCOMPLETE][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-skl-6600u/igt@core_hotunplug@unbind-rebind.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-skl-6600u/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-soraka:      [PASS][17] -> [INCOMPLETE][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-kbl-soraka/igt@core_hotunplug@unbind-rebind.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-soraka/igt@core_hotunplug@unbind-rebind.html
    - fi-tgl-1115g4:      [PASS][19] -> [INCOMPLETE][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
    - fi-bxt-dsi:         [PASS][21] -> [INCOMPLETE][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-bxt-dsi/igt@core_hotunplug@unbind-rebind.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bxt-dsi/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-r:           [PASS][23] -> [INCOMPLETE][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-kbl-r/igt@core_hotunplug@unbind-rebind.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-r/igt@core_hotunplug@unbind-rebind.html
    - fi-cfl-8700k:       [PASS][25] -> [INCOMPLETE][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-cfl-8700k/igt@core_hotunplug@unbind-rebind.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cfl-8700k/igt@core_hotunplug@unbind-rebind.html
    - fi-rkl-11600:       [PASS][27] -> [INCOMPLETE][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-rkl-11600/igt@core_hotunplug@unbind-rebind.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-rkl-11600/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-7500u:       [PASS][29] -> [INCOMPLETE][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-kbl-7500u/igt@core_hotunplug@unbind-rebind.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-7500u/igt@core_hotunplug@unbind-rebind.html
    - fi-bsw-nick:        [PASS][31] -> [INCOMPLETE][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-bsw-nick/igt@core_hotunplug@unbind-rebind.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bsw-nick/igt@core_hotunplug@unbind-rebind.html
    - fi-cfl-8109u:       [PASS][33] -> [INCOMPLETE][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-cfl-8109u/igt@core_hotunplug@unbind-rebind.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cfl-8109u/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-guc:         [PASS][35] -> [INCOMPLETE][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-kbl-guc/igt@core_hotunplug@unbind-rebind.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-guc/igt@core_hotunplug@unbind-rebind.html
    - fi-bwr-2160:        [PASS][37] -> [INCOMPLETE][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-bwr-2160/igt@core_hotunplug@unbind-rebind.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bwr-2160/igt@core_hotunplug@unbind-rebind.html
    - fi-snb-2600:        [PASS][39] -> [INCOMPLETE][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-snb-2600/igt@core_hotunplug@unbind-rebind.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-snb-2600/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-7567u:       [PASS][41] -> [DMESG-WARN][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-kbl-7567u/igt@core_hotunplug@unbind-rebind.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-7567u/igt@core_hotunplug@unbind-rebind.html
    - fi-glk-dsi:         [PASS][43] -> [INCOMPLETE][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-glk-dsi/igt@core_hotunplug@unbind-rebind.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-glk-dsi/igt@core_hotunplug@unbind-rebind.html
    - fi-bdw-5557u:       [PASS][45] -> [INCOMPLETE][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-bdw-5557u/igt@core_hotunplug@unbind-rebind.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bdw-5557u/igt@core_hotunplug@unbind-rebind.html
    - fi-bsw-kefka:       [PASS][47] -> [INCOMPLETE][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-bsw-kefka/igt@core_hotunplug@unbind-rebind.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bsw-kefka/igt@core_hotunplug@unbind-rebind.html

  * igt@i915_module_load@reload:
    - fi-cml-u2:          [PASS][49] -> [INCOMPLETE][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-cml-u2/igt@i915_module_load@reload.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cml-u2/igt@i915_module_load@reload.html
    - fi-hsw-4770:        [PASS][51] -> [INCOMPLETE][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-hsw-4770/igt@i915_module_load@reload.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-hsw-4770/igt@i915_module_load@reload.html
    - fi-skl-guc:         [PASS][53] -> [INCOMPLETE][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-skl-guc/igt@i915_module_load@reload.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-skl-guc/igt@i915_module_load@reload.html
    - fi-icl-y:           [PASS][55] -> [INCOMPLETE][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-icl-y/igt@i915_module_load@reload.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-icl-y/igt@i915_module_load@reload.html

  * igt@runner@aborted:
    - fi-bwr-2160:        NOTRUN -> [FAIL][57]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bwr-2160/igt@runner@aborted.html
    - fi-hsw-4770:        NOTRUN -> [FAIL][58]
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-hsw-4770/igt@runner@aborted.html

  
#### Suppressed ####

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

  * igt@core_hotunplug@unbind-rebind:
    - {fi-hsw-gt1}:       [PASS][59] -> [INCOMPLETE][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-hsw-gt1/igt@core_hotunplug@unbind-rebind.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-hsw-gt1/igt@core_hotunplug@unbind-rebind.html
    - {fi-ehl-2}:         [PASS][61] -> [INCOMPLETE][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-ehl-2/igt@core_hotunplug@unbind-rebind.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-ehl-2/igt@core_hotunplug@unbind-rebind.html
    - {fi-tgl-dsi}:       [PASS][63] -> [INCOMPLETE][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-tgl-dsi/igt@core_hotunplug@unbind-rebind.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-tgl-dsi/igt@core_hotunplug@unbind-rebind.html
    - {fi-jsl-1}:         [PASS][65] -> [INCOMPLETE][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-jsl-1/igt@core_hotunplug@unbind-rebind.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-jsl-1/igt@core_hotunplug@unbind-rebind.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@unbind-rebind:
    - fi-pnv-d510:        [PASS][67] -> [INCOMPLETE][68] ([i915#299])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-pnv-d510/igt@core_hotunplug@unbind-rebind.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-pnv-d510/igt@core_hotunplug@unbind-rebind.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [PASS][69] -> [DMESG-WARN][70] ([i915#4269])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10719/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html

  * igt@runner@aborted:
    - fi-rkl-11600:       NOTRUN -> [FAIL][71] ([i915#1602])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-rkl-11600/igt@runner@aborted.html
    - fi-ilk-650:         NOTRUN -> [FAIL][72] ([i915#2283] / [i915#2426])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-ilk-650/igt@runner@aborted.html
    - fi-pnv-d510:        NOTRUN -> [FAIL][73] ([i915#2403])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-pnv-d510/igt@runner@aborted.html
    - fi-bsw-kefka:       NOTRUN -> [FAIL][74] ([i915#1602] / [i915#3690])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bsw-kefka/igt@runner@aborted.html
    - fi-cfl-8700k:       NOTRUN -> [FAIL][75] ([i915#2283] / [i915#2426] / [i915#3363])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cfl-8700k/igt@runner@aborted.html
    - fi-skl-6600u:       NOTRUN -> [FAIL][76] ([i915#2283] / [i915#2426] / [i915#3363])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-skl-6600u/igt@runner@aborted.html
    - fi-cfl-8109u:       NOTRUN -> [FAIL][77] ([i915#2283] / [i915#2426] / [i915#3363])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cfl-8109u/igt@runner@aborted.html
    - fi-glk-dsi:         NOTRUN -> [FAIL][78] ([i915#2283] / [i915#2426] / [i915#3363] / [k.org#202321])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-glk-dsi/igt@runner@aborted.html
    - fi-bsw-nick:        NOTRUN -> [FAIL][79] ([i915#1602] / [i915#3690])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bsw-nick/igt@runner@aborted.html
    - fi-kbl-8809g:       NOTRUN -> [FAIL][80] ([i915#1569] / [i915#192] / [i915#193] / [i915#194] / [i915#3363])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-8809g/igt@runner@aborted.html
    - fi-kbl-r:           NOTRUN -> [FAIL][81] ([i915#2283] / [i915#2426] / [i915#3363])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-r/igt@runner@aborted.html
    - fi-bdw-5557u:       NOTRUN -> [FAIL][82] ([i915#1602] / [i915#2426])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bdw-5557u/igt@runner@aborted.html
    - fi-kbl-soraka:      NOTRUN -> [FAIL][83] ([i915#2283] / [i915#2426] / [i915#3363])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-soraka/igt@runner@aborted.html
    - fi-kbl-7500u:       NOTRUN -> [FAIL][84] ([i915#2283] / [i915#2426] / [i915#3363])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-7500u/igt@runner@aborted.html
    - fi-kbl-guc:         NOTRUN -> [FAIL][85] ([i915#2283] / [i915#2426] / [i915#3363])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-guc/igt@runner@aborted.html
    - fi-snb-2600:        NOTRUN -> [FAIL][86] ([i915#2426])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-snb-2600/igt@runner@aborted.html
    - fi-cml-u2:          NOTRUN -> [FAIL][87] ([i915#2082] / [i915#2426] / [i915#3363])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cml-u2/igt@runner@aborted.html
    - fi-rkl-guc:         NOTRUN -> [FAIL][88] ([i915#1602] / [i915#2426])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-rkl-guc/igt@runner@aborted.html
    - fi-ivb-3770:        NOTRUN -> [FAIL][89] ([i915#2426])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-ivb-3770/igt@runner@aborted.html
    - fi-bxt-dsi:         NOTRUN -> [FAIL][90] ([i915#2283] / [i915#2426] / [i915#3363])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bxt-dsi/igt@runner@aborted.html
    - fi-tgl-1115g4:      NOTRUN -> [FAIL][91] ([i915#1602] / [i915#3690])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-tgl-1115g4/igt@runner@aborted.html
    - fi-elk-e7500:       NOTRUN -> [FAIL][92] ([i915#2426])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-elk-e7500/igt@runner@aborted.html
    - fi-cfl-guc:         NOTRUN -> [FAIL][93] ([i915#2283] / [i915#2426] / [i915#3363])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-cfl-guc/igt@runner@aborted.html
    - fi-icl-y:           NOTRUN -> [FAIL][94] ([i915#3690])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-icl-y/igt@runner@aborted.html
    - fi-kbl-7567u:       NOTRUN -> [FAIL][95] ([i915#2283] / [i915#3363])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-kbl-7567u/igt@runner@aborted.html
    - fi-skl-guc:         NOTRUN -> [FAIL][96] ([i915#2426] / [i915#3363])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-skl-guc/igt@runner@aborted.html
    - fi-skl-6700k2:      NOTRUN -> [FAIL][97] ([i915#2283] / [i915#2426] / [i915#3363])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-skl-6700k2/igt@runner@aborted.html
    - fi-bsw-n3050:       NOTRUN -> [FAIL][98] ([i915#1602] / [i915#3690])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/fi-bsw-n3050/igt@runner@aborted.html

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

  [i915#1569]: https://gitlab.freedesktop.org/drm/intel/issues/1569
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#192]: https://gitlab.freedesktop.org/drm/intel/issues/192
  [i915#193]: https://gitlab.freedesktop.org/drm/intel/issues/193
  [i915#194]: https://gitlab.freedesktop.org/drm/intel/issues/194
  [i915#2082]: https://gitlab.freedesktop.org/drm/intel/issues/2082
  [i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
  [i915#2403]: https://gitlab.freedesktop.org/drm/intel/issues/2403
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2932]: https://gitlab.freedesktop.org/drm/intel/issues/2932
  [i915#299]: https://gitlab.freedesktop.org/drm/intel/issues/299
  [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
  [i915#3690]: https://gitlab.freedesktop.org/drm/intel/issues/3690
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321


Participating hosts (38 -> 37)
------------------------------

  Missing    (1): fi-bsw-cyan 


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

  * Linux: CI_DRM_10719 -> Patchwork_21311

  CI-20190529: 20190529
  CI_DRM_10719: b138938ad4071c045a865977718019951186e322 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6242: 721fd85ee95225ed5df322f7182bdfa9b86a3e68 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_21311: 5613e87998ba5250a0bb5bbe57e2718439850ee8 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

5613e87998ba vgaswitcheroo: do not check for NULL debugfs dentry
4475fbd733da drm/i915/gt: do not check for NULL debugfs dentry
9aca8c9580d8 drm/ttm: do not set NULL to debugfs dentry
a6b52454e95d dri: do not check for NULL debugfs dentry

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21311/index.html

[-- Attachment #2: Type: text/html, Size: 23633 bytes --]

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

* Re: [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
  2021-10-11 20:24     ` [Intel-gfx] " Lukas Wunner
@ 2021-10-12  6:48       ` Lukas Wunner
  -1 siblings, 0 replies; 20+ messages in thread
From: Lukas Wunner @ 2021-10-12  6:48 UTC (permalink / raw)
  To: Nirmoy Das
  Cc: dri-devel, intel-gfx, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann

On Mon, Oct 11, 2021 at 10:24:29PM +0200, Lukas Wunner wrote:
> On Mon, Oct 11, 2021 at 09:06:07PM +0200, Nirmoy Das wrote:
> > Debugfs APIs returns encoded error on failure so use
> > debugfs_lookup() instead of checking for NULL.
> [...]
> > --- a/drivers/gpu/vga/vga_switcheroo.c
> > +++ b/drivers/gpu/vga/vga_switcheroo.c
> > @@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
> >  static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
> >  {
> >  	/* already initialised */
> > -	if (priv->debugfs_root)
> > +	if (debugfs_lookup("vgaswitcheroo", NULL))
> >  		return;
> > 
> >  	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
> 
> If debugfs_create_dir() returns an error code, it does make sense to
> retry the call when another vga_switcheroo client registers later.
> I like that.
> 
> However I'd prefer simply changing this to explicitly check for NULL, i.e.:
> 
> -	if (priv->debugfs_root)
> +	if (priv->debugfs_root == NULL)

Apologies, I meant:

-	if (priv->debugfs_root)
+	if (priv->debugfs_root && !IS_ERR(priv->debugfs_root))

Thanks,

Lukas

> It's just as clear as calling debugfs_lookup() and it has way less
> overhead.  Granted, this isn't a hot path, but it's called on boot,
> and the less code we execute, the faster the machine boots.

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

* Re: [Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
@ 2021-10-12  6:48       ` Lukas Wunner
  0 siblings, 0 replies; 20+ messages in thread
From: Lukas Wunner @ 2021-10-12  6:48 UTC (permalink / raw)
  To: Nirmoy Das
  Cc: dri-devel, intel-gfx, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann

On Mon, Oct 11, 2021 at 10:24:29PM +0200, Lukas Wunner wrote:
> On Mon, Oct 11, 2021 at 09:06:07PM +0200, Nirmoy Das wrote:
> > Debugfs APIs returns encoded error on failure so use
> > debugfs_lookup() instead of checking for NULL.
> [...]
> > --- a/drivers/gpu/vga/vga_switcheroo.c
> > +++ b/drivers/gpu/vga/vga_switcheroo.c
> > @@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
> >  static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
> >  {
> >  	/* already initialised */
> > -	if (priv->debugfs_root)
> > +	if (debugfs_lookup("vgaswitcheroo", NULL))
> >  		return;
> > 
> >  	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
> 
> If debugfs_create_dir() returns an error code, it does make sense to
> retry the call when another vga_switcheroo client registers later.
> I like that.
> 
> However I'd prefer simply changing this to explicitly check for NULL, i.e.:
> 
> -	if (priv->debugfs_root)
> +	if (priv->debugfs_root == NULL)

Apologies, I meant:

-	if (priv->debugfs_root)
+	if (priv->debugfs_root && !IS_ERR(priv->debugfs_root))

Thanks,

Lukas

> It's just as clear as calling debugfs_lookup() and it has way less
> overhead.  Granted, this isn't a hot path, but it's called on boot,
> and the less code we execute, the faster the machine boots.

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

* Re: [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry
  2021-10-11 19:06   ` [Intel-gfx] " Nirmoy Das
@ 2021-10-12  7:09     ` Christian König
  -1 siblings, 0 replies; 20+ messages in thread
From: Christian König @ 2021-10-12  7:09 UTC (permalink / raw)
  To: Nirmoy Das, dri-devel; +Cc: intel-gfx, Huang Rui, David Airlie, Daniel Vetter

Am 11.10.21 um 21:06 schrieb Nirmoy Das:
> For debugfs directory, it is recommended to save the result
> and pass over to next debugfs API for creating debugfs
> files/directories. Error conditions are handled by debugfs APIs.
>
> CC: Christian Koenig <christian.koenig@amd.com>
> CC: Huang Rui <ray.huang@amd.com>
> CC: David Airlie <airlied@linux.ie>
> CC: Daniel Vetter <daniel@ffwll.ch>
>
> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>

Please also add a comment to ttm_debugfs_root that this can also be an 
ERR_PTR and should not be dereferenced.

Apart from that looks good to me.

Christian.

> ---
>   drivers/gpu/drm/ttm/ttm_device.c | 6 +-----
>   1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c
> index be24bb6cefd0..225ae6b0b4c2 100644
> --- a/drivers/gpu/drm/ttm/ttm_device.c
> +++ b/drivers/gpu/drm/ttm/ttm_device.c
> @@ -77,9 +77,6 @@ static int ttm_global_init(void)
>   	si_meminfo(&si);
>
>   	ttm_debugfs_root = debugfs_create_dir("ttm", NULL);
> -	if (IS_ERR(ttm_debugfs_root)) {
> -		ttm_debugfs_root = NULL;
> -	}
>
>   	/* Limit the number of pages in the pool to about 50% of the total
>   	 * system memory.
> @@ -108,8 +105,7 @@ static int ttm_global_init(void)
>   	debugfs_create_atomic_t("buffer_objects", 0444, ttm_debugfs_root,
>   				&glob->bo_count);
>   out:
> -	if (ret && ttm_debugfs_root)
> -		debugfs_remove(ttm_debugfs_root);
> +	debugfs_remove(ttm_debugfs_root);
>   	if (ret)
>   		--ttm_glob_use_count;
>   	mutex_unlock(&ttm_global_mutex);
> --
> 2.32.0
>


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

* Re: [Intel-gfx] [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry
@ 2021-10-12  7:09     ` Christian König
  0 siblings, 0 replies; 20+ messages in thread
From: Christian König @ 2021-10-12  7:09 UTC (permalink / raw)
  To: Nirmoy Das, dri-devel; +Cc: intel-gfx, Huang Rui, David Airlie, Daniel Vetter

Am 11.10.21 um 21:06 schrieb Nirmoy Das:
> For debugfs directory, it is recommended to save the result
> and pass over to next debugfs API for creating debugfs
> files/directories. Error conditions are handled by debugfs APIs.
>
> CC: Christian Koenig <christian.koenig@amd.com>
> CC: Huang Rui <ray.huang@amd.com>
> CC: David Airlie <airlied@linux.ie>
> CC: Daniel Vetter <daniel@ffwll.ch>
>
> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>

Please also add a comment to ttm_debugfs_root that this can also be an 
ERR_PTR and should not be dereferenced.

Apart from that looks good to me.

Christian.

> ---
>   drivers/gpu/drm/ttm/ttm_device.c | 6 +-----
>   1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c
> index be24bb6cefd0..225ae6b0b4c2 100644
> --- a/drivers/gpu/drm/ttm/ttm_device.c
> +++ b/drivers/gpu/drm/ttm/ttm_device.c
> @@ -77,9 +77,6 @@ static int ttm_global_init(void)
>   	si_meminfo(&si);
>
>   	ttm_debugfs_root = debugfs_create_dir("ttm", NULL);
> -	if (IS_ERR(ttm_debugfs_root)) {
> -		ttm_debugfs_root = NULL;
> -	}
>
>   	/* Limit the number of pages in the pool to about 50% of the total
>   	 * system memory.
> @@ -108,8 +105,7 @@ static int ttm_global_init(void)
>   	debugfs_create_atomic_t("buffer_objects", 0444, ttm_debugfs_root,
>   				&glob->bo_count);
>   out:
> -	if (ret && ttm_debugfs_root)
> -		debugfs_remove(ttm_debugfs_root);
> +	debugfs_remove(ttm_debugfs_root);
>   	if (ret)
>   		--ttm_glob_use_count;
>   	mutex_unlock(&ttm_global_mutex);
> --
> 2.32.0
>


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

* Re: [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry
  2021-10-12  7:09     ` [Intel-gfx] " Christian König
@ 2021-10-12  8:49       ` Das, Nirmoy
  -1 siblings, 0 replies; 20+ messages in thread
From: Das, Nirmoy @ 2021-10-12  8:49 UTC (permalink / raw)
  To: Christian König, dri-devel
  Cc: intel-gfx, Huang Rui, David Airlie, Daniel Vetter


On 10/12/2021 9:09 AM, Christian König wrote:
> Am 11.10.21 um 21:06 schrieb Nirmoy Das:
>> For debugfs directory, it is recommended to save the result
>> and pass over to next debugfs API for creating debugfs
>> files/directories. Error conditions are handled by debugfs APIs.
>>
>> CC: Christian Koenig <christian.koenig@amd.com>
>> CC: Huang Rui <ray.huang@amd.com>
>> CC: David Airlie <airlied@linux.ie>
>> CC: Daniel Vetter <daniel@ffwll.ch>
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
>
> Please also add a comment to ttm_debugfs_root that this can also be an 
> ERR_PTR and should not be dereferenced.


Thanks, I will resend with a comment to ttm_debugfs_root.


Nirmoy

>
> Apart from that looks good to me.
>
> Christian.
>
>> ---
>>   drivers/gpu/drm/ttm/ttm_device.c | 6 +-----
>>   1 file changed, 1 insertion(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_device.c 
>> b/drivers/gpu/drm/ttm/ttm_device.c
>> index be24bb6cefd0..225ae6b0b4c2 100644
>> --- a/drivers/gpu/drm/ttm/ttm_device.c
>> +++ b/drivers/gpu/drm/ttm/ttm_device.c
>> @@ -77,9 +77,6 @@ static int ttm_global_init(void)
>>       si_meminfo(&si);
>>
>>       ttm_debugfs_root = debugfs_create_dir("ttm", NULL);
>> -    if (IS_ERR(ttm_debugfs_root)) {
>> -        ttm_debugfs_root = NULL;
>> -    }
>>
>>       /* Limit the number of pages in the pool to about 50% of the total
>>        * system memory.
>> @@ -108,8 +105,7 @@ static int ttm_global_init(void)
>>       debugfs_create_atomic_t("buffer_objects", 0444, ttm_debugfs_root,
>>                   &glob->bo_count);
>>   out:
>> -    if (ret && ttm_debugfs_root)
>> -        debugfs_remove(ttm_debugfs_root);
>> +    debugfs_remove(ttm_debugfs_root);
>>       if (ret)
>>           --ttm_glob_use_count;
>>       mutex_unlock(&ttm_global_mutex);
>> -- 
>> 2.32.0
>>
>

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

* Re: [Intel-gfx] [PATCH 2/4] drm/ttm: do not set NULL to debugfs dentry
@ 2021-10-12  8:49       ` Das, Nirmoy
  0 siblings, 0 replies; 20+ messages in thread
From: Das, Nirmoy @ 2021-10-12  8:49 UTC (permalink / raw)
  To: Christian König, dri-devel
  Cc: intel-gfx, Huang Rui, David Airlie, Daniel Vetter


On 10/12/2021 9:09 AM, Christian König wrote:
> Am 11.10.21 um 21:06 schrieb Nirmoy Das:
>> For debugfs directory, it is recommended to save the result
>> and pass over to next debugfs API for creating debugfs
>> files/directories. Error conditions are handled by debugfs APIs.
>>
>> CC: Christian Koenig <christian.koenig@amd.com>
>> CC: Huang Rui <ray.huang@amd.com>
>> CC: David Airlie <airlied@linux.ie>
>> CC: Daniel Vetter <daniel@ffwll.ch>
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
>
> Please also add a comment to ttm_debugfs_root that this can also be an 
> ERR_PTR and should not be dereferenced.


Thanks, I will resend with a comment to ttm_debugfs_root.


Nirmoy

>
> Apart from that looks good to me.
>
> Christian.
>
>> ---
>>   drivers/gpu/drm/ttm/ttm_device.c | 6 +-----
>>   1 file changed, 1 insertion(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_device.c 
>> b/drivers/gpu/drm/ttm/ttm_device.c
>> index be24bb6cefd0..225ae6b0b4c2 100644
>> --- a/drivers/gpu/drm/ttm/ttm_device.c
>> +++ b/drivers/gpu/drm/ttm/ttm_device.c
>> @@ -77,9 +77,6 @@ static int ttm_global_init(void)
>>       si_meminfo(&si);
>>
>>       ttm_debugfs_root = debugfs_create_dir("ttm", NULL);
>> -    if (IS_ERR(ttm_debugfs_root)) {
>> -        ttm_debugfs_root = NULL;
>> -    }
>>
>>       /* Limit the number of pages in the pool to about 50% of the total
>>        * system memory.
>> @@ -108,8 +105,7 @@ static int ttm_global_init(void)
>>       debugfs_create_atomic_t("buffer_objects", 0444, ttm_debugfs_root,
>>                   &glob->bo_count);
>>   out:
>> -    if (ret && ttm_debugfs_root)
>> -        debugfs_remove(ttm_debugfs_root);
>> +    debugfs_remove(ttm_debugfs_root);
>>       if (ret)
>>           --ttm_glob_use_count;
>>       mutex_unlock(&ttm_global_mutex);
>> -- 
>> 2.32.0
>>
>

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

* Re: [Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
  2021-10-12  6:48       ` [Intel-gfx] " Lukas Wunner
@ 2021-10-12  8:57         ` Das, Nirmoy
  -1 siblings, 0 replies; 20+ messages in thread
From: Das, Nirmoy @ 2021-10-12  8:57 UTC (permalink / raw)
  To: Lukas Wunner
  Cc: dri-devel, intel-gfx, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann


On 10/12/2021 8:48 AM, Lukas Wunner wrote:
> On Mon, Oct 11, 2021 at 10:24:29PM +0200, Lukas Wunner wrote:
>> On Mon, Oct 11, 2021 at 09:06:07PM +0200, Nirmoy Das wrote:
>>> Debugfs APIs returns encoded error on failure so use
>>> debugfs_lookup() instead of checking for NULL.
>> [...]
>>> --- a/drivers/gpu/vga/vga_switcheroo.c
>>> +++ b/drivers/gpu/vga/vga_switcheroo.c
>>> @@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
>>>   static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
>>>   {
>>>   	/* already initialised */
>>> -	if (priv->debugfs_root)
>>> +	if (debugfs_lookup("vgaswitcheroo", NULL))
>>>   		return;
>>>
>>>   	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
>> If debugfs_create_dir() returns an error code, it does make sense to
>> retry the call when another vga_switcheroo client registers later.
>> I like that.
>>
>> However I'd prefer simply changing this to explicitly check for NULL, i.e.:
>>
>> -	if (priv->debugfs_root)
>> +	if (priv->debugfs_root == NULL)
> Apologies, I meant:
>
> -	if (priv->debugfs_root)
> +	if (priv->debugfs_root && !IS_ERR(priv->debugfs_root))


Thanks for the suggestion, Lukas. I will update that and resend.


Nirmoy


> Thanks,
>
> Lukas
>
>> It's just as clear as calling debugfs_lookup() and it has way less
>> overhead.  Granted, this isn't a hot path, but it's called on boot,
>> and the less code we execute, the faster the machine boots.

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

* Re: [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry
@ 2021-10-12  8:57         ` Das, Nirmoy
  0 siblings, 0 replies; 20+ messages in thread
From: Das, Nirmoy @ 2021-10-12  8:57 UTC (permalink / raw)
  To: Lukas Wunner
  Cc: dri-devel, intel-gfx, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann


On 10/12/2021 8:48 AM, Lukas Wunner wrote:
> On Mon, Oct 11, 2021 at 10:24:29PM +0200, Lukas Wunner wrote:
>> On Mon, Oct 11, 2021 at 09:06:07PM +0200, Nirmoy Das wrote:
>>> Debugfs APIs returns encoded error on failure so use
>>> debugfs_lookup() instead of checking for NULL.
>> [...]
>>> --- a/drivers/gpu/vga/vga_switcheroo.c
>>> +++ b/drivers/gpu/vga/vga_switcheroo.c
>>> @@ -914,7 +914,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
>>>   static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
>>>   {
>>>   	/* already initialised */
>>> -	if (priv->debugfs_root)
>>> +	if (debugfs_lookup("vgaswitcheroo", NULL))
>>>   		return;
>>>
>>>   	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
>> If debugfs_create_dir() returns an error code, it does make sense to
>> retry the call when another vga_switcheroo client registers later.
>> I like that.
>>
>> However I'd prefer simply changing this to explicitly check for NULL, i.e.:
>>
>> -	if (priv->debugfs_root)
>> +	if (priv->debugfs_root == NULL)
> Apologies, I meant:
>
> -	if (priv->debugfs_root)
> +	if (priv->debugfs_root && !IS_ERR(priv->debugfs_root))


Thanks for the suggestion, Lukas. I will update that and resend.


Nirmoy


> Thanks,
>
> Lukas
>
>> It's just as clear as calling debugfs_lookup() and it has way less
>> overhead.  Granted, this isn't a hot path, but it's called on boot,
>> and the less code we execute, the faster the machine boots.

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

end of thread, other threads:[~2021-10-12  8:58 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-11 19:06 [PATCH 1/4] dri: do not check for NULL debugfs dentry Nirmoy Das
2021-10-11 19:06 ` [Intel-gfx] " Nirmoy Das
2021-10-11 19:06 ` [PATCH 2/4] drm/ttm: do not set NULL to " Nirmoy Das
2021-10-11 19:06   ` [Intel-gfx] " Nirmoy Das
2021-10-12  7:09   ` Christian König
2021-10-12  7:09     ` [Intel-gfx] " Christian König
2021-10-12  8:49     ` Das, Nirmoy
2021-10-12  8:49       ` [Intel-gfx] " Das, Nirmoy
2021-10-11 19:06 ` [PATCH 3/4] drm/i915/gt: do not check for NULL " Nirmoy Das
2021-10-11 19:06   ` [Intel-gfx] " Nirmoy Das
2021-10-11 19:06 ` [PATCH 4/4] vgaswitcheroo: " Nirmoy Das
2021-10-11 19:06   ` [Intel-gfx] " Nirmoy Das
2021-10-11 20:24   ` Lukas Wunner
2021-10-11 20:24     ` [Intel-gfx] " Lukas Wunner
2021-10-12  6:48     ` Lukas Wunner
2021-10-12  6:48       ` [Intel-gfx] " Lukas Wunner
2021-10-12  8:57       ` Das, Nirmoy
2021-10-12  8:57         ` Das, Nirmoy
2021-10-11 22:09 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/4] dri: " Patchwork
2021-10-11 22:40 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork

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.