BIND 10 trac2122, updated. 412ce6fa6dcb66594e417707b0ef655cef5967d9 [2122] Detect SMP on FreeBSD

BIND 10 source code commits bind10-changes at lists.isc.org
Sun Jul 15 18:49:44 UTC 2012


The branch, trac2122 has been updated
       via  412ce6fa6dcb66594e417707b0ef655cef5967d9 (commit)
      from  54187dc3c52bf39c5d91c59ddda69b436f1acf30 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 412ce6fa6dcb66594e417707b0ef655cef5967d9
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jul 16 00:19:27 2012 +0530

    [2122] Detect SMP on FreeBSD

-----------------------------------------------------------------------

Summary of changes:
 src/lib/python/isc/sysinfo/sysinfo.py            |    7 ++++++-
 src/lib/python/isc/sysinfo/tests/sysinfo_test.py |    4 +++-
 2 files changed, 9 insertions(+), 2 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/python/isc/sysinfo/sysinfo.py b/src/lib/python/isc/sysinfo/sysinfo.py
index ddfd224..ceb97d0 100644
--- a/src/lib/python/isc/sysinfo/sysinfo.py
+++ b/src/lib/python/isc/sysinfo/sysinfo.py
@@ -402,11 +402,16 @@ class SysInfoFreeBSD(SysInfoBSD):
         super().__init__()
 
         # Don't know how to gather these
-        self._platform_is_smp = False
         self._mem_cached = -1
         self._mem_buffers = -1
 
         try:
+            s = subprocess.check_output(['sysctl', '-n', 'kern.smp.active'])
+            self._platform_is_smp = int(s.decode('utf-8').strip()) > 0
+        except (subprocess.CalledProcessError, OSError):
+            pass
+
+        try:
             s = subprocess.check_output(['sysctl', '-n', 'kern.boottime'])
             t = s.decode('utf-8').strip()
             r = re.match('^\{\s+sec\s+\=\s+(\d+),.*', t)
diff --git a/src/lib/python/isc/sysinfo/tests/sysinfo_test.py b/src/lib/python/isc/sysinfo/tests/sysinfo_test.py
index 5b47a32..beebb90 100644
--- a/src/lib/python/isc/sysinfo/tests/sysinfo_test.py
+++ b/src/lib/python/isc/sysinfo/tests/sysinfo_test.py
@@ -132,6 +132,8 @@ def _my_freebsd_subprocess_check_output(command):
     assert type(command) == list, 'command argument is not a list'
     if command == ['hostname']:
         return b'daemon.example.com\n'
+    elif command == ['sysctl', '-n', 'kern.smp.active']:
+        return b'1\n'
     elif command == ['sysctl', '-n', 'kern.boottime']:
         return bytes('{ sec = ' + str(int(time.time() - 76632)) + ', usec = 0 }\n', 'utf-8')
     elif command == ['sysctl', '-n', 'vm.loadavg']:
@@ -331,7 +333,7 @@ class SysInfoTest(unittest.TestCase):
         s = SysInfoFromFactory()
         self.assertEqual(91, s.get_num_processors())
         self.assertEqual('daemon.example.com', s.get_platform_hostname())
-        self.assertFalse(s.get_platform_is_smp())
+        self.assertTrue(s.get_platform_is_smp())
 
         self.assertLess(abs(76632 - s.get_uptime()), 4)
         self.assertEqual([0.2, 0.4, 0.6], s.get_loadavg())



More information about the bind10-changes mailing list