suricata
util-affinity.c File Reference
#include "suricata-common.h"
#include "util-affinity.h"
#include "util-cpu.h"
#include "conf.h"
#include "threads.h"
#include "queue.h"
#include "runmodes.h"
Include dependency graph for util-affinity.c:

Go to the source code of this file.

Macros

#define _THREAD_AFFINITY
 

Functions

ThreadsAffinityTypeGetAffinityTypeFromName (const char *name)
 find affinity by its name More...
 
void BuildCpusetWithCallback (const char *name, ConfNode *node, void(*Callback)(int i, void *data), void *data)
 
void AffinitySetupLoadFromConfig ()
 Extract cpu affinity configuration from current config file. More...
 
int AffinityGetNextCPU (ThreadsAffinityType *taf)
 Return next cpu to use for a given thread family. More...
 

Variables

ThreadsAffinityType thread_affinity [MAX_CPU_SET]
 
int thread_affinity_init_done = 0
 

Detailed Description

Author
Eric Leblond eric@.nosp@m.regi.nosp@m.t.org

CPU affinity related code and helper.

Definition in file util-affinity.c.

Macro Definition Documentation

#define _THREAD_AFFINITY

Definition at line 26 of file util-affinity.c.

Function Documentation

int AffinityGetNextCPU ( ThreadsAffinityType taf)

Return next cpu to use for a given thread family.

Return values
thecpu to used given by its id

Definition at line 297 of file util-affinity.c.

References ThreadsAffinityType_::cpu_set, ThreadsAffinityType_::lcpu, SC_ERR_INVALID_ARGUMENT, SCLogDebug, SCLogError, SCMutexLock, SCMutexUnlock, ThreadsAffinityType_::taf_mutex, and UtilCpuGetNumProcessorsOnline().

Referenced by TmThreadSetupOptions().

Here is the call graph for this function:

Here is the caller graph for this function:

void BuildCpusetWithCallback ( const char *  name,
ConfNode node,
void(*)(int i, void *data)  Callback,
void *  data 
)

Definition at line 98 of file util-affinity.c.

References BuildCpusetWithCallback(), index, next, SC_ERR_INVALID_ARGUMENT, SCLogError, TAILQ_FOREACH, UtilCpuGetNumProcessorsOnline(), and ConfNode_::val.

Referenced by BuildCpusetWithCallback().

Here is the call graph for this function:

Here is the caller graph for this function:

ThreadsAffinityType* GetAffinityTypeFromName ( const char *  name)

find affinity by its name

Return values
apointer to the affinity or NULL if not found

Definition at line 68 of file util-affinity.c.

References ThreadsAffinityType_::cpu_set, MAX_CPU_SET, SCLogDebug, SCMutexInit, and UtilCpuGetNumProcessorsConfigured().

Referenced by AffinitySetupLoadFromConfig().

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

ThreadsAffinityType thread_affinity[MAX_CPU_SET]
Initial value:
= {
{
.name = "receive-cpu-set",
.mode_flag = EXCLUSIVE_AFFINITY,
.prio = PRIO_MEDIUM,
.lcpu = 0,
},
{
.name = "worker-cpu-set",
.mode_flag = EXCLUSIVE_AFFINITY,
.prio = PRIO_MEDIUM,
.lcpu = 0,
},
{
.name = "verdict-cpu-set",
.mode_flag = BALANCED_AFFINITY,
.prio = PRIO_MEDIUM,
.lcpu = 0,
},
{
.name = "management-cpu-set",
.mode_flag = BALANCED_AFFINITY,
.prio = PRIO_MEDIUM,
.lcpu = 0,
},
}

store thread affinity mode for all type of threads

Definition at line 34 of file util-affinity.c.

Referenced by TmThreadGetNbThreads(), and TmThreadSetupOptions().

int thread_affinity_init_done = 0

Definition at line 62 of file util-affinity.c.

Referenced by AffinitySetupLoadFromConfig().