Source code for insights.parsers.ksmstate

"""
KSMState - file ``/sys/kernel/mm/ksm/run``
==========================================

Parser to get the kernel samepage merging state by reading the file
``/sys/kernel/mm/ksm/run``.
"""
from insights.core import Parser
from insights.core.exceptions import ParseException, SkipComponent
from insights.core.plugins import parser
from insights.specs import Specs


[docs] @parser(Specs.ksmstate) class KSMState(Parser): """ Parser to get the kernel samepage merging state by reading the file ``/sys/kernel/mm/ksm/run``. Typical output of ``/sys/kernel/mm/ksm/run`` likes: 0 From https://www.kernel.org/doc/Documentation/vm/ksm.txt:: set 0 to stop ksmd from running but keep merged pages, set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run", set 2 to stop ksmd and unmerge all pages currently merged, but leave mergeable areas registered for next run Examples: >>> ksm.value == '0' True >>> ksm.is_running False Raises: SkipComponent: when input is empty. ParseException: when the content is not expected. """
[docs] def parse_content(self, content): if not content: raise SkipComponent if len(content) != 1 or content[0] not in ('0', '1', '2'): raise ParseException("Incorrect content: '{0}'".format(content)) self.value = content[0] self.is_running = self.value == '1'