PATH:
usr
/
lib
/
python2.7
/
site-packages
/
tuned
/
plugins
from . import base from .decorators import * import tuned.logs import os import struct import glob from tuned.utils.commands import commands log = tuned.logs.get() cmd = commands() class VMPlugin(base.Plugin): """ Plugin for tuning memory management. """ @classmethod def _get_config_options(self): return { "transparent_hugepages" : None, "transparent_hugepage" : None, "transparent_hugepage.defrag" : None, } def _instance_init(self, instance): instance._has_static_tuning = True instance._has_dynamic_tuning = False def _instance_cleanup(self, instance): pass @classmethod def _thp_path(self): path = "/sys/kernel/mm/transparent_hugepage" if not os.path.exists(path): # RHEL-6 support path = "/sys/kernel/mm/redhat_transparent_hugepage" return path @command_set("transparent_hugepages") def _set_transparent_hugepages(self, value, sim): if value not in ["always", "never", "madvise"]: if not sim: log.warn("Incorrect 'transparent_hugepages' value '%s'." % str(value)) return None cmdline = cmd.read_file("/proc/cmdline", no_error = True) if cmdline.find("transparent_hugepage=") > 0: if not sim: log.info("transparent_hugepage is already set in kernel boot cmdline, ingoring value from profile") return None sys_file = os.path.join(self._thp_path(), "enabled") if os.path.exists(sys_file): if not sim: cmd.write_to_file(sys_file, value) return value else: if not sim: log.warn("Option 'transparent_hugepages' is not supported on current hardware.") return None # just an alias to transparent_hugepages @command_set("transparent_hugepage") def _set_transparent_hugepage(self, value, sim): self._set_transparent_hugepages(value, sim) @command_get("transparent_hugepages") def _get_transparent_hugepages(self): sys_file = os.path.join(self._thp_path(), "enabled") if os.path.exists(sys_file): return cmd.get_active_option(cmd.read_file(sys_file)) else: return None # just an alias to transparent_hugepages @command_get("transparent_hugepage") def _get_transparent_hugepage(self): return self._get_transparent_hugepages() @command_set("transparent_hugepage.defrag") def _set_transparent_hugepage_defrag(self, value, sim): sys_file = os.path.join(self._thp_path(), "defrag") if os.path.exists(sys_file): if not sim: cmd.write_to_file(sys_file, value) return value else: if not sim: log.warn("Option 'transparent_hugepage.defrag' is not supported on current hardware.") return None @command_get("transparent_hugepage.defrag") def _get_transparent_hugepage_defrag(self): sys_file = os.path.join(self._thp_path(), "defrag") if os.path.exists(sys_file): return cmd.get_active_option(cmd.read_file(sys_file)) else: return None
[-] plugin_script.pyo
[edit]
[-] hotplug.py
[edit]
[-] plugin_net.pyo
[edit]
[-] __init__.pyo
[edit]
[-] repository.pyo
[edit]
[-] plugin_systemd.pyc
[edit]
[-] plugin_systemd.pyo
[edit]
[-] plugin_net.pyc
[edit]
[-] base.pyo
[edit]
[-] plugin_mounts.pyc
[edit]
[-] plugin_cpu.pyo
[edit]
[-] plugin_sysctl.pyo
[edit]
[-] hotplug.pyc
[edit]
[-] repository.py
[edit]
[-] exceptions.py
[edit]
[+]
..
[-] plugin_vm.pyc
[edit]
[-] plugin_selinux.py
[edit]
[-] plugin_sysfs.pyo
[edit]
[-] plugin_mounts.pyo
[edit]
[-] exceptions.pyc
[edit]
[-] plugin_video.py
[edit]
[-] plugin_bootloader.pyc
[edit]
[-] decorators.pyo
[edit]
[-] __init__.pyc
[edit]
[-] plugin_sysfs.py
[edit]
[-] plugin_usb.pyc
[edit]
[-] plugin_scsi_host.py
[edit]
[-] exceptions.pyo
[edit]
[-] plugin_scheduler.pyo
[edit]
[-] plugin_disk.pyc
[edit]
[-] plugin_modules.py
[edit]
[-] plugin_eeepc_she.pyc
[edit]
[-] base.py
[edit]
[-] plugin_selinux.pyc
[edit]
[-] plugin_usb.pyo
[edit]
[-] plugin_script.py
[edit]
[-] hotplug.pyo
[edit]
[-] plugin_cpu.py
[edit]
[-] plugin_cpu.pyc
[edit]
[-] plugin_modules.pyo
[edit]
[-] plugin_script.pyc
[edit]
[-] decorators.pyc
[edit]
[-] plugin_sysctl.py
[edit]
[-] plugin_scheduler.py
[edit]
[-] plugin_systemd.py
[edit]
[-] plugin_mounts.py
[edit]
[-] repository.pyc
[edit]
[-] base.pyc
[edit]
[-] plugin_sysfs.pyc
[edit]
[-] plugin_audio.py
[edit]
[-] plugin_scsi_host.pyo
[edit]
[-] plugin_vm.pyo
[edit]
[-] plugin_bootloader.py
[edit]
[-] plugin_selinux.pyo
[edit]
[+]
instance
[-] plugin_modules.pyc
[edit]
[-] plugin_eeepc_she.py
[edit]
[-] plugin_vm.py
[edit]
[-] plugin_bootloader.pyo
[edit]
[-] plugin_scsi_host.pyc
[edit]
[-] __init__.py
[edit]
[-] plugin_audio.pyo
[edit]
[-] decorators.py
[edit]
[-] plugin_audio.pyc
[edit]
[-] plugin_scheduler.pyc
[edit]
[-] plugin_sysctl.pyc
[edit]
[-] plugin_video.pyc
[edit]
[-] plugin_disk.py
[edit]
[-] plugin_disk.pyo
[edit]
[-] plugin_eeepc_she.pyo
[edit]
[-] plugin_net.py
[edit]
[-] plugin_video.pyo
[edit]
[-] plugin_usb.py
[edit]