JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/tuned/plugins/__pycache__/plugin_sysctl.cpython-39.pyc

a

���h�@s�ddlZddlmZddlTddlZddlTddlmZddl	m
Z
ddlZddlZej
��ZddgZdd	gZGd
d�dej�ZdS)�N�)�base)�*)�commandsZbase_reachable_timeZretrans_timez
/run/sysctl.dz
/etc/sysctl.dcs�eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Ze	j
fdd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zddd�Z�ZS)�SysctlPlugina5
	Sets various kernel parameters at runtime.

	This plug-in is used for applying custom `sysctl` settings and should
	only be used to change system settings that are not covered by other
	*TuneD* plug-ins. If the settings are covered by other *TuneD* plug-ins,
	use those plug-ins instead.

	The syntax for this plug-in is
	`_key_=_value_`, where
	`_key_` is the same as the key name provided by the
	`sysctl` utility.

	.Adjusting the kernel runtime kernel.sched_min_granularity_ns value
	====
	----
	[sysctl]
	kernel.sched_min_granularity_ns=3000000
	----
	====
	cs(tt|�j|i|��d|_t�|_dS)NT)�superr�__init__Z_has_dynamic_optionsr�_cmd)�self�args�kwargs��	__class__��?/usr/lib/python3.9/site-packages/tuned/plugins/plugin_sysctl.pyr(szSysctlPlugin.__init__cCshd|_d|_|�|j�}|j�|i�|_t|j�dkr\t�	d�|�
|�i|_|j�|�|j|_
dS)NFTrz0recovering old sysctl settings from previous run)Z_has_dynamic_tuningZ_has_static_tuning�_storage_key�name�_storage�get�_sysctl_original�len�log�info�_instance_unapply_static�unset�options�_sysctl�r
�instance�storage_keyrrr�_instance_init-s

zSysctlPlugin._instance_initcCs|�|j�}|j�|�dS�N)rrrrrrrr�_instance_cleanup=szSysctlPlugin._instance_cleanupcCs�t|j���D]h\}}|�|�}|dur8t�d|�q|j�|j�	|��}|�
||�}|dur||j|<|�||�q|�
|j�}|j�||j�|j�tjtj�r�t�d�|�|j�dS)NzDsysctl option %s will not be set, failed to read the original value.zreapplying system sysctl)�listr�items�_read_sysctlr�error�
_variables�expandr	�unquote�_process_assignment_modifiersr�
_write_sysctlrrr�setZ_global_cfgZget_bool�constsZCFG_REAPPLY_SYSCTLZCFG_DEF_REAPPLY_SYSCTLr�_apply_system_sysctl)r
r�option�value�original_valueZ	new_valuerrrr�_instance_apply_staticAs(
�
��

z#SysctlPlugin._instance_apply_staticcCsrd}d}t|j���D]V\}}|�|�}|�|j�|�|�}|dur|�||j�	|�|j�	|�|�dkrd}q|S)NTF)
r#rr$r%r*r'r(Z
_verify_valuer	Z	remove_ws)r
r�ignore_missingZdevices�retr/r0Zcurr_valrrr�_instance_verify_staticWs
$z$SysctlPlugin._instance_verify_staticcCs(t|j���D]\}}|�||�qdSr!)r#rr$r+)r
rZrollbackr/r0rrrrcsz%SysctlPlugin._instance_unapply_staticc	Cs�i}tD]P}zt�|�}Wnty0YqYn0|D] }|�d�sFq6||vr6|||<q6qt|���D]$}||}d||f}|�||�qf|�d|�dS)Nz.confz%s/%sz/etc/sysctl.conf)�SYSCTL_CONFIG_DIRS�os�listdir�OSError�endswith�sorted�keys�_apply_sysctl_config_file)r
�instance_sysctl�files�d�flist�fname�pathrrrr.gs 

z!SysctlPlugin._apply_system_sysctlc
Cs�t�d|�z`t|d��4}t|d�D]\}}|�||||�q&Wd�n1sT0Yt�d|�WnJttfy�}z.|jtjkr�t�	d|t
|�f�WYd}~n
d}~00dS)Nz%Applying sysctl settings from file %s�rrz.Finished applying sysctl settings from file %sz.Error reading sysctl settings from file %s: %s)r�debug�open�	enumerate�_apply_sysctl_config_liner9�IOError�errno�ENOENTr&�str)r
rCr>�f�lineno�line�errrr=zs0�

�z&SysctlPlugin._apply_sysctl_config_filec	Cs�|��}t|�dks,|ddks,|ddkr0dS|�dd�}t|�dkr^t�d||f�dS|\}}|��}t|�dkr�t�d||f�dS|��}||vr�|j�||�}||kr�t�d|||f�|j||d	d
�dS)Nr�#�;�=r�z Syntax error in file %s, line %dz2Overriding sysctl parameter '%s' from '%s' to '%s'T)r3)	�stripr�splitrr&r'r(rr+)	r
rCrNrOr>�tmpr/r0Zinstance_valuerrrrH�s0$���z&SysctlPlugin._apply_sysctl_config_linecCsd|j�|dd�S)Nz/proc/sys/%sz./z/.)r	�tr)r
r/rrr�_get_sysctl_path�szSysctlPlugin._get_sysctl_pathcCsV|�|�}|jj|dd�}|dur&dS|��}t|�d��dkrRt�d|�dS|S)N)Zerr_ret�
rzGFailed to read sysctl parameter '%s', multi-line values are unsupported)rYr	Z	read_filerUrrVrr&)r
r/rCZcontentrrrr%�s
zSysctlPlugin._read_sysctlFcCsL|�|�}tj�|�tvr,t�d|�dS|jj|||rBt	j
gnddd�S)Nz+Refusing to set deprecated sysctl option %sFT)Zno_errorZignore_same)rYr7rC�basename�DEPRECATED_SYSCTL_OPTIONSrr&r	Z
write_to_filerJrK)r
r/r0r3rCrrrr+�s

zSysctlPlugin._write_sysctl)F)�__name__�
__module__�__qualname__�__doc__rr r"r2r5r-Z
ROLLBACK_SOFTrr.r=rHrYr%r+�
__classcell__rrr
rrs
r)�re�rZ
decoratorsZ
tuned.logsZtuned�
subprocessZtuned.utils.commandsrZtuned.constsr-rJr7Zlogsrrr\r6ZPluginrrrrr�<module>s
�
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg