+++ /dev/null
-#!/bin/sh
-
-# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
-#
-# SPDX-License-Identifier: MPL-2.0
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, you can obtain one at https://mozilla.org/MPL/2.0/.
-#
-# See the COPYRIGHT file distributed with this work for additional
-# information regarding copyright ownership.
-
-set -e
-
-rm -f ps.out
-rm -f ns1/named.conf ns1/managed-keys.* ns1/named.run ns1/named.memstats
+++ /dev/null
-/*
- * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
- *
- * SPDX-License-Identifier: MPL-2.0
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, you can obtain one at https://mozilla.org/MPL/2.0/.
- *
- * See the COPYRIGHT file distributed with this work for additional
- * information regarding copyright ownership.
- */
-
-options {
- query-source address 10.53.0.1;
- port @PORT@;
- pid-file "named.pid";
- listen-on { 10.53.0.1; };
- listen-on-v6 { none; };
-};
+++ /dev/null
-#!/bin/sh -e
-
-# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
-#
-# SPDX-License-Identifier: MPL-2.0
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, you can obtain one at https://mozilla.org/MPL/2.0/.
-#
-# See the COPYRIGHT file distributed with this work for additional
-# information regarding copyright ownership.
-
-set -e
-
-# shellcheck source=conf.sh
-. ../conf.sh
-
-case $(uname) in
- Linux*)
- ;;
- *)
- echo_i "cpu test only runs on Linux"
- exit 255
- ;;
-esac
-
-# TASKSET will be an empty string if no taskset program was found.
-TASKSET=$(command -v "taskset" || true)
-if ! test -x "$TASKSET" ; then
- exit 255
-fi
-
-if ! $TASKSET fff0 true > /dev/null 2>&1; then
- echo_i "taskset failed"
- exit 255
-fi
+++ /dev/null
-#!/bin/sh -e
-
-# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
-#
-# SPDX-License-Identifier: MPL-2.0
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, you can obtain one at https://mozilla.org/MPL/2.0/.
-#
-# See the COPYRIGHT file distributed with this work for additional
-# information regarding copyright ownership.
-
-# shellcheck source=conf.sh
-. ../conf.sh
-
-set -e
-
-$SHELL clean.sh
-
-copy_setports ns1/named.conf.in ns1/named.conf
+++ /dev/null
-#!/bin/sh
-
-# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
-#
-# SPDX-License-Identifier: MPL-2.0
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, you can obtain one at https://mozilla.org/MPL/2.0/.
-#
-# See the COPYRIGHT file distributed with this work for additional
-# information regarding copyright ownership.
-
-# shellcheck source=conf.sh
-. ../conf.sh
-
-status=0
-n=0
-
-n=$((n+1))
-echo_i "stop server ($n)"
-ret=0
-$PERL ../stop.pl cpu ns1 || ret=1
-test "$ret" -eq 0 || echo_i "failed"
-status=$((status+ret))
-
-n=$((n+1))
-echo_i "start server with taskset ($n)"
-ret=0
-start_server --noclean --taskset fff0 --restart --port "${PORT}" cpu ns1 || ret=1
-test "$ret" -eq 0 || echo_i "failed"
-status=$((status+ret))
-
-n=$((n+1))
-echo_i "check ps output ($n)"
-ret=0
-ps -T -o pid,psr,time,comm -e > ps.out
-pid=$(cat ns1/named.pid)
-echo_i "pid=$pid"
-psr=$(awk -v pid="$pid" '$1 == pid && $4 == "isc-net-0000" {print $2}' < ps.out)
-echo_i "psr=$psr"
-# The next available cpu relative to the existing affinity mask is 4.
-test "$psr" -eq 4 || ret=1
-test "$ret" -eq 0 || echo_i "failed"
-status=$((status+ret))
-
-echo_i "exit status: $status"
-[ $status -eq 0 ] || exit 1
AC_SEARCH_LIBS([sched_yield],[rt])
AC_CHECK_FUNCS([sched_yield pthread_yield pthread_yield_np])
-AC_CHECK_HEADERS([sys/cpuset.h])
-AC_CHECK_HEADERS([sys/procset.h])
-AC_CHECK_FUNCS([pthread_setaffinity_np cpuset_setaffinity processor_bind sched_setaffinity])
-
# Look for functions relating to thread naming
AC_CHECK_FUNCS([pthread_setname_np pthread_set_name_np])
AC_CHECK_HEADERS([pthread_np.h], [], [], [#include <pthread.h>])
void
isc_thread_join(isc_thread_t thread, isc_threadresult_t *result);
-void
-isc_thread_setconcurrency(unsigned int level);
-
void
isc_thread_yield(void);
void
isc_thread_setname(isc_thread_t thread, const char *name);
-isc_result_t
-isc_thread_setaffinity(int cpu);
-
#define isc_thread_self (uintptr_t) pthread_self
ISC_LANG_ENDDECLS
}
}
-#ifdef __NetBSD__
-#define pthread_setconcurrency(a) (void)a /* nothing */
-#endif /* ifdef __NetBSD__ */
-
-void
-isc_thread_setconcurrency(unsigned int level) {
- (void)pthread_setconcurrency(level);
-}
-
void
isc_thread_setname(isc_thread_t thread, const char *name) {
#if defined(HAVE_PTHREAD_SETNAME_NP) && !defined(__APPLE__)
pthread_yield_np();
#endif /* if defined(HAVE_SCHED_YIELD) */
}
-
-#if defined(HAVE_CPUSET_SETAFFINITY) || defined(HAVE_PTHREAD_SETAFFINITY_NP)
-#if defined(HAVE_CPUSET_SETAFFINITY)
-static int
-getaffinity(cpuset_t *set) {
- return (cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1,
- sizeof(*set), set));
-}
-static int
-issetaffinity(int cpu, cpuset_t *set) {
- return ((cpu >= CPU_SETSIZE) ? -1 : CPU_ISSET(cpu, set) ? 1 : 0);
-}
-static int
-setaffinity(int cpu, cpuset_t *set) {
- CPU_ZERO(set);
- CPU_SET(cpu, set);
- return (cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1,
- sizeof(*set), set));
-}
-#elif defined(__NetBSD__)
-static int
-getaffinity(cpuset_t *set) {
- return (pthread_getaffinity_np(pthread_self(), cpuset_size(set), set));
-}
-static int
-issetaffinity(int cpu, cpuset_t *set) {
- return (cpuset_isset(cpu, set));
-}
-static int
-setaffinity(int cpu, cpuset_t *set) {
- cpuset_zero(set);
- cpuset_set(cpu, set);
- return (pthread_setaffinity_np(pthread_self(), cpuset_size(set), set));
-}
-#else /* linux ? */
-static int
-getaffinity(cpu_set_t *set) {
- return (pthread_getaffinity_np(pthread_self(), sizeof(*set), set));
-}
-static int
-issetaffinity(int cpu, cpu_set_t *set) {
- return ((cpu >= CPU_SETSIZE) ? -1 : CPU_ISSET(cpu, set) ? 1 : 0);
-}
-static int
-setaffinity(int cpu, cpu_set_t *set) {
- CPU_ZERO(set);
- CPU_SET(cpu, set);
- return (pthread_setaffinity_np(pthread_self(), sizeof(*set), set));
-}
-#endif
-#endif
-
-isc_result_t
-isc_thread_setaffinity(int cpu) {
-#if defined(HAVE_CPUSET_SETAFFINITY) || defined(HAVE_PTHREAD_SETAFFINITY_NP)
- int cpu_id = -1, cpu_aff_ok_counter = -1, n;
-#if defined(HAVE_CPUSET_SETAFFINITY)
- cpuset_t _set, *set = &_set;
-#define cpuset_destroy(x) ((void)0)
-#elif defined(__NetBSD__)
- cpuset_t *set = cpuset_create();
- if (set == NULL) {
- return (ISC_R_FAILURE);
- }
-#else /* linux? */
- cpu_set_t _set, *set = &_set;
-#define cpuset_destroy(x) ((void)0)
-#endif
-
- if (getaffinity(set) != 0) {
- cpuset_destroy(set);
- return (ISC_R_FAILURE);
- }
- while (cpu_aff_ok_counter < cpu) {
- cpu_id++;
- if ((n = issetaffinity(cpu_id, set)) > 0) {
- cpu_aff_ok_counter++;
- } else if (n < 0) {
- cpuset_destroy(set);
- return (ISC_R_FAILURE);
- }
- }
- if (setaffinity(cpu_id, set) != 0) {
- cpuset_destroy(set);
- return (ISC_R_FAILURE);
- }
- cpuset_destroy(set);
-#elif defined(HAVE_PROCESSOR_BIND)
- if (processor_bind(P_LWPID, P_MYID, cpu, NULL) != 0) {
- return (ISC_R_FAILURE);
- }
-#else /* if defined(HAVE_CPUSET_SETAFFINITY) */
- UNUSED(cpu);
-#endif /* if defined(HAVE_CPUSET_SETAFFINITY) */
- return (ISC_R_SUCCESS);
-}