summaryrefslogtreecommitdiff
path: root/app/src/monit.c
diff options
context:
space:
mode:
authorQiuwen Lu <[email protected]>2017-05-08 11:15:51 +0800
committerQiuwen Lu <[email protected]>2017-05-08 11:15:51 +0800
commit5530b1ae129afcfa1f88fd1b13172ddd3bf6e9b8 (patch)
treece2ed7ac33fc39f26a8da1fd68d3a641c1e75041 /app/src/monit.c
parent23d3b5d524016d0904b06b7028083768c7a57ded (diff)
增加申请报文缓冲区、释放报文缓冲区统计计数,便于诊断内存泄露问题。保留Recv_All的状态,避免每次Recv都从同一块卡收取数据的问题,提高公平性。增加Platform写网卡队列时丢包行为的统计计数。
Diffstat (limited to 'app/src/monit.c')
-rw-r--r--app/src/monit.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/src/monit.c b/app/src/monit.c
index 6c4ce56..88795af 100644
--- a/app/src/monit.c
+++ b/app/src/monit.c
@@ -144,6 +144,29 @@ static cJSON * monit_vdev(struct mr_instance * instance)
return j_vdev_array;
}
+static cJSON * monit_app_stat(struct mr_instance * instance)
+{
+ struct cJSON * j_root = cJSON_CreateObject();
+
+ uint64_t __pktmbuf_alloc_user_array[MR_SID_MAX];
+ uint64_t __pktmbuf_free_user_array[MR_SID_MAX];
+
+ for (int i = 0; i < instance->nr_dataplane_thread; i++)
+ {
+ __pktmbuf_alloc_user_array[i] = instance->stat[i].mbuf_alloc_count;
+ __pktmbuf_free_user_array[i] = instance->stat[i].mbuf_free_count;
+ }
+
+ cJSON_AddItemToObject(j_root, "pktmbuf_alloc_user",
+ __create_uint64_array(__pktmbuf_alloc_user_array, instance->nr_dataplane_thread));
+
+ cJSON_AddItemToObject(j_root, "pktmbuf_free_user",
+ __create_uint64_array(__pktmbuf_free_user_array, instance->nr_dataplane_thread));
+
+ return j_root;
+}
+
+
static cJSON * monit_app_info(struct mr_instance * instance)
{
struct cJSON * j_root = cJSON_CreateObject();
@@ -156,6 +179,7 @@ static cJSON * monit_root(struct mr_instance * instance)
struct cJSON * j_root = cJSON_CreateObject();
cJSON_AddItemToObject(j_root, "appinfo", monit_app_info(instance));
cJSON_AddItemToObject(j_root, "raw", monit_vdev(instance));
+ cJSON_AddItemToObject(j_root, "appstat", monit_app_stat(instance));
return j_root;
}