cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (9895B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2menu "CPU Frequency scaling"
      3
      4config CPU_FREQ
      5	bool "CPU Frequency scaling"
      6	select SRCU
      7	help
      8	  CPU Frequency scaling allows you to change the clock speed of 
      9	  CPUs on the fly. This is a nice method to save power, because 
     10	  the lower the CPU clock speed, the less power the CPU consumes.
     11
     12	  Note that this driver doesn't automatically change the CPU
     13	  clock speed, you need to either enable a dynamic cpufreq governor
     14	  (see below) after boot, or use a userspace tool.
     15
     16	  For details, take a look at
     17	  <file:Documentation/admin-guide/pm/cpufreq.rst>.
     18
     19	  If in doubt, say N.
     20
     21if CPU_FREQ
     22
     23config CPU_FREQ_GOV_ATTR_SET
     24	bool
     25
     26config CPU_FREQ_GOV_COMMON
     27	select CPU_FREQ_GOV_ATTR_SET
     28	select IRQ_WORK
     29	bool
     30
     31config CPU_FREQ_STAT
     32	bool "CPU frequency transition statistics"
     33	help
     34	  Export CPU frequency statistics information through sysfs.
     35
     36	  If in doubt, say N.
     37
     38choice
     39	prompt "Default CPUFreq governor"
     40	default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
     41	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if ARM64 || ARM
     42	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if X86_INTEL_PSTATE && SMP
     43	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
     44	help
     45	  This option sets which CPUFreq governor shall be loaded at
     46	  startup. If in doubt, use the default setting.
     47
     48config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
     49	bool "performance"
     50	select CPU_FREQ_GOV_PERFORMANCE
     51	help
     52	  Use the CPUFreq governor 'performance' as default. This sets
     53	  the frequency statically to the highest frequency supported by
     54	  the CPU.
     55
     56config CPU_FREQ_DEFAULT_GOV_POWERSAVE
     57	bool "powersave"
     58	select CPU_FREQ_GOV_POWERSAVE
     59	help
     60	  Use the CPUFreq governor 'powersave' as default. This sets
     61	  the frequency statically to the lowest frequency supported by
     62	  the CPU.
     63
     64config CPU_FREQ_DEFAULT_GOV_USERSPACE
     65	bool "userspace"
     66	select CPU_FREQ_GOV_USERSPACE
     67	help
     68	  Use the CPUFreq governor 'userspace' as default. This allows
     69	  you to set the CPU frequency manually or when a userspace 
     70	  program shall be able to set the CPU dynamically without having
     71	  to enable the userspace governor manually.
     72
     73config CPU_FREQ_DEFAULT_GOV_ONDEMAND
     74	bool "ondemand"
     75	depends on !(X86_INTEL_PSTATE && SMP)
     76	select CPU_FREQ_GOV_ONDEMAND
     77	select CPU_FREQ_GOV_PERFORMANCE
     78	help
     79	  Use the CPUFreq governor 'ondemand' as default. This allows
     80	  you to get a full dynamic frequency capable system by simply
     81	  loading your cpufreq low-level hardware driver.
     82	  Be aware that not all cpufreq drivers support the ondemand
     83	  governor. If unsure have a look at the help section of the
     84	  driver. Fallback governor will be the performance governor.
     85
     86config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
     87	bool "conservative"
     88	depends on !(X86_INTEL_PSTATE && SMP)
     89	select CPU_FREQ_GOV_CONSERVATIVE
     90	select CPU_FREQ_GOV_PERFORMANCE
     91	help
     92	  Use the CPUFreq governor 'conservative' as default. This allows
     93	  you to get a full dynamic frequency capable system by simply
     94	  loading your cpufreq low-level hardware driver.
     95	  Be aware that not all cpufreq drivers support the conservative
     96	  governor. If unsure have a look at the help section of the
     97	  driver. Fallback governor will be the performance governor.
     98
     99config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
    100	bool "schedutil"
    101	depends on SMP
    102	select CPU_FREQ_GOV_SCHEDUTIL
    103	select CPU_FREQ_GOV_PERFORMANCE
    104	help
    105	  Use the 'schedutil' CPUFreq governor by default. If unsure,
    106	  have a look at the help section of that governor. The fallback
    107	  governor will be 'performance'.
    108
    109endchoice
    110
    111config CPU_FREQ_GOV_PERFORMANCE
    112	tristate "'performance' governor"
    113	help
    114	  This cpufreq governor sets the frequency statically to the
    115	  highest available CPU frequency.
    116
    117	  To compile this driver as a module, choose M here: the
    118	  module will be called cpufreq_performance.
    119
    120	  If in doubt, say Y.
    121
    122config CPU_FREQ_GOV_POWERSAVE
    123	tristate "'powersave' governor"
    124	help
    125	  This cpufreq governor sets the frequency statically to the
    126	  lowest available CPU frequency.
    127
    128	  To compile this driver as a module, choose M here: the
    129	  module will be called cpufreq_powersave.
    130
    131	  If in doubt, say Y.
    132
    133config CPU_FREQ_GOV_USERSPACE
    134	tristate "'userspace' governor for userspace frequency scaling"
    135	help
    136	  Enable this cpufreq governor when you either want to set the
    137	  CPU frequency manually or when a userspace program shall
    138	  be able to set the CPU dynamically, like on LART 
    139	  <http://www.lartmaker.nl/>.
    140
    141	  To compile this driver as a module, choose M here: the
    142	  module will be called cpufreq_userspace.
    143
    144	  If in doubt, say Y.
    145
    146config CPU_FREQ_GOV_ONDEMAND
    147	tristate "'ondemand' cpufreq policy governor"
    148	select CPU_FREQ_GOV_COMMON
    149	help
    150	  'ondemand' - This driver adds a dynamic cpufreq policy governor.
    151	  The governor does a periodic polling and 
    152	  changes frequency based on the CPU utilization.
    153	  The support for this governor depends on CPU capability to
    154	  do fast frequency switching (i.e, very low latency frequency
    155	  transitions). 
    156
    157	  To compile this driver as a module, choose M here: the
    158	  module will be called cpufreq_ondemand.
    159
    160	  For details, take a look at
    161	  <file:Documentation/admin-guide/pm/cpufreq.rst>.
    162
    163	  If in doubt, say N.
    164
    165config CPU_FREQ_GOV_CONSERVATIVE
    166	tristate "'conservative' cpufreq governor"
    167	depends on CPU_FREQ
    168	select CPU_FREQ_GOV_COMMON
    169	help
    170	  'conservative' - this driver is rather similar to the 'ondemand'
    171	  governor both in its source code and its purpose, the difference is
    172	  its optimisation for better suitability in a battery powered
    173	  environment.  The frequency is gracefully increased and decreased
    174	  rather than jumping to 100% when speed is required.
    175
    176	  If you have a desktop machine then you should really be considering
    177	  the 'ondemand' governor instead, however if you are using a laptop,
    178	  PDA or even an AMD64 based computer (due to the unacceptable
    179	  step-by-step latency issues between the minimum and maximum frequency
    180	  transitions in the CPU) you will probably want to use this governor.
    181
    182	  To compile this driver as a module, choose M here: the
    183	  module will be called cpufreq_conservative.
    184
    185	  For details, take a look at
    186	  <file:Documentation/admin-guide/pm/cpufreq.rst>.
    187
    188	  If in doubt, say N.
    189
    190config CPU_FREQ_GOV_SCHEDUTIL
    191	bool "'schedutil' cpufreq policy governor"
    192	depends on CPU_FREQ && SMP
    193	select CPU_FREQ_GOV_ATTR_SET
    194	select IRQ_WORK
    195	help
    196	  This governor makes decisions based on the utilization data provided
    197	  by the scheduler.  It sets the CPU frequency to be proportional to
    198	  the utilization/capacity ratio coming from the scheduler.  If the
    199	  utilization is frequency-invariant, the new frequency is also
    200	  proportional to the maximum available frequency.  If that is not the
    201	  case, it is proportional to the current frequency of the CPU.  The
    202	  frequency tipping point is at utilization/capacity equal to 80% in
    203	  both cases.
    204
    205	  If in doubt, say N.
    206
    207comment "CPU frequency scaling drivers"
    208
    209config CPUFREQ_DT
    210	tristate "Generic DT based cpufreq driver"
    211	depends on HAVE_CLK && OF
    212	select CPUFREQ_DT_PLATDEV
    213	select PM_OPP
    214	help
    215	  This adds a generic DT based cpufreq driver for frequency management.
    216	  It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
    217	  systems.
    218
    219	  If in doubt, say N.
    220
    221config CPUFREQ_DT_PLATDEV
    222	bool
    223	help
    224	  This adds a generic DT based cpufreq platdev driver for frequency
    225	  management.  This creates a 'cpufreq-dt' platform device, on the
    226	  supported platforms.
    227
    228	  If in doubt, say N.
    229
    230if X86
    231source "drivers/cpufreq/Kconfig.x86"
    232endif
    233
    234if ARM || ARM64
    235source "drivers/cpufreq/Kconfig.arm"
    236endif
    237
    238if PPC32 || PPC64
    239source "drivers/cpufreq/Kconfig.powerpc"
    240endif
    241
    242if IA64
    243config IA64_ACPI_CPUFREQ
    244	tristate "ACPI Processor P-States driver"
    245	depends on ACPI_PROCESSOR
    246	help
    247	This driver adds a CPUFreq driver which utilizes the ACPI
    248	Processor Performance States.
    249
    250	If in doubt, say N.
    251endif
    252
    253if MIPS
    254config BMIPS_CPUFREQ
    255	tristate "BMIPS CPUfreq Driver"
    256	help
    257	  This option adds a CPUfreq driver for BMIPS processors with
    258	  support for configurable CPU frequency.
    259
    260	  For now, BMIPS5 chips are supported (such as the Broadcom 7425).
    261
    262	  If in doubt, say N.
    263
    264config LOONGSON2_CPUFREQ
    265	tristate "Loongson2 CPUFreq Driver"
    266	depends on LEMOTE_MACH2F
    267	help
    268	  This option adds a CPUFreq driver for loongson processors which
    269	  support software configurable cpu frequency.
    270
    271	  Loongson2F and it's successors support this feature.
    272
    273	  If in doubt, say N.
    274
    275config LOONGSON1_CPUFREQ
    276	tristate "Loongson1 CPUFreq Driver"
    277	depends on LOONGSON1_LS1B
    278	help
    279	  This option adds a CPUFreq driver for loongson1 processors which
    280	  support software configurable cpu frequency.
    281
    282	  If in doubt, say N.
    283endif
    284
    285if SPARC64
    286config SPARC_US3_CPUFREQ
    287	tristate "UltraSPARC-III CPU Frequency driver"
    288	help
    289	  This adds the CPUFreq driver for UltraSPARC-III processors.
    290
    291	  If in doubt, say N.
    292
    293config SPARC_US2E_CPUFREQ
    294	tristate "UltraSPARC-IIe CPU Frequency driver"
    295	help
    296	  This adds the CPUFreq driver for UltraSPARC-IIe processors.
    297
    298	  If in doubt, say N.
    299endif
    300
    301if SUPERH
    302config SH_CPU_FREQ
    303	tristate "SuperH CPU Frequency driver"
    304	help
    305	  This adds the cpufreq driver for SuperH. Any CPU that supports
    306	  clock rate rounding through the clock framework can use this
    307	  driver. While it will make the kernel slightly larger, this is
    308	  harmless for CPUs that don't support rate rounding. The driver
    309	  will also generate a notice in the boot log before disabling
    310	  itself if the CPU in question is not capable of rate rounding.
    311
    312	  If unsure, say N.
    313endif
    314
    315config QORIQ_CPUFREQ
    316	tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
    317	depends on OF && COMMON_CLK
    318	depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
    319	select CLK_QORIQ
    320	help
    321	  This adds the CPUFreq driver support for Freescale QorIQ SoCs
    322	  which are capable of changing the CPU's frequency dynamically.
    323
    324endif
    325endmenu