From ee5d6fdb6f5f4c16e551932ff699caf0a43bf68f Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Wed, 26 Sep 2012 18:56:24 +0200 Subject: [PATCH] profiling: fix some profiling info missing from output --- src/util-profiling-rules.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/util-profiling-rules.c b/src/util-profiling-rules.c index 4b7c3c7615..7daa685c8f 100644 --- a/src/util-profiling-rules.c +++ b/src/util-profiling-rules.c @@ -300,32 +300,32 @@ SCProfilingRuleDump(SCProfileDetectCtx *rules_ctx) SCLogInfo("Dumping profiling data for %u rules.", count); memset(summary, 0, summary_size); - for (i = 1; i < count + 1; i++) { - summary[i - 1].sid = rules_profile_data[i].sid; - summary[i - 1].rev = rules_profile_data[i].rev; - summary[i - 1].gid = rules_profile_data[i].gid; + for (i = 0; i < count; i++) { + summary[i].sid = rules_profile_data[i].sid; + summary[i].rev = rules_profile_data[i].rev; + summary[i].gid = rules_profile_data[i].gid; - summary[i - 1].ticks = rules_profile_data[i].ticks_match + rules_profile_data[i].ticks_no_match; - summary[i - 1].checks = rules_profile_data[i].checks; + summary[i].ticks = rules_profile_data[i].ticks_match + rules_profile_data[i].ticks_no_match; + summary[i].checks = rules_profile_data[i].checks; - if (summary[i - 1].ticks > 0) { - summary[i - 1].avgticks = (long double)summary[i - 1].ticks / (long double)rules_profile_data[i].checks; + if (summary[i].ticks > 0) { + summary[i].avgticks = (long double)summary[i].ticks / (long double)rules_profile_data[i].checks; } - summary[i - 1].matches = rules_profile_data[i].matches; - summary[i - 1].max = rules_profile_data[i].max; - summary[i - 1].ticks_match = rules_profile_data[i].ticks_match; - summary[i - 1].ticks_no_match = rules_profile_data[i].ticks_no_match; + summary[i].matches = rules_profile_data[i].matches; + summary[i].max = rules_profile_data[i].max; + summary[i].ticks_match = rules_profile_data[i].ticks_match; + summary[i].ticks_no_match = rules_profile_data[i].ticks_no_match; if (rules_profile_data[i].ticks_match > 0) { - summary[i - 1].avgticks_match = (long double)rules_profile_data[i].ticks_match / + summary[i].avgticks_match = (long double)rules_profile_data[i].ticks_match / (long double)rules_profile_data[i].matches; } if (rules_profile_data[i].ticks_no_match > 0) { - summary[i - 1].avgticks_no_match = (long double)rules_profile_data[i].ticks_no_match / + summary[i].avgticks_no_match = (long double)rules_profile_data[i].ticks_no_match / ((long double)rules_profile_data[i].checks - (long double)rules_profile_data[i].matches); } - total_ticks += summary[i - 1].ticks; + total_ticks += summary[i].ticks; } switch (profiling_rules_sort_order) { @@ -440,7 +440,7 @@ SCProfilingRegisterRuleCounter(SCProfileDetectCtx *ctx) void SCProfilingRuleUpdateCounter(DetectEngineThreadCtx *det_ctx, uint16_t id, uint64_t ticks, int match) { - if (det_ctx != NULL && det_ctx->rule_perf_data != NULL && det_ctx->rule_perf_data_size >= id) { + if (det_ctx != NULL && det_ctx->rule_perf_data != NULL && det_ctx->rule_perf_data_size > id) { SCProfileData *p = &det_ctx->rule_perf_data[id]; p->checks++;