File: //lib/python3.9/site-packages/tuned/plugins/__pycache__/plugin_vm.cpython-39.pyc
a
�Գf�
� @ sn d dl mZ d dlT ddlZddlZddlZddlZddlZddl m
Z
ej�� Z
e
� ZG dd� dej�ZdS )� )�base)�*� N)�commandsc @ s� e Zd ZdZedd� �Zdd� Zdd� Zedd � �Ze d
�dd� �Z
e d
�dd� �Zed
�dd� �Z
ed
�dd� �Ze d�dd� �Zed�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].
c C s d d d d�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_optionsc C s d|_ d|_d S )NTF)Z_has_static_tuningZ_has_dynamic_tuning�r �instancer
r
r
�_instance_init- s zVMPlugin._instance_initc C s d S �Nr
r r
r
r
�_instance_cleanup1 s zVMPlugin._instance_cleanupc C s d}t j�|�sd}|S )Nz#/sys/kernel/mm/transparent_hugepagez*/sys/kernel/mm/redhat_transparent_hugepage)�os�path�exists)r r r
r
r
� _thp_path4 s zVMPlugin._thp_pathr c C s� |dvr"|st �dt|� � d S tjddd�}|�d�dkrP|sLt �d� d S tj� | �
� d �}tj�|�r�|s�tj|||r�t
jgnd
d� |S |s�t �d� d S d S )N)�always�neverZmadvisez-Incorrect 'transparent_hugepages' value '%s'.z
/proc/cmdlineT�Zno_errorztransparent_hugepage=r zWtransparent_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�infor r �joinr r �
write_to_file�errno�ENOENT)r �value�sim�removeZcmdline�sys_filer
r
r
�_set_transparent_hugepages<