uint16_t flow_mgr_cnt_clo;
uint16_t flow_mgr_cnt_new;
uint16_t flow_mgr_cnt_est;
- uint16_t flow_mgr_memuse;
uint16_t flow_mgr_spare;
uint16_t flow_emerg_mode_enter;
uint16_t flow_emerg_mode_over;
ftd->flow_mgr_cnt_clo = StatsRegisterCounter("flow_mgr.closed_pruned", t);
ftd->flow_mgr_cnt_new = StatsRegisterCounter("flow_mgr.new_pruned", t);
ftd->flow_mgr_cnt_est = StatsRegisterCounter("flow_mgr.est_pruned", t);
- ftd->flow_mgr_memuse = StatsRegisterCounter("flow.memuse", t);
ftd->flow_mgr_spare = StatsRegisterCounter("flow.spare", t);
ftd->flow_emerg_mode_enter = StatsRegisterCounter("flow.emerg_mode_entered", t);
ftd->flow_emerg_mode_over = StatsRegisterCounter("flow.emerg_mode_over", t);
StatsAddUI64(th_v, ftd->flow_mgr_cnt_clo, (uint64_t)counters.clo);
StatsAddUI64(th_v, ftd->flow_mgr_cnt_new, (uint64_t)counters.new);
StatsAddUI64(th_v, ftd->flow_mgr_cnt_est, (uint64_t)counters.est);
- long long unsigned int flow_memuse = SC_ATOMIC_GET(flow_memuse);
- StatsSetUI64(th_v, ftd->flow_mgr_memuse, (uint64_t)flow_memuse);
StatsAddUI64(th_v, ftd->flow_tcp_reuse, (uint64_t)counters.tcp_reuse);
uint32_t len = 0;
return TM_ECODE_OK;
}
+static uint64_t FlowGetMemuse(void)
+{
+ uint64_t flow_memuse = SC_ATOMIC_GET(flow_memuse);
+ return flow_memuse;
+}
+
/** \brief spawn the flow manager thread */
void FlowManagerThreadSpawn()
{
SCCtrlCondInit(&flow_manager_ctrl_cond, NULL);
SCCtrlMutexInit(&flow_manager_ctrl_mutex, NULL);
+ StatsRegisterGlobalCounter("flow.memuse", FlowGetMemuse);
+
uint32_t u;
for (u = 0; u < flowmgr_number; u++) {
ThreadVars *tv_flowmgr = NULL;