[PATCH 1/3] hwlatdetect: handle hwlat_detector being builtin rather than module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Clark Williams <williams@xxxxxxxxxx>

Originally the hwlat_detector was built as only a module and was
controlled by module parameters. The latest version uses debugfs
control files so there is no real need to force it to be a module.

The hwlatdetector script in rt-tests assumes that the hwlat_detector
code was built as a module. This patch adds logic to detect and
handle if hwlat_detector is a builtin.

Signed-off-by: Clark Williams <williams@xxxxxxxxxx>
Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>
---
 src/hwlatdetect/hwlatdetect.py | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/hwlatdetect/hwlatdetect.py b/src/hwlatdetect/hwlatdetect.py
index dbf3f674faba..2a1c562c2188 100755
--- a/src/hwlatdetect/hwlatdetect.py
+++ b/src/hwlatdetect/hwlatdetect.py
@@ -108,6 +108,14 @@ class Kmod(object):
     ''' class to manage loading and unloading hwlat.ko'''
 
     names = ("hwlat_detector", "smi_detector")
+    def __check_builtin(self):
+        for l in open(os.path.join('/lib/modules', os.uname()[2], 'modules.builtin'), "r"):
+            for m in Kmod.names:
+                if m in l:
+                    debug("found %s as builtin" % m)
+                    return m
+        return None
+
     def __find_modname(self):
         debug("looking for modules")
         path = os.path.join("/lib/modules",
@@ -123,6 +131,15 @@ class Kmod(object):
 
     def __init__(self):
         self.preloaded = False
+        self.builtin = False
+
+        # check for builtin
+        self.modname = self.__check_builtin()
+        if self.modname:
+            self.builtin = True
+            return
+
+        # now look for module
         f = open ('/proc/modules')
         for l in f:
             field = l.split()
@@ -136,6 +153,9 @@ class Kmod(object):
         self.modname = self.__find_modname()
 
     def load(self):
+        if self.builtin:
+            debug("not loading %s (builtin)" % self.modname)
+            return True
         if self.preloaded:
             debug("not loading %s (already loaded)" % self.modname)
             return True
@@ -143,7 +163,7 @@ class Kmod(object):
         return (subprocess.call(cmd) == 0)
 
     def unload(self):
-        if self.preloaded:
+        if self.preloaded or self.builtin:
             debug("Not unloading %s" % self.modname)
             return True
         cmd = ['/sbin/modprobe', '-r', self.modname]
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux