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 (11431B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2config SUSPEND
      3	bool "Suspend to RAM and standby"
      4	depends on ARCH_SUSPEND_POSSIBLE
      5	default y
      6	help
      7	  Allow the system to enter sleep states in which main memory is
      8	  powered and thus its contents are preserved, such as the
      9	  suspend-to-RAM state (e.g. the ACPI S3 state).
     10
     11config SUSPEND_FREEZER
     12	bool "Enable freezer for suspend to RAM/standby" \
     13		if ARCH_WANTS_FREEZER_CONTROL || BROKEN
     14	depends on SUSPEND
     15	default y
     16	help
     17	  This allows you to turn off the freezer for suspend. If this is
     18	  done, no tasks are frozen for suspend to RAM/standby.
     19
     20	  Turning OFF this setting is NOT recommended! If in doubt, say Y.
     21
     22config SUSPEND_SKIP_SYNC
     23	bool "Skip kernel's sys_sync() on suspend to RAM/standby"
     24	depends on SUSPEND
     25	depends on EXPERT
     26	help
     27	  Skip the kernel sys_sync() before freezing user processes.
     28	  Some systems prefer not to pay this cost on every invocation
     29	  of suspend, or they are content with invoking sync() from
     30	  user-space before invoking suspend.  There's a run-time switch
     31	  at '/sys/power/sync_on_suspend' to configure this behaviour.
     32	  This setting changes the default for the run-tim switch. Say Y
     33	  to change the default to disable the kernel sys_sync().
     34
     35config HIBERNATE_CALLBACKS
     36	bool
     37
     38config HIBERNATION
     39	bool "Hibernation (aka 'suspend to disk')"
     40	depends on SWAP && ARCH_HIBERNATION_POSSIBLE
     41	select HIBERNATE_CALLBACKS
     42	select LZO_COMPRESS
     43	select LZO_DECOMPRESS
     44	select CRC32
     45	help
     46	  Enable the suspend to disk (STD) functionality, which is usually
     47	  called "hibernation" in user interfaces.  STD checkpoints the
     48	  system and powers it off; and restores that checkpoint on reboot.
     49
     50	  You can suspend your machine with 'echo disk > /sys/power/state'
     51	  after placing resume=/dev/swappartition on the kernel command line
     52	  in your bootloader's configuration file.
     53
     54	  Alternatively, you can use the additional userland tools available
     55	  from <http://suspend.sf.net>.
     56
     57	  In principle it does not require ACPI or APM, although for example
     58	  ACPI will be used for the final steps when it is available.  One
     59	  of the reasons to use software suspend is that the firmware hooks
     60	  for suspend states like suspend-to-RAM (STR) often don't work very
     61	  well with Linux.
     62
     63	  It creates an image which is saved in your active swap. Upon the next
     64	  boot, pass the 'resume=/dev/swappartition' argument to the kernel to
     65	  have it detect the saved image, restore memory state from it, and
     66	  continue to run as before. If you do not want the previous state to
     67	  be reloaded, then use the 'noresume' kernel command line argument.
     68	  Note, however, that fsck will be run on your filesystems and you will
     69	  need to run mkswap against the swap partition used for the suspend.
     70
     71	  It also works with swap files to a limited extent (for details see
     72	  <file:Documentation/power/swsusp-and-swap-files.rst>).
     73
     74	  Right now you may boot without resuming and resume later but in the
     75	  meantime you cannot use the swap partition(s)/file(s) involved in
     76	  suspending.  Also in this case you must not use the filesystems
     77	  that were mounted before the suspend.  In particular, you MUST NOT
     78	  MOUNT any journaled filesystems mounted before the suspend or they
     79	  will get corrupted in a nasty way.
     80
     81	  For more information take a look at <file:Documentation/power/swsusp.rst>.
     82
     83config HIBERNATION_SNAPSHOT_DEV
     84	bool "Userspace snapshot device"
     85	depends on HIBERNATION
     86	default y
     87	help
     88	  Device used by the uswsusp tools.
     89
     90	  Say N if no snapshotting from userspace is needed, this also
     91	  reduces the attack surface of the kernel.
     92
     93	  If in doubt, say Y.
     94
     95config PM_STD_PARTITION
     96	string "Default resume partition"
     97	depends on HIBERNATION
     98	default ""
     99	help
    100	  The default resume partition is the partition that the suspend-
    101	  to-disk implementation will look for a suspended disk image.
    102
    103	  The partition specified here will be different for almost every user.
    104	  It should be a valid swap partition (at least for now) that is turned
    105	  on before suspending.
    106
    107	  The partition specified can be overridden by specifying:
    108
    109		resume=/dev/<other device>
    110
    111	  which will set the resume partition to the device specified.
    112
    113	  Note there is currently not a way to specify which device to save the
    114	  suspended image to. It will simply pick the first available swap
    115	  device.
    116
    117config PM_SLEEP
    118	def_bool y
    119	depends on SUSPEND || HIBERNATE_CALLBACKS
    120	select PM
    121	select SRCU
    122
    123config PM_SLEEP_SMP
    124	def_bool y
    125	depends on SMP
    126	depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE
    127	depends on PM_SLEEP
    128	select HOTPLUG_CPU
    129
    130config PM_SLEEP_SMP_NONZERO_CPU
    131	def_bool y
    132	depends on PM_SLEEP_SMP
    133	depends on ARCH_SUSPEND_NONZERO_CPU
    134	help
    135	If an arch can suspend (for suspend, hibernate, kexec, etc) on a
    136	non-zero numbered CPU, it may define ARCH_SUSPEND_NONZERO_CPU. This
    137	will allow nohz_full mask to include CPU0.
    138
    139config PM_AUTOSLEEP
    140	bool "Opportunistic sleep"
    141	depends on PM_SLEEP
    142	help
    143	Allow the kernel to trigger a system transition into a global sleep
    144	state automatically whenever there are no active wakeup sources.
    145
    146config PM_WAKELOCKS
    147	bool "User space wakeup sources interface"
    148	depends on PM_SLEEP
    149	help
    150	Allow user space to create, activate and deactivate wakeup source
    151	objects with the help of a sysfs-based interface.
    152
    153config PM_WAKELOCKS_LIMIT
    154	int "Maximum number of user space wakeup sources (0 = no limit)"
    155	range 0 100000
    156	default 100
    157	depends on PM_WAKELOCKS
    158
    159config PM_WAKELOCKS_GC
    160	bool "Garbage collector for user space wakeup sources"
    161	depends on PM_WAKELOCKS
    162	default y
    163
    164config PM
    165	bool "Device power management core functionality"
    166	help
    167	  Enable functionality allowing I/O devices to be put into energy-saving
    168	  (low power) states, for example after a specified period of inactivity
    169	  (autosuspended), and woken up in response to a hardware-generated
    170	  wake-up event or a driver's request.
    171
    172	  Hardware support is generally required for this functionality to work
    173	  and the bus type drivers of the buses the devices are on are
    174	  responsible for the actual handling of device suspend requests and
    175	  wake-up events.
    176
    177config PM_DEBUG
    178	bool "Power Management Debug Support"
    179	depends on PM
    180	help
    181	This option enables various debugging support in the Power Management
    182	code. This is helpful when debugging and reporting PM bugs, like
    183	suspend support.
    184
    185config PM_ADVANCED_DEBUG
    186	bool "Extra PM attributes in sysfs for low-level debugging/testing"
    187	depends on PM_DEBUG
    188	help
    189	Add extra sysfs attributes allowing one to access some Power Management
    190	fields of device objects from user space.  If you are not a kernel
    191	developer interested in debugging/testing Power Management, say "no".
    192
    193config PM_TEST_SUSPEND
    194	bool "Test suspend/resume and wakealarm during bootup"
    195	depends on SUSPEND && PM_DEBUG && RTC_CLASS=y
    196	help
    197	This option will let you suspend your machine during bootup, and
    198	make it wake up a few seconds later using an RTC wakeup alarm.
    199	Enable this with a kernel parameter like "test_suspend=mem".
    200
    201	You probably want to have your system's RTC driver statically
    202	linked, ensuring that it's available when this test runs.
    203
    204config PM_SLEEP_DEBUG
    205	def_bool y
    206	depends on PM_DEBUG && PM_SLEEP
    207
    208config DPM_WATCHDOG
    209	bool "Device suspend/resume watchdog"
    210	depends on PM_DEBUG && PSTORE && EXPERT
    211	help
    212	  Sets up a watchdog timer to capture drivers that are
    213	  locked up attempting to suspend/resume a device.
    214	  A detected lockup causes system panic with message
    215	  captured in pstore device for inspection in subsequent
    216	  boot session.
    217
    218config DPM_WATCHDOG_TIMEOUT
    219	int "Watchdog timeout in seconds"
    220	range 1 120
    221	default 120
    222	depends on DPM_WATCHDOG
    223
    224config PM_TRACE
    225	bool
    226	help
    227	  This enables code to save the last PM event point across
    228	  reboot. The architecture needs to support this, x86 for
    229	  example does by saving things in the RTC, see below.
    230
    231	  The architecture specific code must provide the extern
    232	  functions from <linux/resume-trace.h> as well as the
    233	  <asm/resume-trace.h> header with a TRACE_RESUME() macro.
    234
    235	  The way the information is presented is architecture-
    236	  dependent, x86 will print the information during a
    237	  late_initcall.
    238
    239config PM_TRACE_RTC
    240	bool "Suspend/resume event tracing"
    241	depends on PM_SLEEP_DEBUG
    242	depends on X86
    243	select PM_TRACE
    244	help
    245	This enables some cheesy code to save the last PM event point in the
    246	RTC across reboots, so that you can debug a machine that just hangs
    247	during suspend (or more commonly, during resume).
    248
    249	To use this debugging feature you should attempt to suspend the
    250	machine, reboot it and then run
    251
    252		dmesg -s 1000000 | grep 'hash matches'
    253
    254	CAUTION: this option will cause your machine's real-time clock to be
    255	set to an invalid time after a resume.
    256
    257config APM_EMULATION
    258	tristate "Advanced Power Management Emulation"
    259	depends on SYS_SUPPORTS_APM_EMULATION
    260	help
    261	  APM is a BIOS specification for saving power using several different
    262	  techniques. This is mostly useful for battery powered laptops with
    263	  APM compliant BIOSes. If you say Y here, the system time will be
    264	  reset after a RESUME operation, the /proc/apm device will provide
    265	  battery status information, and user-space programs will receive
    266	  notification of APM "events" (e.g. battery status change).
    267
    268	  In order to use APM, you will need supporting software. For location
    269	  and more information, read <file:Documentation/power/apm-acpi.rst>
    270	  and the Battery Powered Linux mini-HOWTO, available from
    271	  <http://www.tldp.org/docs.html#howto>.
    272
    273	  This driver does not spin down disk drives (see the hdparm(8)
    274	  manpage ("man 8 hdparm") for that), and it doesn't turn off
    275	  VESA-compliant "green" monitors.
    276
    277	  Generally, if you don't have a battery in your machine, there isn't
    278	  much point in using this driver and you should say N. If you get
    279	  random kernel OOPSes or reboots that don't seem to be related to
    280	  anything, try disabling/enabling this option (or disabling/enabling
    281	  APM in your BIOS).
    282
    283config PM_CLK
    284	def_bool y
    285	depends on PM && HAVE_CLK
    286
    287config PM_GENERIC_DOMAINS
    288	bool
    289	depends on PM
    290
    291config WQ_POWER_EFFICIENT_DEFAULT
    292	bool "Enable workqueue power-efficient mode by default"
    293	depends on PM
    294	help
    295	  Per-cpu workqueues are generally preferred because they show
    296	  better performance thanks to cache locality; unfortunately,
    297	  per-cpu workqueues tend to be more power hungry than unbound
    298	  workqueues.
    299
    300	  Enabling workqueue.power_efficient kernel parameter makes the
    301	  per-cpu workqueues which were observed to contribute
    302	  significantly to power consumption unbound, leading to measurably
    303	  lower power usage at the cost of small performance overhead.
    304
    305	  This config option determines whether workqueue.power_efficient
    306	  is enabled by default.
    307
    308	  If in doubt, say N.
    309
    310config PM_GENERIC_DOMAINS_SLEEP
    311	def_bool y
    312	depends on PM_SLEEP && PM_GENERIC_DOMAINS
    313
    314config PM_GENERIC_DOMAINS_OF
    315	def_bool y
    316	depends on PM_GENERIC_DOMAINS && OF
    317
    318config CPU_PM
    319	bool
    320
    321config ENERGY_MODEL
    322	bool "Energy Model for devices with DVFS (CPUs, GPUs, etc)"
    323	depends on SMP
    324	depends on CPU_FREQ
    325	help
    326	  Several subsystems (thermal and/or the task scheduler for example)
    327	  can leverage information about the energy consumed by devices to
    328	  make smarter decisions. This config option enables the framework
    329	  from which subsystems can access the energy models.
    330
    331	  The exact usage of the energy model is subsystem-dependent.
    332
    333	  If in doubt, say N.