FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 07-25-2012, 10:37 AM
Andy Whitcroft
 
Default cpu frequency scaling autoloading

TLDR: It was recently commented that we have a policy to building cpufreq
drivers because they are not autoloadable, but that there had been some
fixes made to fix this. As part of that we took an action to investigate.
This upstream work is not yet complete but it does appear we can pull
out a fair number of these drivers to modules and let them autoload.

In v3.4-rc1 the commit below added support for loading cpufreq drivers
via either CPU features or PCI ids:

commit fa8031aefec0cf7ea6c2387c93610d99d9659aa2
Author: Andi Kleen <ak@linux.intel.com>
Date: Thu Jan 26 00:09:12 2012 +0100

cpufreq: Add support for x86 cpuinfo auto loading v4

And the following commit added autoloading for acpi-cpufreq:

commit 9061e0e16700ef228837e96987ff51794c956197
Author: Andi Kleen <ak@linux.intel.com>
Date: Thu Jan 26 00:09:08 2012 +0100

ACPI: Load acpi-cpufreq from processor driver automatically

On the face of it this would let us pull all of these drivers to modules.
However, looking at these commits they do not as yet allow autoloading
of the three speedstep-drivers. The comments in the Makefile also infer
that there are a couple of further constraints to be considered:

# Link order matters. K8 is preferred to ACPI because of firmware bugs
in early
# K8 systems. ACPI is preferred to all other hardware-specific drivers.
# speedstep-* is preferred over p4-clockmod.

From this I believe we would need to continue to build in powernow-k8 in
order to ensure it loads before acpi-cpufreq. Plus we have to build in the
speedstep-* drivers due to the lack of enabled autoload there. Finally
we we should build in acpi-cpufreq to maintain the described orderings.
The remainder may return to modules. Later should the speedstep-* drivers
be sorted out we could pull everything but the powernow-k8 drivers out.

In short currently we can move the following =m:
CONFIG_X86_POWERNOW_K6
CONFIG_X86_POWERNOW_K7
CONFIG_X86_LONGHAUL
CONFIG_X86_LONGRUN
CONFIG_X86_GX_SUSPMOD
CONFIG_X86_CPUFREQ_NFORCE2

I have pushed patches to move the above to modules to quantal. It would
be good to get some testing on these especially if you have any of the
specific hardware.

Full background data below.

-apw

obj-$(CONFIG_X86_POWERNOW_K8) += powernow-k8.o mperf.o
drivers/cpufreq/powernow-k8.c:MODULE_DEVICE_TABLE(x86cpu, powernow_k8_ids);
debian.master/config/config.common.ubuntu:CONFIG_X86_POWERNOW_K8=y

obj-$(CONFIG_X86_ACPI_CPUFREQ) += acpi-cpufreq.o mperf.o
autoloads on acpi table identifying specific control element
debian.master/config/config.common.ubuntu:CONFIG_X86_ACPI_CPUFREQ=y

obj-$(CONFIG_X86_PCC_CPUFREQ) += pcc-cpufreq.o
XXX NOT AUTOLOADABLE
debian.master/config/config.common.ubuntu:CONFIG_X86_PCC_CPUFREQ=m

obj-$(CONFIG_X86_POWERNOW_K6) += powernow-k6.o
drivers/cpufreq/powernow-k6.c:MODULE_DEVICE_TABLE(x86cpu, powernow_k6_ids);
debian.master/config/config.common.ubuntu:CONFIG_X86_POWERNOW_K6=y

obj-$(CONFIG_X86_POWERNOW_K7) += powernow-k7.o
drivers/cpufreq/powernow-k7.c:MODULE_DEVICE_TABLE(x86cpu, powernow_k7_cpuids);
debian.master/config/config.common.ubuntu:CONFIG_X86_POWERNOW_K7=y

obj-$(CONFIG_X86_LONGHAUL) += longhaul.o
drivers/cpufreq/longhaul.c:MODULE_DEVICE_TABLE(x86cpu, longhaul_id);
debian.master/config/config.common.ubuntu:CONFIG_X86_LONGHAUL=y

obj-$(CONFIG_X86_E_POWERSAVER) += e_powersaver.o
drivers/cpufreq/e_powersaver.c:MODULE_DEVICE_TABLE(x86cpu, eps_cpu_id);
debian.master/config/config.common.ubuntu:# CONFIG_X86_E_POWERSAVER is not set

obj-$(CONFIG_ELAN_CPUFREQ) += elanfreq.o
drivers/cpufreq/elanfreq.c:MODULE_DEVICE_TABLE(x86cpu, elan_id);
NO CONFIG MENTION -- not enableable

obj-$(CONFIG_SC520_CPUFREQ) += sc520_freq.o
drivers/cpufreq/sc520_freq.c:MODULE_DEVICE_TABLE(x86cpu, sc520_ids);
NO CONFIG MENTION -- not enableable

obj-$(CONFIG_X86_LONGRUN) += longrun.o
drivers/cpufreq/longrun.c:MODULE_DEVICE_TABLE(x86cpu, longrun_ids);
debian.master/config/config.common.ubuntu:CONFIG_X86_LONGRUN=y

obj-$(CONFIG_X86_GX_SUSPMOD) += gx-suspmod.o
drivers/cpufreq/gx-suspmod.c:MODULE_DEVICE_TABLE(pci, gx_chipset_tbl);
debian.master/config/config.common.ubuntu:CONFIG_X86_GX_SUSPMOD=y

obj-$(CONFIG_X86_SPEEDSTEP_ICH) += speedstep-ich.o
drivers/cpufreq/speedstep-ich.c:MODULE_DEVICE_TABLE(x86cpu, ss_smi_ids); /* XXX DISABLED */
debian.master/config/config.common.ubuntu:CONFIG_X86_SPEEDSTEP_ICH=y

obj-$(CONFIG_X86_SPEEDSTEP_SMI) += speedstep-smi.o
drivers/cpufreq/speedstep-smi.c:MODULE_DEVICE_TABLE(x86cpu, ss_smi_ids); /* XXX DISABLED */
debian.master/config/config.common.ubuntu:CONFIG_X86_SPEEDSTEP_SMI=y

obj-$(CONFIG_X86_SPEEDSTEP_CENTRINO) += speedstep-centrino.o
drivers/cpufreq/speedstep-centrino.c:MODULE_DEVICE_TABLE(x86cpu, centrino_ids); /* XXX DISABLED */
debian.master/config/config.common.ubuntu:CONFIG_X86_SPEEDSTEP_CENTRINO =y

obj-$(CONFIG_X86_P4_CLOCKMOD) += p4-clockmod.o
drivers/cpufreq/p4-clockmod.c: * Intentionally no MODULE_DEVICE_TABLE here: this driver should not
debian.master/config/config.common.ubuntu:CONFIG_X86_P4_CLOCKMOD=m

obj-$(CONFIG_X86_CPUFREQ_NFORCE2) += cpufreq-nforce2.o
drivers/cpufreq/cpufreq-nforce2.c:MODULE_DEVICE_TABLE(pci, nforce2_ids);
debian.master/config/config.common.ubuntu:CONFIG_X86_CPUFREQ_NFORCE2=y


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 07-25-2012, 03:29 PM
Herton Ronaldo Krzesinski
 
Default cpu frequency scaling autoloading

On Wed, Jul 25, 2012 at 11:37:07AM +0100, Andy Whitcroft wrote:
> TLDR: It was recently commented that we have a policy to building cpufreq
> drivers because they are not autoloadable, but that there had been some
> fixes made to fix this. As part of that we took an action to investigate.
> This upstream work is not yet complete but it does appear we can pull
> out a fair number of these drivers to modules and let them autoload.
>
> In v3.4-rc1 the commit below added support for loading cpufreq drivers
> via either CPU features or PCI ids:
>
> commit fa8031aefec0cf7ea6c2387c93610d99d9659aa2
> Author: Andi Kleen <ak@linux.intel.com>
> Date: Thu Jan 26 00:09:12 2012 +0100
>
> cpufreq: Add support for x86 cpuinfo auto loading v4
>
> And the following commit added autoloading for acpi-cpufreq:
>
> commit 9061e0e16700ef228837e96987ff51794c956197
> Author: Andi Kleen <ak@linux.intel.com>
> Date: Thu Jan 26 00:09:08 2012 +0100
>
> ACPI: Load acpi-cpufreq from processor driver automatically
>
> On the face of it this would let us pull all of these drivers to modules.
> However, looking at these commits they do not as yet allow autoloading
> of the three speedstep-drivers. The comments in the Makefile also infer
> that there are a couple of further constraints to be considered:
>
> # Link order matters. K8 is preferred to ACPI because of firmware bugs
> in early
> # K8 systems. ACPI is preferred to all other hardware-specific drivers.
> # speedstep-* is preferred over p4-clockmod.
>
> From this I believe we would need to continue to build in powernow-k8 in
> order to ensure it loads before acpi-cpufreq. Plus we have to build in the
> speedstep-* drivers due to the lack of enabled autoload there. Finally
> we we should build in acpi-cpufreq to maintain the described orderings.
> The remainder may return to modules. Later should the speedstep-* drivers
> be sorted out we could pull everything but the powernow-k8 drivers out.
>
> In short currently we can move the following =m:
> CONFIG_X86_POWERNOW_K6
> CONFIG_X86_POWERNOW_K7
> CONFIG_X86_LONGHAUL
> CONFIG_X86_LONGRUN
> CONFIG_X86_GX_SUSPMOD
> CONFIG_X86_CPUFREQ_NFORCE2

May be some of these could be disabled, since we only provide a PAE
enabled kernel now. I don't think we boot on K6s anymore, so for example
CONFIG_X86_POWERNOW_K6 could be disabled. Other is X86_GX_SUSPMOD, not
sure geode platform has any cpu with pae.

>
> I have pushed patches to move the above to modules to quantal. It would
> be good to get some testing on these especially if you have any of the
> specific hardware.
>
> Full background data below.
>
> -apw
>
> obj-$(CONFIG_X86_POWERNOW_K8) += powernow-k8.o mperf.o
> drivers/cpufreq/powernow-k8.c:MODULE_DEVICE_TABLE(x86cpu, powernow_k8_ids);
> debian.master/config/config.common.ubuntu:CONFIG_X86_POWERNOW_K8=y
>
> obj-$(CONFIG_X86_ACPI_CPUFREQ) += acpi-cpufreq.o mperf.o
> autoloads on acpi table identifying specific control element
> debian.master/config/config.common.ubuntu:CONFIG_X86_ACPI_CPUFREQ=y
>
> obj-$(CONFIG_X86_PCC_CPUFREQ) += pcc-cpufreq.o
> XXX NOT AUTOLOADABLE
> debian.master/config/config.common.ubuntu:CONFIG_X86_PCC_CPUFREQ=m
>
> obj-$(CONFIG_X86_POWERNOW_K6) += powernow-k6.o
> drivers/cpufreq/powernow-k6.c:MODULE_DEVICE_TABLE(x86cpu, powernow_k6_ids);
> debian.master/config/config.common.ubuntu:CONFIG_X86_POWERNOW_K6=y
>
> obj-$(CONFIG_X86_POWERNOW_K7) += powernow-k7.o
> drivers/cpufreq/powernow-k7.c:MODULE_DEVICE_TABLE(x86cpu, powernow_k7_cpuids);
> debian.master/config/config.common.ubuntu:CONFIG_X86_POWERNOW_K7=y
>
> obj-$(CONFIG_X86_LONGHAUL) += longhaul.o
> drivers/cpufreq/longhaul.c:MODULE_DEVICE_TABLE(x86cpu, longhaul_id);
> debian.master/config/config.common.ubuntu:CONFIG_X86_LONGHAUL=y
>
> obj-$(CONFIG_X86_E_POWERSAVER) += e_powersaver.o
> drivers/cpufreq/e_powersaver.c:MODULE_DEVICE_TABLE(x86cpu, eps_cpu_id);
> debian.master/config/config.common.ubuntu:# CONFIG_X86_E_POWERSAVER is not set
>
> obj-$(CONFIG_ELAN_CPUFREQ) += elanfreq.o
> drivers/cpufreq/elanfreq.c:MODULE_DEVICE_TABLE(x86cpu, elan_id);
> NO CONFIG MENTION -- not enableable
>
> obj-$(CONFIG_SC520_CPUFREQ) += sc520_freq.o
> drivers/cpufreq/sc520_freq.c:MODULE_DEVICE_TABLE(x86cpu, sc520_ids);
> NO CONFIG MENTION -- not enableable
>
> obj-$(CONFIG_X86_LONGRUN) += longrun.o
> drivers/cpufreq/longrun.c:MODULE_DEVICE_TABLE(x86cpu, longrun_ids);
> debian.master/config/config.common.ubuntu:CONFIG_X86_LONGRUN=y
>
> obj-$(CONFIG_X86_GX_SUSPMOD) += gx-suspmod.o
> drivers/cpufreq/gx-suspmod.c:MODULE_DEVICE_TABLE(pci, gx_chipset_tbl);
> debian.master/config/config.common.ubuntu:CONFIG_X86_GX_SUSPMOD=y
>
> obj-$(CONFIG_X86_SPEEDSTEP_ICH) += speedstep-ich.o
> drivers/cpufreq/speedstep-ich.c:MODULE_DEVICE_TABLE(x86cpu, ss_smi_ids); /* XXX DISABLED */
> debian.master/config/config.common.ubuntu:CONFIG_X86_SPEEDSTEP_ICH=y
>
> obj-$(CONFIG_X86_SPEEDSTEP_SMI) += speedstep-smi.o
> drivers/cpufreq/speedstep-smi.c:MODULE_DEVICE_TABLE(x86cpu, ss_smi_ids); /* XXX DISABLED */
> debian.master/config/config.common.ubuntu:CONFIG_X86_SPEEDSTEP_SMI=y
>
> obj-$(CONFIG_X86_SPEEDSTEP_CENTRINO) += speedstep-centrino.o
> drivers/cpufreq/speedstep-centrino.c:MODULE_DEVICE_TABLE(x86cpu, centrino_ids); /* XXX DISABLED */
> debian.master/config/config.common.ubuntu:CONFIG_X86_SPEEDSTEP_CENTRINO =y
>
> obj-$(CONFIG_X86_P4_CLOCKMOD) += p4-clockmod.o
> drivers/cpufreq/p4-clockmod.c: * Intentionally no MODULE_DEVICE_TABLE here: this driver should not
> debian.master/config/config.common.ubuntu:CONFIG_X86_P4_CLOCKMOD=m
>
> obj-$(CONFIG_X86_CPUFREQ_NFORCE2) += cpufreq-nforce2.o
> drivers/cpufreq/cpufreq-nforce2.c:MODULE_DEVICE_TABLE(pci, nforce2_ids);
> debian.master/config/config.common.ubuntu:CONFIG_X86_CPUFREQ_NFORCE2=y
>
>
> --
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>

--
[]'s
Herton

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 11:14 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org