stream: make tcp.reassembly_memuse counter global

Fixes bugs #632 and #1178
pull/1508/head
Victor Julien 11 years ago
parent 06461e37da
commit b5bd3dee13

@ -135,12 +135,10 @@ void StreamTcpReassembleDecrMemuse(uint64_t size)
return;
}
void StreamTcpReassembleMemuseCounter(ThreadVars *tv, TcpReassemblyThreadCtx *rtv)
uint64_t StreamTcpReassembleMemuseGlobalCounter(void)
{
uint64_t smemuse = SC_ATOMIC_GET(ra_memuse);
if (tv != NULL && rtv != NULL)
SCPerfCounterSetUI64(tv, rtv->counter_tcp_reass_memuse, smemuse);
return;
return smemuse;
}
/**
@ -515,6 +513,9 @@ int StreamTcpReassembleInit(char quiet)
SCMutexInit(&segment_pool_memuse_mutex, NULL);
SCMutexInit(&segment_pool_cnt_mutex, NULL);
#endif
SCPerfTVRegisterGlobalCounter("tcp.reassembly_memuse",
StreamTcpReassembleMemuseGlobalCounter);
return 0;
}
@ -3419,7 +3420,6 @@ int StreamTcpReassembleHandleSegment(ThreadVars *tv, TcpReassemblyThreadCtx *ra_
}
}
StreamTcpReassembleMemuseCounter(tv, ra_ctx);
SCReturnInt(0);
}

@ -57,8 +57,6 @@ typedef struct TcpReassemblyThreadCtx_ {
uint16_t counter_tcp_segment_memcap;
/** number of streams that stop reassembly because their depth is reached */
uint16_t counter_tcp_stream_depth;
/** account memory usage for the reassembly portion of the stream engine */
uint16_t counter_tcp_reass_memuse;
/** count number of streams with a unrecoverable stream gap (missing pkts) */
uint16_t counter_tcp_reass_gap;
/** account memory usage by suricata to handle HTTP protocol (not counting

@ -115,6 +115,7 @@ static SCMutex ssn_pool_mutex = SCMUTEX_INITIALIZER; /**< init only, protect ini
static uint64_t ssn_pool_cnt = 0; /** counts ssns, protected by ssn_pool_mutex */
#endif
uint64_t StreamTcpReassembleMemuseGlobalCounter(void);
SC_ATOMIC_DECLARE(uint64_t, st_memuse);
/* stream engine running in "inline" mode. */
@ -5102,8 +5103,6 @@ TmEcode StreamTcpThreadInit(ThreadVars *tv, void *initdata, void **data)
SC_PERF_TYPE_UINT64);
stt->ra_ctx->counter_tcp_stream_depth = SCPerfTVRegisterCounter("tcp.stream_depth_reached", tv,
SC_PERF_TYPE_UINT64);
stt->ra_ctx->counter_tcp_reass_memuse = SCPerfTVRegisterCounter("tcp.reassembly_memuse", tv,
SC_PERF_TYPE_UINT64);
stt->ra_ctx->counter_tcp_reass_gap = SCPerfTVRegisterCounter("tcp.reassembly_gap", tv,
SC_PERF_TYPE_UINT64);
/** \fixme Find a better place in 2.1 as it is linked with app layer */

Loading…
Cancel
Save