RE: [PATCH] drivers/idle: make intel_idle.c driver more explicitly non-modular

From: Brown, Len
Date: Tue Apr 05 2016 - 01:53:52 EST




> -----Original Message-----
> From: rcochran@xxxxxxxxxxxxx [mailto:rcochran@xxxxxxxxxxxxx]
> Sent: Tuesday, April 05, 2016 12:30 AM
> To: Brown, Len
> Cc: Gortmaker, Paul (Wind River); linux-kernel@xxxxxxxxxxxxxxx; Len Brown;
> linux-pm@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] drivers/idle: make intel_idle.c driver more
> explicitly non-modular
>
> On Tue, Apr 05, 2016 at 04:20:47AM +0000, Brown, Len wrote:
> > The first idle driver to register with cpuidle wins.
> >
> > intel_idle should always get the opportunity
> > to probe and register before acpi_idle (processor_idle.c)
> >
> > When intel_idle was allowed to be modular,
> > some distros build their kernel and loaded modules
> > such that acpi_idle could probe first. In such
> > a kernel, intel_idle became dead code.
> >
> > As intel_idle is a small driver, the q uick fix
> > was to make it Y/N so that it would always probe
> > before acpi_idle, no matter how acpi_idle
> > is build and loaded.
> >
> > Yes, even though intel_idle is a tiny driver, I think
> > it would be good to be able to unload it when it doesn't probe.
>
> And that means fixing the race with acpi_idle, right?
>
> > Today, it appears that acpi_idle (acpi/processor_idle.c)
> > is compiled Y/N.
>
> So it, too, needs work?

"needs" is somewhat subjective.
Some may argue that this driver is so small,
that an effort to save memory might be more effectively
directed elsewhere. But if the goal is to save the memory
consumed by this driver when the driver doesn't probe,
then yes, it would have to be made modular.

I don't remember what ACPI dependency made it non-modular.
ACPI has some tricky initialization ordering issues
that are BIOS dependent, and sometimes out of our control.

> > No, I do not believe that cpuidle should bother
> > supporting changing idle drivers at run-time.
>
> Huh? But you just said, "it would be good to be able to unload it
> when it doesn't probe."

being able to switch the registered driver at run-time
does not require the driver to be modular.

cheers,
-Len