from . import base from .decorators import * import os import errno import tuned.logs from tuned.consts import ACPI_DIR log = tuned.logs.get() class ACPIPlugin(base.Plugin): """ `acpi`:: Configures the ACPI driver. + The only currently supported option is [option]`platform_profile`, which sets the ACPI platform profile sysfs attribute, a generic power/performance preference API for other drivers. Multiple profiles can be specified, separated by `|`. The first available profile is selected. + -- .Selecting a platform profile ==== ---- [acpi] platform_profile=balanced|low-power ---- Using this option, *TuneD* will try to set the platform profile to `balanced`. If that fails, it will try to set it to `low-power`. ==== -- """ def __init__(self, *args, **kwargs): super(ACPIPlugin, self).__init__(*args, **kwargs) @classmethod def _get_config_options(cls): return {"platform_profile": None} def _instance_init(self, instance): instance._has_static_tuning = True instance._has_dynamic_tuning = False def _instance_cleanup(self, instance): pass @classmethod def _platform_profile_choices_path(cls): return os.path.join(ACPI_DIR, "platform_profile_choices") @classmethod def _platform_profile_path(cls): return os.path.join(ACPI_DIR, "platform_profile") @command_set("platform_profile") def _set_platform_profile(self, profiles, sim, remove): if not os.path.isfile(self._platform_profile_path()): log.debug("ACPI platform_profile is not supported on this system") return None profiles = [profile.strip() for profile in profiles.split('|')] avail_profiles = set(self._cmd.read_file(self._platform_profile_choices_path()).split()) for profile in profiles: if profile in avail_profiles: if not sim: log.info("Setting platform_profile to '%s'" % profile) self._cmd.write_to_file(self._platform_profile_path(), profile, \ no_error=[errno.ENOENT] if remove else False) return profile log.warn("Requested platform_profile '%s' unavailable" % profile) log.error("Failed to set platform_profile. Is the value in the profile correct?") return None @command_get("platform_profile") def _get_platform_profile(self, ignore_missing=False): if not os.path.isfile(self._platform_profile_path()): log.debug("ACPI platform_profile is not supported on this system") return None return self._cmd.read_file(self._platform_profile_path()).strip()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
instance | Folder | 0755 |
|
|
__init__.py | File | 49 B | 0644 |
|
base.py | File | 21.89 KB | 0644 |
|
decorators.py | File | 983 B | 0644 |
|
exceptions.py | File | 99 B | 0644 |
|
hotplug.py | File | 3.84 KB | 0644 |
|
plugin_acpi.py | File | 2.39 KB | 0644 |
|
plugin_audio.py | File | 3.13 KB | 0644 |
|
plugin_bootloader.py | File | 25.31 KB | 0644 |
|
plugin_cpu.py | File | 27.56 KB | 0644 |
|
plugin_disk.py | File | 16.46 KB | 0644 |
|
plugin_eeepc_she.py | File | 2.88 KB | 0644 |
|
plugin_irqbalance.py | File | 3.47 KB | 0644 |
|
plugin_modules.py | File | 4.81 KB | 0644 |
|
plugin_mounts.py | File | 5.45 KB | 0644 |
|
plugin_net.py | File | 22.71 KB | 0644 |
|
plugin_rtentsk.py | File | 1.08 KB | 0644 |
|
plugin_scheduler.py | File | 54.94 KB | 0644 |
|
plugin_script.py | File | 3.76 KB | 0644 |
|
plugin_scsi_host.py | File | 3.08 KB | 0644 |
|
plugin_selinux.py | File | 2.27 KB | 0644 |
|
plugin_service.py | File | 10.47 KB | 0644 |
|
plugin_sysctl.py | File | 6.74 KB | 0644 |
|
plugin_sysfs.py | File | 2.63 KB | 0644 |
|
plugin_systemd.py | File | 5.3 KB | 0644 |
|
plugin_uncore.py | File | 4.61 KB | 0644 |
|
plugin_usb.py | File | 1.97 KB | 0644 |
|
plugin_video.py | File | 3.72 KB | 0644 |
|
plugin_vm.py | File | 3.48 KB | 0644 |
|
repository.py | File | 1.49 KB | 0644 |
|