+
     Gi,  c                   s    ^ RI t ^ RIt^RIHt ^RI5 ^ RIt^ RI5 ^ RIH	t	 ^ RI
Ht ^ RIt^ RIt]P                  P                  4       tRR.tRR.t ! R	 R
]P&                  4      tR# )    N)base)Z*)commandsZbase_reachable_timeZretrans_timez/run/sysctl.dz/etc/sysctl.dc                   s   a a ] tR t^t oRtV 3R ltR tR tR tR t	]
P                  3R ltR tR	 tR
 tR tR tR tRR ltRtVtV ;t# )SysctlPlugina$  
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
----
====
c                s\   < \         \        V `
  ! V/ VB  R V n        \	        4       V n        R# )TN)Zsuperr   __init___has_dynamic_optionsr   _cmd)selfZargsZkwargs	__class__s   &*,@/usr/lib/python3.14/site-packages/tuned/plugins/plugin_sysctl.pyr   ZSysctlPlugin.__init__)   s(    d$d5f5"$j$)    c                s   R Vn         RVn        V P                  VP                  4      pV P                  P                  V/ 4      Vn        \        VP                  4      ^ 8  dI   \        P                  R4       V P                  V4       / Vn        V P                  P                  V4       VP                  Vn        R# )FTz0recovering old sysctl settings from previous runN)Z_has_dynamic_tuningZ_has_static_tuning_storage_keyname_storageget_sysctl_originallenloginfo_instance_unapply_staticunsetZoptions_sysctlr   instancestorage_key   && r	   _instance_initZSysctlPlugin._instance_init.   s    !&( $( !!(--0+"mm//R@(	"	"#a'88>?  *!8=={#%%(r
   c                sr    V P                  VP                  4      pV P                  P                  V4       R # N)r   r   r   r   r   r   r	   _instance_cleanupZSysctlPlugin._instance_cleanup>   s(    !!(--0+--k"r
   c                s   \        VP                  P                  4       4       F  w  r#V P                  V4      pVf   \        P                  RV,          4       K8  V P                  P                  V P                  P                  V4      4      pV P                  WT4      pVf   K  WAP                  V&   V P                  W%4       K  	  V P                  VP                  4      pV P                  P!                  WaP                  4       V P"                  P%                  \&        P(                  \&        P*                  4      '       d3   \        P-                  R4       V P/                  VP                  4       R # R # )NzDsysctl option %s will not be set, failed to read the original value.zreapplying system sysctl)listr   items_read_sysctlr   error
_variablesexpandr   Zunquote_process_assignment_modifiersr   _write_sysctlr   r   r   Zset_global_cfgZget_boolconstsZCFG_REAPPLY_SYSCTLZCFG_DEF_REAPPLY_SYSCTLr   _apply_system_sysctl)r   r   optionvalueZoriginal_valueZ	new_valuer      &&     r	   _instance_apply_staticZ#SysctlPlugin._instance_apply_staticB   s&   H,,2245mf%%f->IIT  &&
ii I22!I)7v&	* 6 !!(--0+--K!:!:;	v88&:W:WXX88&'X--. Yr
   c                s   R pR p\        VP                  P                  4       4       F  w  rVV P                  V4      pV P	                  V P
                  P                  V4      V4      pVf   KG  V P                  WPP                  P                  V4      V P                  P                  V4      V4      R8X  g   K  RpK  	  V# )TF)
r   r   r   r   r#   r!   r"   Z_verify_valuer   Z	remove_ws)r   r   ignore_missingZdevicesZretr(   r)   Zcurr_vals   &&&&    r	   _instance_verify_staticZ$SysctlPlugin._instance_verify_staticX   s    #.H,,2245mf'8--doo.D.DU.KXV5&))"5"5e"<dii>Q>QRZ>[]klpuuS 6 
*r
   c                s    \        VP                  P                  4       4       F  w  r4V P                  W44       K  	  R # r   )r   r   r   r$   )r   r   Zrollbackr(   r)   s   &&&  r	   r   Z%SysctlPlugin._instance_unapply_staticd   s0    H55;;=>mff$ ?r
   c                s    V P                   P                  \        P                  \        P                  4      pV F"  p\
        P
                  ! W4      '       g   K!   R# 	  R# )z7Check if a sysctl option matches any exclusion pattern.TF)r%   Zget_listr&   ZCFG_REAPPLY_SYSCTL_EXCLUDEZCFG_DEF_REAPPLY_SYSCTL_EXCLUDEfnmatch)r   r(   Zexclude_listZpattern   &&  r	   _is_sysctl_excludedZ SysctlPlugin._is_sysctl_excludedh   sM    !!**	$$	((, goof&&  
r
   c                sz   / p\          FH  p \        P                  ! V4      pT F(  pTP	                  R 4      '       g   K  YR9  g   K$  Y2T&   K*  	  KJ  	  \        VP                  4       4       F%  pW%,          pV: RV: 2pV P                  Wa4       K'  	  V P                  RV4       R#   \         d     K  i ; i)z.confZ/z/etc/sysctl.confN)SYSCTL_CONFIG_DIRSosZlistdirOSErrorZendswithZsortedZkeys_apply_sysctl_config_file)r   instance_sysctlZfilesZdZflistZfnamepathr*   r	   r'   Z!SysctlPlugin._apply_system_sysctls   s    
%aJJqME u>>'""5\	   ejjl#e|1
4!!$8 $   !3_E  s   B++B:9B:c           	     s   \         P                  R V,          4        \        VR4      ;_uu_ 4       p\        V^4       F  w  rEV P	                  WWR4       K  	  RRR4       \         P                  RV,          4       R#   + '       g   i     L.; i  \
        \        3 dW   pTP                  \        P                  8w  d-   \         P                  RT: R\        T4      : 24        Rp?R#  Rp?R# Rp?ii ; i)z%Applying sysctl settings from file %sZrNz.Finished applying sysctl settings from file %sz(Error reading sysctl settings from file z: )r   debugZopenZ	enumerate_apply_sysctl_config_liner3   ZIOErrorerrnoENOENTr    Zstr)r   r6   r5   ZflinenolineZes   &&&    r	   r4   Z&SysctlPlugin._apply_sysctl_config_file   s    ))3d:;	T31!!Q	##D$H ( 	 99=  	
 7	 ggII	s1v   s/   B (B $B  B	B C:$AC55C:c           	     s   VP                  4       p\        V4      ^ 8X  g   V^ ,          R8X  g   V^ ,          R8X  d   R# VP                  R^4      p\        V4      ^8w  d    \        P	                  RW3,          4       R# Vw  rgVP                  4       p\        V4      ^ 8X  d    \        P	                  RW3,          4       R# VP                  4       pV P                  V4      '       d!   \        P                  RV: RV: R24       R# Wd9   dJ   V P                  P                  WF,          4      pW8w  d#   \        P                  R	V: RV: R
V: R24       V P                  WgRR7       R# )r    Z#Z;NZ=z Syntax error in file %s, line %dz$Skipping excluded sysctl parameter 'z' from 'Z'zOverriding sysctl parameter 'z' to 'T)r,   )stripr   splitr   r    r0   r7   r!   r"   r   r$   )	r   r6   r;   r<   r5   Ztmpr(   r)   Zinstance_values	   &&&&&    r	   r8   Z&SysctlPlugin._apply_sysctl_config_line   s#   	$Y!^tAw#~aC	

3#X]99/~ 	-&<<>&[A99/~ 	
++-%	f%%99 	OO**?+BC>HH	( )VT:r
   c                sJ    R V P                   P                  VRR4      ,          # )z/proc/sys/%sz./z/.)r   Ztr)r   r(   s   &&r	   _get_sysctl_pathZSysctlPlugin._get_sysctl_path   s     
 
$)),,vtT:	::r
   c                s   V P                  V4      pV P                  P                  VR R7      pVf   R # VP                  4       p\	        VP                  R4      4      ^8  d   \        P                  RV,          4       R # V# )N)Zerr_retZ
zGFailed to read sysctl parameter '%s', multi-line values are unsupported)r?   r   Z	read_filer=   r   r>   r   r    )r   r(   r6   Zcontentr/   r	   r   ZSysctlPlugin._read_sysctl   so    			v	&$IId3'_
MMO't	!99VY__`
	.r
   c                s*   V P                  V4      p\        P                  P                  V4      \        9   d   \
        P                  R V,          4       R# V P                  P                  YBV'       d   \        P                  .RR7      # RRR7      # )z+Refusing to set deprecated sysctl option %sFT)Zno_errorZignore_same)r?   r2   r6   ZbasenameDEPRECATED_SYSCTL_OPTIONSr   r    r   Zwrite_to_filer9   r:   )r   r(   r)   r,   r6   s   &&&& r	   r$   ZSysctlPlugin._write_sysctl   ss    			v	&$WWd8899:VCD
		 	 ~pt	 	uu]bpt	 	uur
   )r   r   )F)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r   r+   r-   r&   ZROLLBACK_SOFTr   r0   r'   r4   r8   r?   r   r$   Z__static_attributes__Z__classdictcell__Z__classcell__)r   Z__classdict__s   @@r	   r   r      s_     ,
& #/,
 :@9M9M %	F&;8;	v vr
   r   )r.   ZreZ r   Z
decoratorsZ
tuned.logsZtunedZ
subprocessZtuned.utils.commandsr   Ztuned.constsr&   r9   r2   Zlogsr   r   r@   r1   ZPluginr   ) r
   r	   <module>rA      s`     	     )   	jjnn3^E & tv4;; tvr
   