a ”ˆ«h(ã@s\ddlmZddlmZddlmZddlZddlZddlZej   ¡Z Gdd„dej ƒZ dS)é)Úbase)Úcommand_customé)ÚconstsNcsˆeZdZdZ‡fdd„Zdd„Zdd„Zedd „ƒZd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zeddddd„ƒZ‡ZS)Ú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 ---- ==== cs&tt|ƒj|i|¤Ž|j ¡|_dS©N)ÚsuperrÚ__init__Ú_cmdZget_cpusÚ_cpus)ÚselfÚargsÚkwargs©Ú __class__©úC/usr/lib/python3.9/site-packages/tuned/plugins/plugin_irqbalance.pyr szIrqbalancePlugin.__init__cCsd|_d|_dS)NFT)Z_has_dynamic_tuningZ_has_static_tuning©r ÚinstancerrrÚ_instance_init!szIrqbalancePlugin._instance_initcCsdSrrrrrrÚ_instance_cleanup%sz"IrqbalancePlugin._instance_cleanupcCsddiS)NÚ banned_cpusr)ÚclsrrrÚ_get_config_options(sÿz$IrqbalancePlugin._get_config_optionsc CsŒz:ttjdƒ}| ¡WdƒWS1s.0YWnLty†}z4|jtjkrbt d¡nt  d|¡WYd}~dSd}~00dS)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ÚerrrÚ_read_irqbalance_sysconfig.s,  z+IrqbalancePlugin._read_irqbalance_sysconfigc Csvzoóz1IrqbalancePlugin._banned_cpus..zGInvalid banned_cpus specified, '%s' does not match available cores '%s') Úsetr Zcpulist_unpackr ÚissubsetZcpulist2stringZ cpulist_packr3r!r#r:r;) r ZenablingÚvalueZverifyZignore_missingrr,ZbannedZpresentZstr_cpusrrrÚ _banned_cpusfs"  ÿ zIrqbalancePlugin._banned_cpus)Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrÚ classmethodrr&r*r-r6r9r:r;rrEÚ __classcell__rrrrr s       r)ÚrZ decoratorsrZtunedrZ tuned.logsrr0ZlogsÚgetr!ZPluginrrrrrÚs