404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.227.209.89: ~ $
from . import base
from . import exceptions
import tuned.logs
from tuned.utils.commands import commands
import os

log = tuned.logs.get()

class EeePCSHEPlugin(base.Plugin):
	"""
	`eeepc_she`::
	
	Dynamically sets the front-side bus (FSB) speed according to the
	CPU load. This feature can be found on some netbooks and is also
	known as the Asus Super Hybrid Engine. If the CPU load is lower or
	equal to the value specified by the [option]`load_threshold_powersave`
	option, the plug-in sets the FSB speed to the value specified by the
	[option]`she_powersave` option. If the CPU load is higher or
	equal to the value specified by the [option]`load_threshold_normal`
	option, it sets the FSB speed to the value specified by the
	[option]`she_normal` option. Static tuning is not supported and the
	plug-in is transparently disabled if the hardware support for this
	feature is not detected.
	
	NOTE: For details about the FSB frequencies and corresponding values, see
	link:https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-platform-eeepc-laptop[the kernel documentation].
	The provided defaults should work for most users.
	"""

	def __init__(self, *args, **kwargs):
		self._cmd = commands()
		self._control_file = "/sys/devices/platform/eeepc/cpufv"
		if not os.path.isfile(self._control_file):
			self._control_file = "/sys/devices/platform/eeepc-wmi/cpufv"
		if not os.path.isfile(self._control_file):
			raise exceptions.NotSupportedPluginException("Plugin is not supported on your hardware.")
		super(EeePCSHEPlugin, self).__init__(*args, **kwargs)

	@classmethod
	def _get_config_options(self):
		return {
			"load_threshold_normal"    : 0.6,
			"load_threshold_powersave" : 0.4,
			"she_powersave"            : 2,
			"she_normal"               : 1,
		}

	def _instance_init(self, instance):
		instance._has_static_tuning = False
		instance._has_dynamic_tuning = True
		instance._she_mode = None
		instance._load_monitor = self._monitors_repository.create("load", None)

	def _instance_cleanup(self, instance):
		if instance._load_monitor is not None:
			self._monitors_repository.delete(instance._load_monitor)
			instance._load_monitor = None

	def _instance_update_dynamic(self, instance, device):
		load = instance._load_monitor.get_load()["system"]
		if load <= instance.options["load_threshold_powersave"]:
			self._set_she_mode(instance, "powersave")
		elif load >= instance.options["load_threshold_normal"]:
			self._set_she_mode(instance, "normal")

	def _instance_unapply_dynamic(self, instance, device):
		# FIXME: restore previous value
		self._set_she_mode(instance, "normal")

	def _set_she_mode(self, instance, new_mode):
		new_mode_numeric = int(instance.options["she_%s" % new_mode])
		if instance._she_mode != new_mode_numeric:
			log.info("new eeepc_she mode %s (%d) " % (new_mode, new_mode_numeric))
			self._cmd.write_to_file(self._control_file, "%s" % new_mode_numeric)
			self._she_mode = new_mode_numeric

Filemanager

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