def main():
    km = kmod.Kmod()
    modules_loaded = [str(m.name) for m in km.loaded()]
    modules_installed = SystemModules.get_installed_modules()
    modules_usable = [x for x in modules_installed if x not in modules_loaded]
    num_installed = len(modules_installed)
    num_loaded = len(modules_loaded)
    num_usable = len(modules_usable)

    print("%d Kernel modules installed, %d loaded" % (num_installed,
        num_loaded))
    print("Performing random load/unload test on %d kernel modules" % num_usable)

    do_test(km, modules_usable)

    modules_left = [str(m.name) for m in km.loaded()]
    num_left = len(modules_left)

    delta = num_left - num_loaded
    if delta > 0:
        print("Could not unload %d modules" % delta)
        mods = [x for x in modules_left if x not in modules_loaded]
        for m in mods:
            print m
    elif delta < 0:
        print("Removed too much modules %d" % delta)
Example #2
0
        def _init_kmod(self):
            if not self._init_mod_dir():
                raise RuntimeError("could not initialize modules dir")

            mod_dir_path = self.get_mod_dir_path()
            self.logger.debug(
                "Initializing kmod-based modalias lookup, using files from %s",
                (repr(mod_dir_path) if mod_dir_path else "<default>")
            )

            # TODO: find out how config from /etc can interfere with
            #       modalias lookup, and turn it off where appropriate
            #       (flags get already set to 0)
            return kmod.Kmod(mod_dir=self._convert_to_bytes(mod_dir_path))
Example #3
0
def display_modinfo(module_name):
    if _kmod is None:
        raise _kmod_import_error
    kmod = _kmod.Kmod()
    mod = kmod.module_from_name(name=module_name)
    items = [('filename', mod.path)]
    try:
        items.extend(mod.info.items())
    except _kmod_error.KmodError as e:
        raise ModuleNotFound(module_name)
    longest_key = max(len(k) for k, v in items)
    print('modinfo for {}'.format(module_name))
    for k, v in items:
        space = ' ' * (longest_key + 4 - len(k))
        print('  {}:{}{}'.format(k, space, v))
Example #4
0
def modprobe(module):
    '''
    Load the specified kernel module if needed.
    @param module: The name of the kernel module to be loaded.
    @type module: str
    '''
    if module in list_loaded_kernel_modules():
        return

    try:
        import kmod
        kmod.Kmod().modprobe(module)
    except ImportError:
        process = subprocess.Popen(("modprobe", module),
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE)
        (stdoutdata, stderrdata) = process.communicate()
        if process.returncode != 0:
            raise RTSLibError(stderrdata)
Example #5
0
def init_dpdk():
    km = kmod.Kmod()
    km.modprobe('uio')
    km.modprobe('uio_pci_generic')
    km.modprobe('igb_uio')
    km.modprobe('vfio-pci')
Example #6
0
def disable_uncore_frequency_scaling():
    km = kmod.Kmod()
    km.modprobe('msr')
    # source: "Energy Efficient Servers, Blueprints for Data Center Optimization" on Google play
    writemsr(0x620, 0x1d1d)