MOON
Server: Apache
System: Linux s5.yayogua.com.py 6.12.0-124.55.3.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:54:02 EDT 2026 x86_64
User: sanbercountryclu (1012)
PHP: 8.2.33
Disabled: NONE
Upload Files
File: //lib/python3.12/site-packages/tuned/plugins/__pycache__/plugin_irqbalance.cpython-312.pyc
�

�]�i(���ddlmZddlmZddlmZddlZddlZddlZejj�ZGd�dej�Z
y)�)�base)�command_custom�)�constsNc���eZdZdZ�fd�Zd�Zd�Zed��Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zed
d��d��Z�xZS)�IrqbalancePlugina�
	Plug-in for irqbalance settings management. The plug-in
	configures CPUs which should be skipped when rebalancing IRQs in
	`/etc/sysconfig/irqbalance`. It then restarts irqbalance if and
	only if it was previously running.

	The banned/skipped CPUs are specified as a CPU list via the
	[option]`banned_cpus` option.

	.Skip CPUs 2,4 and 9-13 when rebalancing IRQs
	====
	----
	[irqbalance]
	banned_cpus=2,4,9-13
	----
	====
	c�j��tt|�
|i|��|jj	�|_y�N)�superr�__init__�_cmd�get_cpus�_cpus)�self�args�kwargs�	__class__s   ��D/usr/lib/python3.12/site-packages/tuned/plugins/plugin_irqbalance.pyrzIrqbalancePlugin.__init__s,�����$�(�$�9�&�9��y�y�!�!�#�$�*�c� �d|_d|_y)NFT)�_has_dynamic_tuning�_has_static_tuning�r�instances  r�_instance_initzIrqbalancePlugin._instance_init!s��!&�(�� $�(�rc��yr
�rs  r�_instance_cleanupz"IrqbalancePlugin._instance_cleanup%s��rc�
�ddiS)N�banned_cpusr)�clss r�_get_config_optionsz$IrqbalancePlugin._get_config_options(s���$�
�rc�F�	ttjd�5}|j�cddd�S#1swYyxYw#t$rU}|j
t
jk(rtjd�ntjd|z�Yd}~yd}~wwxYw)N�rz>irqbalance sysconfig file is missing. Is irqbalance installed?z,Failed to read irqbalance sysconfig file: %s)
�openr�IRQBALANCE_SYSCONFIG_FILE�read�IOError�errno�ENOENT�log�warning�error)r�f�es   r�_read_irqbalance_sysconfigz+IrqbalancePlugin._read_irqbalance_sysconfig.so����V�
-�
-�s�3�q��6�6�8�	4�3�3��	���g�g������K�K�P�Q��I�I�<�q�@�A�
���s/�A�6�	A�?�A�A�	B �AB�B c���	ttjd�5}|j|�ddd�y#1swYyxYw#t$r"}t
j
d|z�Yd}~yd}~wwxYw)N�wTz-Failed to write irqbalance sysconfig file: %sF)r%rr&�writer(r+r-)r�contentr.r/s    r�_write_irqbalance_sysconfigz,IrqbalancePlugin._write_irqbalance_sysconfig9sZ����V�
-�
-�s�3�q��G�G�G��	4�
�	4�
��	���9�9�
<�q�
@�A�
���s0�A�7�A�A�A�A�	A.�A)�)A.c��|d|zzS)NzIRQBALANCE_BANNED_CPULIST=%s
r)r�	sysconfig�banned_cpulist_strings   r�_write_banned_cpusz#IrqbalancePlugin._write_banned_cpusBs��	�5�8M�M�	M�Mrc��g}|jd�D]*}tjd|�r�|j|��,dj	|�S)N�
z\s*IRQBALANCE_BANNED_CPULIST=)�split�re�match�append�join)rr7�lines�lines    r�_clear_banned_cpusz#IrqbalancePlugin._clear_banned_cpusEsF��
�%��o�o�d�#�d�
�(�(�3�T�
:�	�L�L���$�
���5�	�rc��|jjgd�dg��\}}|dk7rtjd�yy)N)�	systemctlztry-restart�
irqbalance�)�	no_errorsrz.Failed to restart irqbalance. Is it installed?)r
�executer+r,)r�retcode�outs   r�_restart_irqbalancez$IrqbalancePlugin._restart_irqbalanceLsD�����"�"�-��S�#��,�'�3�
��\��;�;�?�@�rc��|j�}|�y|j|�}|j||�}|j|�r|j	�yyr
)r0rCr9r5rL)rr8r4s   r�_set_banned_cpusz!IrqbalancePlugin._set_banned_cpusUsZ���+�+�-�'��_�	��#�#�G�,�'��#�#�G�-B�C�'�	�%�%�g�.�����/rc��|j�}|�y|j|�}|j|�r|j�yyr
)r0rCr5rL)rr4s  r�_restore_banned_cpusz%IrqbalancePlugin._restore_banned_cpus^sG���+�+�-�'��_�	��#�#�G�,�'�	�%�%�g�.�����/rr F)�
per_devicec��d}|��t|jj|��}t|j�}|j	|�r5|jj|jj
|��}nNdj|jD�	cgc]
}	t|	���c}	�}
tjd|�d|
�d��|s|r|�y|ry|r|j|�y|j�ycc}	w)N�,z Invalid banned_cpus specified, 'z"' does not match available cores '�')
�setr
�cpulist_unpackr�issubset�cpulist2string�cpulist_packr@�strr+r-rNrP)r�enabling�value�verify�ignore_missingrr8�banned�present�x�str_cpuss           r�_banned_cpuszIrqbalancePlugin._banned_cpusfs�����
����	�	�(�(��/�0�6�
����_�7��o�o�g�� �I�I�4�4�T�Y�Y�5K�5K�E�5R�S���x�x����4��A��Q���4�5�H��I�I�
�����&�3�;�
��
�����.�/������5s�D)�__name__�
__module__�__qualname__�__doc__rrr�classmethodr"r0r5r9rCrLrNrPrrc�
__classcell__)rs@rrr
sk����$$�%������
	��N��A�����5�1��2�rr)�r�
decoratorsr�tunedr�
tuned.logsr)r=�logs�getr+�Pluginrrrr�<module>rqs9���&����	��j�j�n�n���q�t�{�{�qr