3 À<×ekã@sNddlZddlZddlZddlmZddljZejj ƒZ Gdd„dej ƒZ dS)éNé)Úbasecs,eZdZdZ‡fdd„Z‡fdd„Z‡ZS)Úcalc_isolated_coreszÒ Calculates and returns isolated cores. The argument specifies how many cores per socket reserve for housekeeping. If not specified, 1 core per socket is reserved for housekeeping and the rest is isolated. cstt|ƒjddƒdS)Nrr)ÚsuperrÚ__init__)Úself)Ú __class__©ú2/usr/lib/python3.6/function_calc_isolated_cores.pyrszcalc_isolated_cores.__init__c sPtt|ƒj|ƒsdSd}t|ƒdkrj|djƒ sBt|dƒdkr^tjd|d|jfƒdSt|dƒ}i}x–t j t j j tjdƒƒD]|}t j j|ƒdd…}|jƒr†t j j |dƒ}t j j|ƒsÔtjd||fƒq†|jj|ƒjƒ}|jƒr†|j|gƒ|g||<q†Wg}x.|jƒD]"} | jtd|| |d…}qW|jtdd j |ƒS) NrrzPinvalid argument '%s' for builtin function '%s', it must be non-negative integerzcpu*éztopology/physical_package_idz(file '%s' does not exist, cpu%s offline?)Úkeyú,)rrÚexecuteÚlenÚ isdecimalÚintÚlogÚerrorÚ_nameÚglobZiglobÚosÚpathÚjoinÚconstsZSYSFS_CPUS_PATHÚbasenameÚexistsÚdebugZ_cmdZ read_fileÚstripÚgetÚvaluesÚsort) rÚargsZ cpus_reserveZtopoZcpuZcpuidZphysical_package_idZsocketZ isol_cpusZcpus)rr r rs4     zcalc_isolated_cores.execute)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrÚ __classcell__r r )rr r s r) rrZ tuned.logsZtunedÚrZ tuned.constsrZlogsrrZFunctionrr r r r Ús