2021-10-08 07:18:50

by Javier Martinez Canillas

[permalink] [raw]
Subject: [PATCH] Revert "drm/fb-helper: improve DRM fbdev emulation device names"

This reverts commit b3484d2b03e4c940a9598aa841a52d69729c582a.

That change attempted to improve the DRM drivers fbdev emulation device
names to avoid having confusing names like "simpledrmdrmfb" in /proc/fb.

But unfortunately there are user-space programs, such as pm-utils that
query that information and so broke after the mentioned commit. Since
the names in /proc/fb are used programs that consider it an ABI, let's
restore the old names even when this lead to silly naming like the one
mentioned above as an example.

Reported-by: Johannes Stezenbach <[email protected]>
Signed-off-by: Javier Martinez Canillas <[email protected]>
---

drivers/gpu/drm/drm_fb_helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 3ab07832104..8993b02e783 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1737,7 +1737,7 @@ void drm_fb_helper_fill_info(struct fb_info *info,
sizes->fb_width, sizes->fb_height);

info->par = fb_helper;
- snprintf(info->fix.id, sizeof(info->fix.id), "%s",
+ snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
fb_helper->dev->driver->name);

}
--
2.31.1


2021-10-08 11:07:18

by Ville Syrjälä

[permalink] [raw]
Subject: Re: [PATCH] Revert "drm/fb-helper: improve DRM fbdev emulation device names"

On Fri, Oct 08, 2021 at 09:17:08AM +0200, Javier Martinez Canillas wrote:
> This reverts commit b3484d2b03e4c940a9598aa841a52d69729c582a.
>
> That change attempted to improve the DRM drivers fbdev emulation device
> names to avoid having confusing names like "simpledrmdrmfb" in /proc/fb.
>
> But unfortunately there are user-space programs, such as pm-utils that
> query that information and so broke after the mentioned commit. Since
> the names in /proc/fb are used programs that consider it an ABI, let's
> restore the old names even when this lead to silly naming like the one
> mentioned above as an example.

The usage Johannes listed was this specificially:
using_kms() { grep -q -E '(nouveau|drm)fb' /proc/fb; }

So it actually looks like Daniel's
commit f243dd06180a ("drm/nouveau: Use drm_fb_helper_fill_info")
also broke the abi. But for the pm-utils use case at least
just having the "drmfb" in there should cover even nouveau.

Cc: [email protected]
Reviewed-by: Ville Syrj?l? <[email protected]>

>
> Reported-by: Johannes Stezenbach <[email protected]>
> Signed-off-by: Javier Martinez Canillas <[email protected]>
> ---
>
> drivers/gpu/drm/drm_fb_helper.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 3ab07832104..8993b02e783 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -1737,7 +1737,7 @@ void drm_fb_helper_fill_info(struct fb_info *info,
> sizes->fb_width, sizes->fb_height);
>
> info->par = fb_helper;
> - snprintf(info->fix.id, sizeof(info->fix.id), "%s",
> + snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
> fb_helper->dev->driver->name);
>
> }
> --
> 2.31.1

--
Ville Syrj?l?
Intel

2021-10-13 12:28:53

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH] Revert "drm/fb-helper: improve DRM fbdev emulation device names"

On Fri, Oct 08, 2021 at 02:02:40PM +0300, Ville Syrj?l? wrote:
> On Fri, Oct 08, 2021 at 09:17:08AM +0200, Javier Martinez Canillas wrote:
> > This reverts commit b3484d2b03e4c940a9598aa841a52d69729c582a.
> >
> > That change attempted to improve the DRM drivers fbdev emulation device
> > names to avoid having confusing names like "simpledrmdrmfb" in /proc/fb.
> >
> > But unfortunately there are user-space programs, such as pm-utils that
> > query that information and so broke after the mentioned commit. Since
> > the names in /proc/fb are used programs that consider it an ABI, let's
> > restore the old names even when this lead to silly naming like the one
> > mentioned above as an example.
>
> The usage Johannes listed was this specificially:
> using_kms() { grep -q -E '(nouveau|drm)fb' /proc/fb; }
>
> So it actually looks like Daniel's
> commit f243dd06180a ("drm/nouveau: Use drm_fb_helper_fill_info")
> also broke the abi. But for the pm-utils use case at least
> just having the "drmfb" in there should cover even nouveau.
>
> Cc: [email protected]
> Reviewed-by: Ville Syrj?l? <[email protected]>
>
> >
> > Reported-by: Johannes Stezenbach <[email protected]>
> > Signed-off-by: Javier Martinez Canillas <[email protected]>
> > ---
> >
> > drivers/gpu/drm/drm_fb_helper.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> > index 3ab07832104..8993b02e783 100644
> > --- a/drivers/gpu/drm/drm_fb_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_helper.c
> > @@ -1737,7 +1737,7 @@ void drm_fb_helper_fill_info(struct fb_info *info,
> > sizes->fb_width, sizes->fb_height);
> >
> > info->par = fb_helper;
> > - snprintf(info->fix.id, sizeof(info->fix.id), "%s",

Please add a comment here that drmfb is uapi because pm-utils matches
against it ...

Otherwise this will be lost in time again :-(
-Daniel
> > + snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
> > fb_helper->dev->driver->name);
> >
> > }
> > --
> > 2.31.1
>
> --
> Ville Syrj?l?
> Intel

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2021-10-20 16:42:56

by Javier Martinez Canillas

[permalink] [raw]
Subject: Re: [PATCH] Revert "drm/fb-helper: improve DRM fbdev emulation device names"

Hello Daniel,

On 10/13/21 14:27, Daniel Vetter wrote:
>>>
>>> info->par = fb_helper;
>>> - snprintf(info->fix.id, sizeof(info->fix.id), "%s",
>
> Please add a comment here that drmfb is uapi because pm-utils matches
> against it ...
>

Sure, I'll do that and send a v2.

Best regards,
--
Javier Martinez Canillas
Linux Engineering
Red Hat