Ë
    i©¹d†  ã                   óD   — d dl mZmZmZ d dlmZ d dlZ G d„ dee«      Zy)é    )ÚPluginÚIndependentPluginÚ	PluginOpt)ÚRedHatPolicyNc                   óV   — e Zd ZdZdZdZdZdZdZ e	ddd	¬
«       e	ddd¬
«      gZ
d„ Zy)ÚKernela©  The Kernel plugin is aimed at collecting general information about
    the locally running kernel. This information should be distribution-neutral
    using commands and filesystem collections that are ubiquitous across
    distributions.

    Debugging information from /sys/kernel/debug is collected by default,
    however care is taken so that these collections avoid areas like
    /sys/kernel/debug/tracing/trace_pipe which would otherwise cause the
    sos collection attempt to appear to 'hang'.

    The 'trace' option will enable the collection of the
    /sys/kernel/debug/tracing/trace file specfically, but will not change the
    behavior stated above otherwise.
    zLinux kernelÚkernel)ÚsystemÚhardwarer	   )úkernel$z/sys/moduleú
with-timerFzgather /proc/timer* statistics)ÚdefaultÚdescÚtracez+gather /sys/kernel/debug/tracing/trace filec                 óL  — t        | j                  t        «      rd| _        | j	                  ddd¬«       | j	                  ddd¬«       | j	                  d«       	 | j                  | j                  «      }| j	                  ddj                  |«      z   d	d
¬«       g d¢}g }|D ]&  }|j                  t        j                  |«      «       Œ( |r#| j	                  ddj                  |«      z  «       | j	                  ddgd¬«       | j	                  dd¬«       d}| j                  g d¢«       | j                  g d‘d‘d‘d‘d‘d‘d‘d‘d ‘d!‘d"‘d#‘d$‘d%‘d&| j                  j                  «       z  ‘d'‘d(‘d)‘d*‘d+‘d,‘d-‘d.‘d/‘d0‘d1‘d2‘d3‘d4‘d5‘d6‘d7‘d8‘d9‘d:‘d;‘d<‘|d=z   ‘|d>z   ‘d?‘«       | j                  d@«      r| j                  dA«       | j                  dB«      s| j                  dC«       y y # t        $ r" | j                  d| j                  z  «       Y �Œ…w xY w)DN)r   zkernel-redhat$zuname -aÚuname)Úroot_symlinkÚtagsÚlsmodzls -lt /sys/kernel/slabzmodinfo ú Úmodinfo_ALL_MODULESÚmodinfo_all)Úsuggest_filenamer   zcould not list %s)z/lib/modules/*/extraz/lib/modules/*/updatesz/lib/modules/*/weak-updateszfind %s -lsÚdmesgzdkms statusT)Ú
cmd_as_tagz	sysctl -aÚsysctl)r   z-/sys/devices/system/clocksource/clocksource0/)z$/sys/kernel/debug/tracing/trace_pipez /sys/kernel/debug/tracing/READMEz$/sys/kernel/debug/tracing/trace_statz!/sys/kernel/debug/tracing/per_cpuz /sys/kernel/debug/tracing/eventsz%/sys/kernel/debug/tracing/free_bufferz&/sys/kernel/debug/tracing/trace_markerz*/sys/kernel/debug/tracing/trace_marker_rawz</sys/kernel/debug/tracing/instances/*/per_cpu/*/snapshot_rawz;/sys/kernel/debug/tracing/instances/*/per_cpu/*/trace_pipe*z0/sys/kernel/debug/tracing/instances/*/trace_pipez/proc/modulesz/proc/sys/kernel/random/boot_idz/sys/module/*/parametersz/sys/module/*/initstatez/sys/module/*/refcntz/sys/module/*/taintz/sys/module/*/versionz/sys/firmware/acpi/*z/sys/kernel/debug/tracing/*z/sys/kernel/livepatch/*z/proc/kallsymsz/proc/buddyinfoz/proc/slabinfoz/proc/zoneinfoz/lib/modules/%s/modules.depz/etc/conf.modulesz/etc/modules.confz/etc/modprobe.confz/etc/modprobe.dz/lib/modprobe.dz/run/modprobe.dz/usr/local/lib/modprobe.dz/etc/sysctl.confz/etc/sysctl.dz/lib/sysctl.dz/proc/cmdlinez/proc/driverz/proc/sys/kernel/taintedz/proc/softirqsz/proc/lock*z
/proc/miscz/var/log/dmesgz/sys/fs/pstorez/var/lib/systemd/pstorez'/sys/kernel/debug/dynamic_debug/controlz(/sys/kernel/debug/extfrag/unusable_indexz'/sys/kernel/debug/extfrag/extfrag_indexÚavailable_clocksourceÚcurrent_clocksourcez/proc/pressure/r   z/proc/timer*r   z/sys/kernel/debug/tracing/trace)Ú
isinstanceÚpolicyr   Úverify_packagesÚadd_cmd_outputÚlistdirÚ
sys_moduleÚjoinÚOSErrorÚ	_log_warnÚextendÚglobÚadd_forbidden_pathÚadd_copy_specÚkernel_versionÚ
get_option)ÚselfÚmodulesÚextra_mod_patternsÚextra_mod_pathsÚpatternÚclocksource_paths         ú;/usr/lib/python3/dist-packages/sos/report/plugins/kernel.pyÚsetupzKernel.setup-   sy  € ô �d—k‘k¤<Ô0Ø#@ˆDÔ ð 	×Ñ˜J°WÀ7ÐÔKØ×Ñ˜G°'ÀÐÔHØ×ÑÐ5Ô6ð	BØ—l‘l 4§?¡?Ó3ˆGØ×Ñ 
¨S¯X©X°gÓ->Ñ >Ø1FØ%2ð  ô 4ò
Ðð
 ˆØ)ò 	7ˆGØ×"Ñ"¤4§9¡9¨WÓ#5Õ6ð	7ñ Ø×Ñ °·±¸Ó0IÑ IÔJà×ÑØØð
ð ð 	ô 	ð 	×Ñ˜K¨hÐÔ7àJÐð 	×Ñò !
ô 	ð 	×Ñð )
Øð)
à-ð)
ð 'ð)
ð &ð	)
ð
 #ð)
ð "ð)
ð $ð)
ð #ð)
ð *ð)
ð &ð)
ð ð)
ð ð)
ð ð)
ð ð)
ð *¨D¯K©K×,FÑ,FÓ,HÑHð)
ð   ð!)
ð"  ð#)
ð$ !ð%)
ð& ð')
ð( ð))
ð* ð+)
ð, (ð-)
ð. ð/)
ð0 ð1)
ð2 ð3)
ð4 ð5)
ð6 ð7)
ð8 'ð9)
ð: ð;)
ð< ð=)
ð> ð?)
ð@ ðA)
ðB ðC)
ðD &ðE)
ðF 6ðG)
ðH 7ðI)
ðJ 6ðK)
ðL Ð6Ñ6ðM)
ðN Ð4Ñ4ðO)
ðP ðQ)
ô )	ðV �?‰?˜<Ô(ð ×Ñ˜~Ô.à�‰˜wÔ'Ø×#Ñ#Ð$EÕFð (øôo ò 	BØ�N‰NÐ.°·±Ñ@×Að	Bús   ÁAG8 Ç8'H#È"H#N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
short_descÚplugin_nameÚprofilesr!   r$   r   Úoption_listr5   © ó    r4   r   r      sQ   „ ñð  €Jà€KØ/€HØ"€Oà€Jñ 	�,¨Ø7ô	9á�' 5ØDô	Fð€KóhGr?   r   )Úsos.report.pluginsr   r   r   Úsos.policies.distros.redhatr   r)   r   r>   r?   r4   ú<module>rB      s'   ð÷ DÑ CÝ 4Û ôGGˆVÐ&õ GGr?   