[PATCH] drm/lima: Mark simple_ondemand governor as softdep
Qiang Yu
yuq825 at gmail.com
Tue Jun 18 08:01:26 UTC 2024
On Tue, Jun 18, 2024 at 12:33 PM Qiang Yu <yuq825 at gmail.com> wrote:
>
> I see the problem that initramfs need to build a module dependency chain,
> but lima does not call any symbol from simpleondemand governor module.
>
> softdep module seems to be optional while our dependency is hard one,
> can we just add MODULE_INFO(depends, _depends), or create a new
> macro called MODULE_DEPENDS()?
>
This doesn't work on my side because depmod generates modules.dep
by symbol lookup instead of modinfo section. So softdep may be our only
choice to add module dependency manually. I can accept the softdep
first, then make PM optional later.
> On Tue, Jun 18, 2024 at 4:22 AM Dragan Simic <dsimic at manjaro.org> wrote:
> >
> > Lima DRM driver uses devfreq to perform DVFS, while using simple_ondemand
> > devfreq governor by default. This causes driver initialization to fail on
> > boot when simple_ondemand governor isn't built into the kernel statically,
> > as a result of the missing module dependency and, consequently, the required
> > governor module not being included in the initial ramdisk. Thus, let's mark
> > simple_ondemand governor as a softdep for Lima, to have its kernel module
> > included in the initial ramdisk.
> >
> > This is a rather longstanding issue that has forced distributions to build
> > devfreq governors statically into their kernels, [1][2] or may have forced
> > some users to introduce unnecessary workarounds.
> >
> > Having simple_ondemand marked as a softdep for Lima may not resolve this
> > issue for all Linux distributions. In particular, it will remain unresolved
> > for the distributions whose utilities for the initial ramdisk generation do
> > not handle the available softdep information [3] properly yet. However, some
> > Linux distributions already handle softdeps properly while generating their
> > initial ramdisks, [4] and this is a prerequisite step in the right direction
> > for the distributions that don't handle them properly yet.
> >
> > [1] https://gitlab.manjaro.org/manjaro-arm/packages/core/linux-pinephone/-/blob/6.7-megi/config?ref_type=heads#L5749
> > [2] https://gitlab.com/postmarketOS/pmaports/-/blob/7f64e287e7732c9eaa029653e73ca3d4ba1c8598/main/linux-postmarketos-allwinner/config-postmarketos-allwinner.aarch64#L4654
> > [3] https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/?id=49d8e0b59052999de577ab732b719cfbeb89504d
> > [4] https://github.com/archlinux/mkinitcpio/commit/97ac4d37aae084a050be512f6d8f4489054668ad
> >
> > Cc: Philip Muller <philm at manjaro.org>
> > Cc: Oliver Smith <ollieparanoid at postmarketos.org>
> > Cc: Daniel Smith <danct12 at disroot.org>
> > Cc: stable at vger.kernel.org
> > Fixes: 1996970773a3 ("drm/lima: Add optional devfreq and cooling device support")
> > Signed-off-by: Dragan Simic <dsimic at manjaro.org>
> > ---
> > drivers/gpu/drm/lima/lima_drv.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/lima/lima_drv.c b/drivers/gpu/drm/lima/lima_drv.c
> > index 739c865b556f..10bce18b7c31 100644
> > --- a/drivers/gpu/drm/lima/lima_drv.c
> > +++ b/drivers/gpu/drm/lima/lima_drv.c
> > @@ -501,3 +501,4 @@ module_platform_driver(lima_platform_driver);
> > MODULE_AUTHOR("Lima Project Developers");
> > MODULE_DESCRIPTION("Lima DRM Driver");
> > MODULE_LICENSE("GPL v2");
> > +MODULE_SOFTDEP("pre: governor_simpleondemand");
More information about the dri-devel
mailing list