OXIESEC PANEL
- Current Dir:
/
/
lib
/
python3.9
/
site-packages
/
tuned
/
plugins
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/13/2025 09:25:13 PM
rwxr-xr-x
📄
__init__.py
49 bytes
08/07/2024 08:09:40 PM
rw-r--r--
📁
__pycache__
-
02/13/2025 09:25:13 PM
rwxr-xr-x
📄
base.py
22.56 KB
12/02/2024 09:49:28 AM
rw-r--r--
📄
decorators.py
983 bytes
08/07/2024 08:09:40 PM
rw-r--r--
📄
exceptions.py
99 bytes
08/07/2024 08:09:40 PM
rw-r--r--
📄
hotplug.py
3.84 KB
08/07/2024 08:09:40 PM
rw-r--r--
📁
instance
-
02/13/2025 09:25:13 PM
rwxr-xr-x
📄
plugin_acpi.py
2.39 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_audio.py
3.13 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_bootloader.py
25.33 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_cpu.py
29.42 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_disk.py
16.69 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_eeepc_she.py
3.02 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_irq.py
9.74 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_irqbalance.py
3.56 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_modules.py
4.82 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_mounts.py
5.45 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_net.py
22.77 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_rtentsk.py
1.08 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_scheduler.py
54.72 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_script.py
3.94 KB
12/02/2024 09:49:28 AM
rw-r--r--
📄
plugin_scsi_host.py
3.08 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_selinux.py
2.27 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_service.py
10.47 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_sysctl.py
6.03 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_sysfs.py
2.65 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_systemd.py
5.3 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_uncore.py
5.88 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_usb.py
1.97 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_video.py
5.93 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
plugin_vm.py
3.49 KB
08/07/2024 08:09:40 PM
rw-r--r--
📄
repository.py
1.49 KB
08/07/2024 08:09:40 PM
rw-r--r--
Editing: plugin_vm.py
Close
from . import base from .decorators import * import tuned.logs import os import errno import struct import glob from tuned.utils.commands import commands log = tuned.logs.get() cmd = commands() class VMPlugin(base.Plugin): """ `vm`:: Enables or disables transparent huge pages depending on value of the [option]`transparent_hugepages` option. The option can have one of three possible values `always`, `madvise` and `never`. + .Disable transparent hugepages ==== ---- [vm] transparent_hugepages=never ---- ==== + The [option]`transparent_hugepage.defrag` option specifies the defragmentation policy. Possible values for this option are `always`, `defer`, `defer+madvise`, `madvise` and `never`. For a detailed explanation of these values refer to link:https://www.kernel.org/doc/Documentation/vm/transhuge.txt[Transparent Hugepage Support]. """ @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, remove): if value not in ["always", "never", "madvise"]: if not sim: log.warning("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, ignoring 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, \ no_error = [errno.ENOENT] if remove else False) return value else: if not sim: log.warning("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, remove): self._set_transparent_hugepages(value, sim, remove) @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, remove): 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, \ no_error = [errno.ENOENT] if remove else False) return value else: if not sim: log.warning("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