3 À<×eâ ã @ sd d dl mZ d dlmZ ddlmZ ddlZddlZddlZddl Z ej jƒ ZG dd„ dej ƒZdS )é )Úbase)Úcommand_customé )ÚconstsNc sˆ e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zedd „ ƒZd d„ Z dd „ Z dd„ Zdd„ Zdd„ 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 ---- ==== c s t t| ƒj||Ž tjƒ | _d S )N)Úsuperr Ú__init__ÚperfZcpu_mapÚ_cpus)ÚselfÚargsÚkwargs)Ú __class__© ú'/usr/lib/python3.6/plugin_irqbalance.pyr s zIrqbalancePlugin.__init__c C s d|_ d|_d S )NFT)Z_has_dynamic_tuningZ_has_static_tuning)r Úinstancer r r Ú_instance_init$ s zIrqbalancePlugin._instance_initc C s d S )Nr )r r r r r Ú_instance_cleanup( s z"IrqbalancePlugin._instance_cleanupc C s dd iS )NÚbanned_cpusr )Úclsr r r Ú_get_config_options+ s z$IrqbalancePlugin._get_config_optionsc C sl y t tjdƒ� }|jƒ S Q R X W nF tk rf } z*|jtjkrJtjdƒ ntj d| ƒ d S d }~X nX d S )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Úer r r Ú_read_irqbalance_sysconfig1 s z+IrqbalancePlugin._read_irqbalance_sysconfigc C sZ y&t