HEX
Server: LiteSpeed
System: Linux us-phx-web629.main-hosting.eu 5.14.0-503.23.2.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 12 05:52:18 EST 2025 x86_64
User: u756937133 (756937133)
PHP: 8.2.30
Disabled: passthru,chgrp
Upload Files
File: //lib/python3.9/site-packages/tuned/plugins/__pycache__/plugin_vm.cpython-39.pyc
a

�Գf�
�@snddlmZddlTddlZddlZddlZddlZddlZddl	m
Z
ej��Z
e
�ZGdd�dej�ZdS)�)�base)�*�N)�commandsc@s�eZdZdZedd��Zdd�Zdd�Zedd	��Ze	d
�dd��Z
e	d
�dd��Zed
�dd��Z
ed
�dd��Ze	d�dd��Zed�dd��ZdS)�VMPlugina|
	`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].
	cCsdddd�S)N)�transparent_hugepages�transparent_hugepage�transparent_hugepage.defrag���selfr
r
�;/usr/lib/python3.9/site-packages/tuned/plugins/plugin_vm.py�_get_config_options%s�zVMPlugin._get_config_optionscCsd|_d|_dS)NTF)Z_has_static_tuningZ_has_dynamic_tuning�r�instancer
r
r
�_instance_init-szVMPlugin._instance_initcCsdS�Nr
rr
r
r
�_instance_cleanup1szVMPlugin._instance_cleanupcCsd}tj�|�sd}|S)Nz#/sys/kernel/mm/transparent_hugepagez*/sys/kernel/mm/redhat_transparent_hugepage)�os�path�exists)rrr
r
r
�	_thp_path4szVMPlugin._thp_pathrcCs�|dvr"|st�dt|��dStjddd�}|�d�dkrP|sLt�d�dStj�	|�
�d	�}tj�|�r�|s�tj|||r�t
jgnd
d�|S|s�t�d�dSdS)N)�always�neverZmadvisez-Incorrect 'transparent_hugepages' value '%s'.z
/proc/cmdlineT�Zno_errorztransparent_hugepage=rzWtransparent_hugepage is already set in kernel boot cmdline, ignoring value from profile�enabledFzDOption 'transparent_hugepages' is not supported on current hardware.)�log�warning�str�cmd�	read_file�find�inforr�joinrr�
write_to_file�errno�ENOENT)r�value�sim�removeZcmdline�sys_filer
r
r
�_set_transparent_hugepages<s&
�
z#VMPlugin._set_transparent_hugepagesrcCs|�|||�dSr)r+)rr'r(r)r
r
r
�_set_transparent_hugepageUsz"VMPlugin._set_transparent_hugepagecCs6tj�|��d�}tj�|�r.t�t�|��SdSdS)Nr�rrr#rrrZget_active_optionr �rr*r
r
r
�_get_transparent_hugepagesYsz#VMPlugin._get_transparent_hugepagescCs|��Sr)r/rr
r
r
�_get_transparent_hugepagebsz"VMPlugin._get_transparent_hugepager	cCsXtj�|��d�}tj�|�rB|s>tj|||r6tjgndd�|S|sPt	�
d�dSdS)N�defragFrzJOption 'transparent_hugepage.defrag' is not supported on current hardware.)rrr#rrrr$r%r&rr)rr'r(r)r*r
r
r
� _set_transparent_hugepage_defragfs�
z)VMPlugin._set_transparent_hugepage_defragcCs6tj�|��d�}tj�|�r.t�t�|��SdSdS)Nr1r-r.r
r
r
� _get_transparent_hugepage_defragssz)VMPlugin._get_transparent_hugepage_defragN)�__name__�
__module__�__qualname__�__doc__�classmethodrrrrZcommand_setr+r,Zcommand_getr/r0r2r3r
r
r
r
rs&






r)�rZ
decoratorsZ
tuned.logsZtunedrr%�struct�globZtuned.utils.commandsrZlogs�getrrZPluginrr
r
r
r
�<module>s