Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 À<×eâ ã@sdddlmZddlmZddlmZddlZddlZddlZddl Z ej j ƒZ Gdd„dej ƒZdS)é)Úbase)Úcommand_customé)ÚconstsNcsˆeZdZdZ‡fdd„Zdd„Zdd„Zedd „ƒZd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zeddd�dd„ƒZ‡ZS)ÚIrqbalancePluginaÁ `irqbalance`:: 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||Žtjƒ|_dS)N)ÚsuperrÚ__init__ÚperfZcpu_mapÚ_cpus)ÚselfÚargsÚkwargs)Ú __class__©ú'/usr/lib/python3.6/plugin_irqbalance.pyr szIrqbalancePlugin.__init__cCsd|_d|_dS)NFT)Z_has_dynamic_tuningZ_has_static_tuning)r ÚinstancerrrÚ_instance_init$szIrqbalancePlugin._instance_initcCsdS)Nr)r rrrrÚ_instance_cleanup(sz"IrqbalancePlugin._instance_cleanupcCsddiS)NÚ banned_cpusr)ÚclsrrrÚ_get_config_options+sz$IrqbalancePlugin._get_config_optionscCsly ttjdƒ� }|jƒSQRXWnFtk rf}z*|jtjkrJtjdƒntj d|ƒdSd}~XnXdS)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ÚwarnÚerror)r ÚfÚerrrÚ_read_irqbalance_sysconfig1s  z+IrqbalancePlugin._read_irqbalance_sysconfigcCsZy&ttjdƒ�}|j|ƒWdQRXdStk rT}ztjd|ƒdSd}~XnXdS)NÚwTz-Failed to write irqbalance sysconfig file: %sF)rrrÚwriterrr )r Úcontentr!r"rrrÚ_write_irqbalance_sysconfig<sz,IrqbalancePlugin._write_irqbalance_sysconfigcCs |d|S)NzIRQBALANCE_BANNED_CPUS=%s r)r Ú sysconfigÚbanned_cpumaskrrrÚ_write_banned_cpusEsz#IrqbalancePlugin._write_banned_cpuscCs8g}x(|jdƒD]}tjd|ƒs|j|ƒqWdj|ƒS)NÚ z\s*IRQBALANCE_BANNED_CPUS=)ÚsplitÚreÚmatchÚappendÚjoin)r r(ÚlinesÚlinerrrÚ_clear_banned_cpusHs  z#IrqbalancePlugin._clear_banned_cpuscCs2|jjdddgdgd�\}}|dkr.tjdƒdS)NZ systemctlz try-restartZ irqbalanceé)Z no_errorsrz.Failed to restart irqbalance. Is it installed?)Ú_cmdZexecuterr)r ZretcodeÚoutrrrÚ_restart_irqbalanceOs z$IrqbalancePlugin._restart_irqbalancecCs@|jƒ}|dkrdS|j|ƒ}|j||ƒ}|j|ƒr<|jƒdS)N)r#r3r*r'r7)r r)r&rrrÚ_set_banned_cpusXs   z!IrqbalancePlugin._set_banned_cpuscCs4|jƒ}|dkrdS|j|ƒ}|j|ƒr0|jƒdS)N)r#r3r'r7)r r&rrrÚ_restore_banned_cpusas   z%IrqbalancePlugin._restore_banned_cpusrF)Z per_devicec Cs¢d}|dk rjt|jj|ƒƒ}t|jƒ}|j|ƒrB|jjt|ƒƒ}n(djdd„|jDƒƒ}tj d||fƒ|sr|r~|dkr~dS|r†dS|r–|j |ƒn|j ƒdS)Nú,cSsg|] }t|ƒ‘qSr)Ústr)Ú.0Úxrrrú rsz1IrqbalancePlugin._banned_cpus..zGInvalid banned_cpus specified, '%s' does not match available cores '%s') Úsetr5Zcpulist_unpackr ÚissubsetZ cpulist2hexÚlistr0rr r8r9) r ZenablingÚvalueZverifyZignore_missingr)ZbannedZpresentZstr_cpusrrrÚ _banned_cpusis     zIrqbalancePlugin._banned_cpus)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrÚ classmethodrr#r'r*r3r7r8r9rrCÚ __classcell__rr)rrr s      r)ÚrZ decoratorsrZtunedrZ tuned.logsrr r-ZlogsÚgetrZPluginrrrrrÚs