mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-04 00:25:29 +00:00
FreeBSD fixes - proper affinity setting, don't use SO_REUSEPORT
This commit is contained in:
committed by
Witold Kręcicki
parent
3f7d79e574
commit
e55bbec66e
@@ -110,7 +110,7 @@ isc_thread_setaffinity(int cpu) {
|
|||||||
CPU_ZERO(&cpuset);
|
CPU_ZERO(&cpuset);
|
||||||
CPU_SET(cpu, &cpuset);
|
CPU_SET(cpu, &cpuset);
|
||||||
if (cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1,
|
if (cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1,
|
||||||
&cpuset, sizeof(cpuset)) != 0) {
|
sizeof(cpuset), &cpuset) != 0) {
|
||||||
return (ISC_R_FAILURE);
|
return (ISC_R_FAILURE);
|
||||||
}
|
}
|
||||||
#elif defined(HAVE_PTHREAD_SETAFFINITY_NP)
|
#elif defined(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||||
|
@@ -3280,8 +3280,6 @@ process_fds(isc__socketthread_t *thread, struct kevent *events,
|
|||||||
bool readable, writable;
|
bool readable, writable;
|
||||||
bool done = false;
|
bool done = false;
|
||||||
bool have_ctlevent = false;
|
bool have_ctlevent = false;
|
||||||
INSIST(thread->threadid == 0);
|
|
||||||
|
|
||||||
if (nevents == thread->nevents) {
|
if (nevents == thread->nevents) {
|
||||||
/*
|
/*
|
||||||
* This is not an error, but something unexpected. If this
|
* This is not an error, but something unexpected. If this
|
||||||
@@ -5455,7 +5453,12 @@ static bool hasreuseport = false;
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
init_hasreuseport() {
|
init_hasreuseport() {
|
||||||
#ifdef SO_REUSEPORT
|
/*
|
||||||
|
* SO_REUSEPORT works very differently on *BSD and on Linux (because why not).
|
||||||
|
* We only want to use it on Linux, if it's available. On BSD we want to dup()
|
||||||
|
* sockets instead of re-binding them.
|
||||||
|
*/
|
||||||
|
#if defined(SO_REUSEPORT) && defined(__linux__)
|
||||||
int sock, yes = 1;
|
int sock, yes = 1;
|
||||||
sock = socket(AF_INET, SOCK_DGRAM, 0);
|
sock = socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
if (sock < 0) {
|
if (sock < 0) {
|
||||||
|
Reference in New Issue
Block a user