profiling: more prefilter profiling

pull/2310/head
Victor Julien 9 years ago
parent 125603871b
commit dba14b676c

@ -115,6 +115,7 @@ void Prefilter(DetectEngineThreadCtx *det_ctx, const SigGroupHead *sgh,
PROFILING_PREFILTER_RESET(p, det_ctx->de_ctx->profile_prefilter_maxid);
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_PF_PKT);
/* run packet engines */
PrefilterEngine *engine = sgh->pkt_engines;
while (engine) {
@ -124,9 +125,11 @@ void Prefilter(DetectEngineThreadCtx *det_ctx, const SigGroupHead *sgh,
engine = engine->next;
}
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_PF_PKT);
/* run payload inspecting engines */
if ((p->payload_len > 0 || det_ctx->smsg != NULL) && !(p->flags & PKT_NOPAYLOAD_INSPECTION)) {
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_PF_PAYLOAD);
engine = sgh->payload_engines;
while (engine) {
PROFILING_PREFILTER_START(p);
@ -135,6 +138,7 @@ void Prefilter(DetectEngineThreadCtx *det_ctx, const SigGroupHead *sgh,
engine = engine->next;
}
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_PF_PAYLOAD);
}
/* run tx engines */
@ -142,7 +146,9 @@ void Prefilter(DetectEngineThreadCtx *det_ctx, const SigGroupHead *sgh,
if (sgh->tx_engines != NULL && p->flow != NULL &&
p->flow->alproto != ALPROTO_UNKNOWN && p->flow->alstate != NULL)
{
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_PF_TX);
PrefilterTx(det_ctx, sgh, p, flags);
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_PF_TX);
}
}
}

@ -1200,9 +1200,13 @@ int SigMatchSignatures(ThreadVars *th_v, DetectEngineCtx *de_ctx, DetectEngineTh
/* Sort the rule list to lets look at pmq.
* NOTE due to merging of 'stream' pmqs we *MAY* have duplicate entries */
if (det_ctx->pmq.rule_id_array_cnt > 1) {
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_PF_SORT1);
QuickSortSigIntId(det_ctx->pmq.rule_id_array, det_ctx->pmq.rule_id_array_cnt);
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_PF_SORT1);
}
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_PF_SORT2);
DetectPrefilterMergeSort(de_ctx, det_ctx);
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_PF_SORT2);
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_PREFILTER);
#ifdef PROFILING

@ -314,6 +314,11 @@ typedef enum PacketProfileDetectId_ {
PROF_DETECT_RULES,
PROF_DETECT_STATEFUL,
PROF_DETECT_PREFILTER,
PROF_DETECT_PF_PKT,
PROF_DETECT_PF_PAYLOAD,
PROF_DETECT_PF_TX,
PROF_DETECT_PF_SORT1,
PROF_DETECT_PF_SORT2,
PROF_DETECT_NONMPMLIST,
PROF_DETECT_ALERT,
PROF_DETECT_CLEANUP,

@ -1312,6 +1312,11 @@ const char * PacketProfileDetectIdToString(PacketProfileDetectId id)
CASE_CODE (PROF_DETECT_IPONLY);
CASE_CODE (PROF_DETECT_RULES);
CASE_CODE (PROF_DETECT_PREFILTER);
CASE_CODE (PROF_DETECT_PF_PKT);
CASE_CODE (PROF_DETECT_PF_PAYLOAD);
CASE_CODE (PROF_DETECT_PF_TX);
CASE_CODE (PROF_DETECT_PF_SORT1);
CASE_CODE (PROF_DETECT_PF_SORT2);
CASE_CODE (PROF_DETECT_STATEFUL);
CASE_CODE (PROF_DETECT_ALERT);
CASE_CODE (PROF_DETECT_CLEANUP);

Loading…
Cancel
Save