Re: [Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry

2021-10-12 Thread Das, Nirmoy



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.


Re: [Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry

2021-10-12 Thread Lukas Wunner
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.


[Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry

2021-10-11 Thread Nirmoy Das
Debugfs APIs returns encoded error on failure so use
debugfs_lookup() instead of checking for NULL.

CC: Lukas Wunner 
CC: David Airlie 
CC: Daniel Vetter 
CC: Maarten Lankhorst 
CC: Maxime Ripard 
CC: Thomas Zimmermann 

Signed-off-by: Nirmoy Das 
---
 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



Re: [Intel-gfx] [PATCH 4/4] vgaswitcheroo: do not check for NULL debugfs dentry

2021-10-11 Thread Lukas Wunner
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