Source code for insights.parsers.sys_kernel

"""
System kernel files under ``/proc/sys/kernel`` or ``/sys/kernel``
=================================================================

This module contains the following parsers:

SchedRTRuntime - file ``/proc/sys/kernel/sched_rt_runtime_us``
--------------------------------------------------------------
SchedFeatures - file ``/sys/kernel/debug/sched_features``
---------------------------------------------------------
"""
from insights.core import Parser
from insights.core.exceptions import ParseException
from insights.core.plugins import parser
from insights.parsers import get_active_lines
from insights.specs import Specs


[docs] @parser(Specs.sched_rt_runtime_us) class SchedRTRuntime(Parser): """ Class for parsing the `/proc/sys/kernel/sched_rt_runtime_us` file. Typical content of the file is:: 950000 Examples: >>> type(srt) <class 'insights.parsers.sys_kernel.SchedRTRuntime'> >>> srt.runtime_us 950000 Attributes: runtime_us (int): The value of sched_rt_runtime_us Raises: ParseException: Raised when there is more than one line or the value isn't interger. """
[docs] def parse_content(self, content): lines = get_active_lines(content) if len(lines) != 1: raise ParseException("Unexpected file content") try: self.runtime_us = int(lines[0]) except: raise ParseException("Unexpected file content")
[docs] @parser(Specs.sys_kernel_sched_features) class SchedFeatures(Parser): """ Class for parsing the `/sys/kernel/debug/sched_features` file. Typical content of the file is:: GENTLE_FAIR_SLEEPERS START_DEBIT NO_NEXT_BUDDY LAST_BUDDY CACHE_HOT_BUDDY Examples: >>> type(sfs) <class 'insights.parsers.sys_kernel.SchedFeatures'> >>> "GENTLE_FAIR_SLEEPERS" in sfs.features True >>> "TEST1" in sfs.features False Attributes: features (list): A list with all the features """
[docs] def parse_content(self, content): self.features = [] for line in get_active_lines(content): self.features.extend(line.split())