Project

General

Profile

Bug #852 ยป cpu_sets.diff

Mark Solaris, 07/09/2013 04:55 AM

View differences:

suricata-1.4.3/src/util-affinity.h Sat Jul 6 15:30:49 2013
typedef struct ThreadsAffinityType_ {
char *name;
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ && !defined __sun
cpu_set_t cpu_set;
#endif
uint8_t mode_flag;
int prio;
int nb_threads;
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ && !defined __sun
cpu_set_t lowprio_cpu;
cpu_set_t medprio_cpu;
cpu_set_t hiprio_cpu;
-- suricata-1.4.3/src/util-affinity.c.orig Tue Jul 9 13:05:13 2013
++ suricata-1.4.3/src/util-affinity.c Tue Jul 9 13:08:23 2013
......
return NULL;
}
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ && !defined(__sun)
static void AffinitySetupInit()
{
int i, j;
......
break;
}
}
#endif /* OS_WIN32 and __OpenBSD__ */
#endif /* OS_WIN32 and __OpenBSD__ and __sun */
/**
* \brief Extract cpu affinity configuration from current config file
......
void AffinitySetupLoadFromConfig()
{
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ && !defined(__sun)
ConfNode *root = ConfGetNode("threading.cpu-affinity");
ConfNode *affinity;
......
}
}
}
#endif /* OS_WIN32 and __OpenBSD__ */
#endif /* OS_WIN32 and __OpenBSD__ and __sun */
}
/**
......
{
int ncpu = 0;
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ && !defined(__sun)
int iter = 0;
SCMutexLock(&taf->taf_mutex);
ncpu = taf->lcpu;
......
taf->lcpu = 0;
SCMutexUnlock(&taf->taf_mutex);
SCLogInfo("Setting affinity on CPU %d", ncpu);
#endif /* OS_WIN32 and __OpenBSD__ */
#endif /* OS_WIN32 and __OpenBSD__ and __sun */
return ncpu;
}
-- suricata-1.4.3/src/tm-threads.c.orig Mon Jul 8 15:45:34 2013
++ suricata-1.4.3/src/tm-threads.c Mon Jul 8 15:50:00 2013
......
* Thread management functions.
*/
#if defined(__sun)
#include <pthread.h>
#endif
#include "suricata-common.h"
#include "suricata.h"
#include "stream.h"
......
return NULL;
}
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ && !defined __sun
static int SetCPUAffinitySet(cpu_set_t *cs) {
#if defined OS_FREEBSD
int r = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID,
......
*/
static int SetCPUAffinity(uint16_t cpuid)
{
#if defined __OpenBSD__
#if defined __OpenBSD__ || defined __sun
return 0;
#else
int cpu = (int)cpuid;
......
if (tv->thread_setup_flags & THREAD_SET_AFFINITY) {
SCLogInfo("Setting affinity for \"%s\" Module to cpu/core "
"%"PRIu16", thread id %lu", tv->name, tv->cpu_affinity,
#if defined(__sun)
pthread_self());
#else
SCGetThreadIdLong());
#endif
SetCPUAffinity(tv->cpu_affinity);
}
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__
#if !defined __CYGWIN__ && !defined OS_WIN32 && !defined __OpenBSD__ && !defined __sun
if (tv->thread_setup_flags & THREAD_SET_PRIORITY)
TmThreadSetPrio(tv);
if (tv->thread_setup_flags & THREAD_SET_AFFTYPE) {
    (1-1/1)