]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2472. [port] linux: check the number of available cpu's before
authorMark Andrews <marka@isc.org>
Fri, 24 Oct 2008 01:14:35 +0000 (01:14 +0000)
committerMark Andrews <marka@isc.org>
Fri, 24 Oct 2008 01:14:35 +0000 (01:14 +0000)
                        calling chroot as it depends on "/proc". [RT #16923]

CHANGES
bin/named/include/named/globals.h
bin/named/main.c

diff --git a/CHANGES b/CHANGES
index 85d216daf4f6404be814851a4e5842ce8b064eb5..69d4e144e9d5f6b7e24989a48c64f2d72e6164b1 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2472.  [port]          linux: check the number of available cpu's before
+                       calling chroot as it depends on "/proc". [RT #16923]
+
 2471.  [bug]           named-checkzone was not reporting missing manditory
                        glue when sibling checks were disabled. [RT #18768]
 
index 11f3989460e9504084aa3e3f59ee66198ba74cea..7722588bcc257e6c26cebf45612e796b151ab99c 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: globals.h,v 1.64.18.4 2006/03/02 00:37:21 marka Exp $ */
+/* $Id: globals.h,v 1.64.18.5 2008/10/24 01:14:35 marka Exp $ */
 
 #ifndef NAMED_GLOBALS_H
 #define NAMED_GLOBALS_H 1
@@ -48,6 +48,7 @@ EXTERN isc_taskmgr_t *                ns_g_taskmgr            INIT(NULL);
 EXTERN dns_dispatchmgr_t *     ns_g_dispatchmgr        INIT(NULL);
 EXTERN isc_entropy_t *         ns_g_entropy            INIT(NULL);
 EXTERN isc_entropy_t *         ns_g_fallbackentropy    INIT(NULL);
+EXTERN unsigned int            ns_g_cpus_detected      INIT(1);
 
 /*
  * XXXRTH  We're going to want multiple timer managers eventually.  One
index eeb6673c7c6183c185f5a9556d5dabc10d94b36f..881a16acdc55857b410e35a0eb4dd5bdcaff928a 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: main.c,v 1.136.18.19 2008/08/21 23:46:01 tbox Exp $ */
+/* $Id: main.c,v 1.136.18.20 2008/10/24 01:14:35 marka Exp $ */
 
 /*! \file */
 
@@ -473,17 +473,13 @@ static isc_result_t
 create_managers(void) {
        isc_result_t result;
        unsigned int socks;
-#ifdef ISC_PLATFORM_USETHREADS
-       unsigned int cpus_detected;
-#endif
 
 #ifdef ISC_PLATFORM_USETHREADS
-       cpus_detected = isc_os_ncpus();
        if (ns_g_cpus == 0)
-               ns_g_cpus = cpus_detected;
+               ns_g_cpus = ns_g_cpus_detected;
        isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,
                      ISC_LOG_INFO, "found %u CPU%s, using %u worker thread%s",
-                     cpus_detected, cpus_detected == 1 ? "" : "s",
+                     ns_g_cpus_detected, ns_g_cpus_detected == 1 ? "" : "s",
                      ns_g_cpus, ns_g_cpus == 1 ? "" : "s");
 #else
        ns_g_cpus = 1;
@@ -616,6 +612,13 @@ setup(void) {
        }
 #endif
 
+#ifdef ISC_PLATFORM_USETHREADS
+       /*
+        * Check for the number of cpu's before ns_os_chroot().
+        */
+       ns_g_cpus_detected = isc_os_ncpus();
+#endif
+
        ns_os_chroot(ns_g_chrootdir);
 
        /*