U
    -_g:
                     @   s6   d dl mZmZmZ d dlmZ G dd deeZdS )    )PluginIndependentPluginSoSPredicate)UbuntuPolicyc                   @   s,   e Zd ZdZdZdZdZdZg Zdd Z	dS )		ProcessorzCPU informationZ	processor)systemZhardwareZmemory)/proc/cpuinfo)zcpufreq-utilscpuidc                    s  d}  | dd| dd| dd| dd	| d
d| dd| ddi  ddg  d}  fdd|D   jdddddgdd t jtr j dkrdg _t	  jd} jddd gd|d!  jd"d|d#d$ d% j
 kr d& d S )'N/sys/devices/system/cpuz/smt/controlZcpu_smt_controlz/smt/activeZcpu_smt_activez/vulnerabilities/.*Z	cpu_vulnsz/vulnerabilities/spectre_v2Zcpu_vulns_spectre_v2z/vulnerabilities/meltdownZcpu_vulns_meltdownz/cpu.*/onlineZ	cpu_coresz"/cpu/cpu0/cpufreq/cpuinfo_max_freqZcpuinfo_max_freqr   z/sys/class/cpuidc                    s   g | ]}  d |qS )r
   )Z	path_join).0cdirself >/usr/lib/python3/dist-packages/sos/report/plugins/processor.py
<listcomp>/   s    z#Processor.setup.<locals>.<listcomp>Zlscpuz	lscpu -aezcpufreq-infor	   zcpuid -rT)
cmd_as_tagg
ףp=
4@Zmsr)Zkmodszcpupower frequency-infozcpupower infozcpupower idle-info)r   predzturbostat --debug sleep 10   )r   r   ZtimeoutZ86z
x86info -a)Zadd_file_tagsZadd_copy_speclistdirZadd_cmd_output
isinstanceZpolicyr   Zdist_version	cpu_kmodsr   Zget_arch)r   ZcpupathZcdirsZcpupower_predr   r   r   setup   sj          
  zProcessor.setupN)
__name__
__module____qualname__Z
short_descZplugin_nameZprofilesfilesZpackagesr   r   r   r   r   r   r      s   r   N)Zsos.report.pluginsr   r   r   Zsos.policies.distros.ubuntur   r   r   r   r   r   <module>	   s   