diff --git a/bin/tests/system/cpu/clean.sh b/bin/tests/system/cpu/clean.sh deleted file mode 100644 index 4a9f12fd20..0000000000 --- a/bin/tests/system/cpu/clean.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/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 diff --git a/bin/tests/system/cpu/ns1/named.conf.in b/bin/tests/system/cpu/ns1/named.conf.in deleted file mode 100644 index 6c934b23e4..0000000000 --- a/bin/tests/system/cpu/ns1/named.conf.in +++ /dev/null @@ -1,20 +0,0 @@ -/* - * 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; }; -}; diff --git a/bin/tests/system/cpu/prereq.sh b/bin/tests/system/cpu/prereq.sh deleted file mode 100644 index 8936129634..0000000000 --- a/bin/tests/system/cpu/prereq.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/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 diff --git a/bin/tests/system/cpu/setup.sh b/bin/tests/system/cpu/setup.sh deleted file mode 100644 index 9676770adb..0000000000 --- a/bin/tests/system/cpu/setup.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/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 diff --git a/bin/tests/system/cpu/tests.sh b/bin/tests/system/cpu/tests.sh deleted file mode 100644 index 31031a12dc..0000000000 --- a/bin/tests/system/cpu/tests.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/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 diff --git a/configure.ac b/configure.ac index 672bec018c..cb3f88d36d 100644 --- a/configure.ac +++ b/configure.ac @@ -538,10 +538,6 @@ AC_CHECK_HEADERS([sched.h]) 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 ]) diff --git a/lib/isc/include/isc/thread.h b/lib/isc/include/isc/thread.h index 59b3222337..e078097593 100644 --- a/lib/isc/include/isc/thread.h +++ b/lib/isc/include/isc/thread.h @@ -42,18 +42,12 @@ isc_thread_create(isc_threadfunc_t, isc_threadarg_t, isc_thread_t *); 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 diff --git a/lib/isc/thread.c b/lib/isc/thread.c index 4e2f9af8ba..4c7380cac1 100644 --- a/lib/isc/thread.c +++ b/lib/isc/thread.c @@ -97,15 +97,6 @@ isc_thread_join(isc_thread_t thread, isc_threadresult_t *result) { } } -#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__) @@ -136,99 +127,3 @@ isc_thread_yield(void) { 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); -}