@ -124,7 +124,7 @@ static void build_cpuset(ConfNode *node, cpu_set_t *cpu)
int stop = 0 ;
int stop = 0 ;
if ( ! strcmp ( lnode - > val , " all " ) ) {
if ( ! strcmp ( lnode - > val , " all " ) ) {
a = 0 ;
a = 0 ;
b = UtilCpuGetNumProcessors Configured( ) ;
b = UtilCpuGetNumProcessors Online( ) - 1 ;
stop = 1 ;
stop = 1 ;
} else if ( index ( lnode - > val , ' - ' ) ! = NULL ) {
} else if ( index ( lnode - > val , ' - ' ) ! = NULL ) {
char * sep = index ( lnode - > val , ' - ' ) ;
char * sep = index ( lnode - > val , ' - ' ) ;
@ -188,6 +188,7 @@ void AffinitySetupLoadFromConfig()
TAILQ_FOREACH ( affinity , & root - > head , next ) {
TAILQ_FOREACH ( affinity , & root - > head , next ) {
ThreadsAffinityType * taf = GetAffinityTypeFromName ( affinity - > val ) ;
ThreadsAffinityType * taf = GetAffinityTypeFromName ( affinity - > val ) ;
ConfNode * node = NULL ;
ConfNode * node = NULL ;
ConfNode * nprio = NULL ;
if ( taf = = NULL ) {
if ( taf = = NULL ) {
SCLogError ( SC_ERR_INVALID_ARGUMENT , " unknown cpu_affinity type " ) ;
SCLogError ( SC_ERR_INVALID_ARGUMENT , " unknown cpu_affinity type " ) ;
@ -206,43 +207,31 @@ void AffinitySetupLoadFromConfig()
}
}
CPU_ZERO ( & taf - > lowprio_cpu ) ;
CPU_ZERO ( & taf - > lowprio_cpu ) ;
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " low_prio " ) ;
CPU_ZERO ( & taf - > medprio_cpu ) ;
CPU_ZERO ( & taf - > hiprio_cpu ) ;
nprio = ConfNodeLookupChild ( affinity - > head . tqh_first , " prio " ) ;
if ( nprio ! = NULL ) {
node = ConfNodeLookupChild ( nprio , " low " ) ;
if ( node = = NULL ) {
if ( node = = NULL ) {
SCLogDebug ( " unable to find 'low_prio' using default value " ) ;
SCLogDebug ( " unable to find 'low ' prio using default value" ) ;
} else {
} else {
build_cpuset ( node , & taf - > lowprio_cpu ) ;
build_cpuset ( node , & taf - > lowprio_cpu ) ;
}
}
CPU_ZERO ( & taf - > medprio_cpu ) ;
node = ConfNodeLookupChild ( nprio , " medium " ) ;
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " medium_prio " ) ;
if ( node = = NULL ) {
if ( node = = NULL ) {
SCLogDebug ( " unable to find 'medium _prio' using default value" ) ;
SCLogDebug ( " unable to find 'medium ' prio using default value" ) ;
} else {
} else {
build_cpuset ( node , & taf - > medprio_cpu ) ;
build_cpuset ( node , & taf - > medprio_cpu ) ;
}
}
CPU_ZERO ( & taf - > hiprio_cpu ) ;
node = ConfNodeLookupChild ( nprio , " high " ) ;
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " high_prio " ) ;
if ( node = = NULL ) {
if ( node = = NULL ) {
SCLogDebug ( " unable to find 'high _prio' using default value" ) ;
SCLogDebug ( " unable to find 'high ' prio using default value" ) ;
} else {
} else {
build_cpuset ( node , & taf - > hiprio_cpu ) ;
build_cpuset ( node , & taf - > hiprio_cpu ) ;
}
}
node = ConfNodeLookupChild ( nprio , " default " ) ;
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " mode " ) ;
if ( node ! = NULL ) {
if ( ! strcmp ( node - > val , " exclusive " ) ) {
taf - > mode_flag = EXCLUSIVE_AFFINITY ;
} else if ( ! strcmp ( node - > val , " balanced " ) ) {
taf - > mode_flag = BALANCED_AFFINITY ;
} else {
SCLogError ( SC_ERR_INVALID_ARGUMENT , " unknown cpu_affinity node " ) ;
exit ( EXIT_FAILURE ) ;
}
}
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " prio " ) ;
if ( node ! = NULL ) {
if ( node ! = NULL ) {
if ( ! strcmp ( node - > val , " low " ) ) {
if ( ! strcmp ( node - > val , " low " ) ) {
taf - > prio = PRIO_LOW ;
taf - > prio = PRIO_LOW ;
@ -254,6 +243,20 @@ void AffinitySetupLoadFromConfig()
SCLogError ( SC_ERR_INVALID_ARGUMENT , " unknown cpu_affinity prio " ) ;
SCLogError ( SC_ERR_INVALID_ARGUMENT , " unknown cpu_affinity prio " ) ;
exit ( EXIT_FAILURE ) ;
exit ( EXIT_FAILURE ) ;
}
}
SCLogInfo ( " Using default prio '%s' " , node - > val ) ;
}
}
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " mode " ) ;
if ( node ! = NULL ) {
if ( ! strcmp ( node - > val , " exclusive " ) ) {
taf - > mode_flag = EXCLUSIVE_AFFINITY ;
} else if ( ! strcmp ( node - > val , " balanced " ) ) {
taf - > mode_flag = BALANCED_AFFINITY ;
} else {
SCLogError ( SC_ERR_INVALID_ARGUMENT , " unknown cpu_affinity node " ) ;
exit ( EXIT_FAILURE ) ;
}
}
}
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " threads " ) ;
node = ConfNodeLookupChild ( affinity - > head . tqh_first , " threads " ) ;