summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuwentan <[email protected]>2023-09-21 17:13:52 +0800
committerliuwentan <[email protected]>2023-09-21 17:13:52 +0800
commit1e6c87c3d43cd7cb549bf021f0aef404a384add0 (patch)
tree26b47856a698b4756749a6e9a65efce2ba0db76a
parent2a9ba6c08fc8620dd98d64ded7ab14e3fc2b610d (diff)
[PATCH]the number of hit path maximum:4096v4.0.41
-rw-r--r--src/inc_internal/maat_utils.h1
-rw-r--r--src/maat_compile.c4
-rw-r--r--src/maat_stat.c24
-rw-r--r--test/maat_framework_gtest.cpp1
4 files changed, 18 insertions, 12 deletions
diff --git a/src/inc_internal/maat_utils.h b/src/inc_internal/maat_utils.h
index b7311ad..ac1e543 100644
--- a/src/inc_internal/maat_utils.h
+++ b/src/inc_internal/maat_utils.h
@@ -52,6 +52,7 @@ extern "C"
(type *)( (char *)__mptr - offsetof(type,member) );})
#endif
+#define MAX_HIT_PATH_NUM 4096
#define MAX_SCANNER_HIT_COMPILE_NUM 4096
#define MAX_SCANNER_HIT_GROUP_NUM 4096
#define MAX_SCANNER_HIT_ITEM_NUM 4096
diff --git a/src/maat_compile.c b/src/maat_compile.c
index bc50b27..b56d391 100644
--- a/src/maat_compile.c
+++ b/src/maat_compile.c
@@ -1422,6 +1422,10 @@ void maat_compile_state_free(struct maat_compile_state *compile_state,
static void maat_compile_hit_path_add(UT_array *hit_paths, long long item_id,
long long group_id, int vtable_id, int Nth_scan)
{
+ if (NULL == hit_paths || utarray_len(hit_paths) >= MAX_HIT_PATH_NUM) {
+ return;
+ }
+
struct maat_internal_hit_path new_path;
new_path.item_id = item_id;
diff --git a/src/maat_stat.c b/src/maat_stat.c
index add7b21..8c9e65a 100644
--- a/src/maat_stat.c
+++ b/src/maat_stat.c
@@ -31,8 +31,7 @@ enum MAAT_FS_STATUS {
STATUS_GROUP_REF_NOT_NUM,
STATUS_GROUP_REF_EXCL_NUM, //group reference exclude group num
STATUS_MAAT_STATE_NUM,
- STATUS_MAAT_STATE_FREE_NUM,
- STATUS_MAAT_STATE_FREE_BYTES,
+ STATUS_MAAT_PER_STATE_MEM,
STATUS_COMPILE_STATE_NUM,
STATUS_GARBAGE_QSIZE,
STATUS_UPDATE_ERR_CNT,
@@ -93,13 +92,11 @@ static void maat_fieldstat_register(struct maat_stat *stat)
stat->fs_status_id[STATUS_GARBAGE_QSIZE] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
"garbage_num", NULL, 0);
stat->fs_status_id[STATUS_MAAT_STATE_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
- "maat_state", NULL, 0);
- stat->fs_status_id[STATUS_MAAT_STATE_FREE_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
- "maat_state_free_cnt", NULL, 0);
- stat->fs_status_id[STATUS_MAAT_STATE_FREE_BYTES] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
- "maat_state_free_bytes", NULL, 0);
+ "state_num", NULL, 0);
+ stat->fs_status_id[STATUS_MAAT_PER_STATE_MEM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
+ "per_state_mem(B)", NULL, 0);
stat->fs_status_id[STATUS_COMPILE_STATE_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
- "maat_compile_state", NULL, 0);
+ "compile_state_num", NULL, 0);
stat->fs_status_id[STATUS_STREAM_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
"stream_num", NULL, 0);
stat->fs_status_id[STATUS_ZOMBIE_STREAM_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
@@ -472,6 +469,11 @@ void maat_stat_output(struct maat_stat *stat, long long maat_version, int perf_o
size_t table_cnt = table_manager_table_count(stat->ref_tbl_mgr);
size_t garbage_q_len = maat_garbage_bin_get_size(stat->ref_garbage_bin);
+ long long per_state_mem = 0;
+ if (maat_state_free_cnt != 0) {
+ per_state_mem = maat_state_free_bytes / maat_state_free_cnt;
+ }
+
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_VERSION],
maat_version);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_THRED_NUM],
@@ -480,10 +482,8 @@ void maat_stat_output(struct maat_stat *stat, long long maat_version, int perf_o
table_cnt);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_MAAT_STATE_NUM],
maat_state_cnt);
- fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_MAAT_STATE_FREE_NUM],
- maat_state_free_cnt);
- fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_MAAT_STATE_FREE_BYTES],
- maat_state_free_bytes);
+ fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_MAAT_PER_STATE_MEM],
+ per_state_mem);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_COMPILE_STATE_NUM],
maat_compile_state_cnt);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_NOT_GROUP_HIT],
diff --git a/test/maat_framework_gtest.cpp b/test/maat_framework_gtest.cpp
index 82708f0..6451d32 100644
--- a/test/maat_framework_gtest.cpp
+++ b/test/maat_framework_gtest.cpp
@@ -7247,6 +7247,7 @@ TEST_F(MaatCmdTest, CompileDelete_TSG6548) {
}
now = time(NULL);
}
+
//scan hit for at most 1 second (rule updating latency), miss for at least 2 seconds.
EXPECT_LE(hit_cnt, miss_cnt);
maat_state_free(state);