VULN_CHECK_I913V6 Gi,ddlZddlZddlmZddlddlZddlddlm Z ddl m Z ddl Z ddl Z ejjZddgZdd gZGd d ej&Zy) N)base)*)commandsbase_reachable_time retrans_timez /run/sysctl.dz /etc/sysctl.dceZdZdZfdZdZdZdZdZe jfdZ dZ d Z d Zd Zd Zd ZddZxZS) 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 ---- ==== cXtt| |i|d|_t |_y)NT)superr __init___has_dynamic_optionsr_cmd)selfargskwargs __class__s @/usr/lib/python3.12/site-packages/tuned/plugins/plugin_sysctl.pyr zSysctlPlugin.__init__)s( d$d5f5"$j$)czd|_d|_|j|j}|jj |i|_t|j dkDrHtjd|j|i|_|jj||j|_ y)NFTrz0recovering old sysctl settings from previous run)_has_dynamic_tuning_has_static_tuning _storage_keyname_storageget_sysctl_originallenloginfo_instance_unapply_staticunsetoptions_sysctlrinstance storage_keys r_instance_initzSysctlPlugin._instance_init.s!&( $(!!(--0+"mm// R@( " "#a'88 >?  *!8=={#%%(rcp|j|j}|jj|yN)rrrr"r%s r_instance_cleanupzSysctlPlugin._instance_cleanup>s(!!(--0+--k"rct|jjD]\}}|j|}|tj d|z2|j j|jj|}|j||}|{||j|<|j|||j|j}|jj!||j|j"j%t&j(t&j*r1tj-d|j/|jyy)NzDsysctl option %s will not be set, failed to read the original value.zreapplying system sysctl)listr$items _read_sysctlrerror _variablesexpandrunquote_process_assignment_modifiersr _write_sysctlrrrset _global_cfgget_boolconstsCFG_REAPPLY_SYSCTLCFG_DEF_REAPPLY_SYSCTLr _apply_system_sysctl)rr&optionvalueoriginal_value new_valuer's r_instance_apply_staticz#SysctlPlugin._instance_apply_staticBs-H,,2245mfe%%f->IIT&& ii I22!I)7Xv&  *6!!(--0+--K!:!:; v88&:W:WX88 &'X--.Yrczd}d}t|jjD]\}}|j|}|j |j j ||}|E|j||jj||jj||dk(sd}|S)NTF) r-r$r.r/r4r1r2 _verify_valuer remove_ws)rr&ignore_missingdevicesretr=r>curr_vals r_instance_verify_staticz$SysctlPlugin._instance_verify_staticXs #.H,,2245mfe'8  - -doo.D.DU.KX V5  &$))"5"5e"Q>QRZ>[]klpuu S 6 *rc~t|jjD]\}}|j||yr*)r-rr.r5)rr&rollbackr=r>s rr!z%SysctlPlugin._instance_unapply_staticds4H55;;=>mfefe$?rc|jjtjtj}|D]}t j ||syy)z7Check if a sysctl option matches any exclusion pattern.TF)r7get_listr9CFG_REAPPLY_SYSCTL_EXCLUDECFG_DEF_REAPPLY_SYSCTL_EXCLUDEfnmatch)rr= exclude_listpatterns r_is_sysctl_excludedz SysctlPlugin._is_sysctl_excludedhsL!!** $$ ((,g oofg&  rcJi}tD];} tj|}|D]}|j ds||vs|||< =t |j D] }||}|d|}|j||"|jd|y#t$rYwxYw)Nz.conf/z/etc/sysctl.conf)SYSCTL_CONFIG_DIRSoslistdirOSErrorendswithsortedkeys_apply_sysctl_config_file)rinstance_sysctlfilesdflistfnamepaths rr<z!SysctlPlugin._apply_system_sysctlss % a JJqMEu >>' "  EU5\  ejjl#e U|1 4!!$8$  !3_E    sB B"!B"c tjd|z t|d5}t|dD]\}}|j |||| dddtjd|zy#1swY"xYw#t t f$rP}|jtjk7r)tjd|dt|Yd}~yYd}~yd}~wwxYw)Nz%Applying sysctl settings from file %srrz.Finished applying sysctl settings from file %sz(Error reading sysctl settings from file z: ) rdebugopen enumerate_apply_sysctl_config_linerYIOErrorerrnoENOENTr0str)rrcr^flinenolinees rr]z&SysctlPlugin._apply_sysctl_config_files)) 3d :;  T31!!Q  ##D&$H( 99 =     7 ggII s1vs/ A=)A1 A=1A:6A==C ACCc |j}t|dk(s|ddk(s|ddk(ry|jdd}t|dk7rtj d||fzy|\}}|j}t|dk(rtj d||fzy|j}|j |rtj d|d |d y||vrB|jj||}||k7rtjd |d |d |d |j||d y)Nr#;=rz Syntax error in file %s, line %dz$Skipping excluded sysctl parameter 'z' from ''zOverriding sysctl parameter 'z' to 'T)rE) striprsplitrr0rSrfr1r2r r5) rrcrorpr^tmpr=r>instance_values rriz&SysctlPlugin._apply_sysctl_config_lines. $Y!^tAw#~aC  3#X]99 / f~ -&% <<>&[A99 / f~ ++-% f%99  OO**?6+BC>HH ()VUT:rcBd|jj|ddzS)Nz /proc/sys/%sz./z/.)rtr)rr=s r_get_sysctl_pathzSysctlPlugin._get_sysctl_paths $)),,vtT: ::rc|j|}|jj|d}|y|j}t |j ddkDrt jd|zy|S)N)err_ret rzGFailed to read sysctl parameter '%s', multi-line values are unsupported)r~r read_filerxrryrr0)rr=rccontents rr/zSysctlPlugin._read_sysctlso  v &$ II  d  3' _  MMO't !99 VY_ _`  .rc|j|}tjj|tvrt j d|zy|jj|||rtjgdSddS)Nz+Refusing to set deprecated sysctl option %sFT)no_error ignore_same) r~rWrcbasenameDEPRECATED_SYSCTL_OPTIONSrr0r write_to_filerkrl)rr=r>rErcs rr5zSysctlPlugin._write_sysctlsu  v &$WWd8899 :V CD   u ~pt uu]bpt uur)F)__name__ __module__ __qualname____doc__r r(r+rArIr9 ROLLBACK_SOFTr!rSr<r]rir~r/r5 __classcell__)rs@rr r sW, & #/,  :@9M9M% F& ;8; vrr )rPrer decorators tuned.logstuned subprocesstuned.utils.commandsr tuned.constsr9rkrWlogsrrrrVPluginr rrrs` )  jjnn3^E&tv4;;tvr