diff options
| author | Qiuwen Lu <[email protected]> | 2017-05-08 11:15:51 +0800 |
|---|---|---|
| committer | Qiuwen Lu <[email protected]> | 2017-05-08 11:15:51 +0800 |
| commit | 5530b1ae129afcfa1f88fd1b13172ddd3bf6e9b8 (patch) | |
| tree | ce2ed7ac33fc39f26a8da1fd68d3a641c1e75041 /app/src/monit.c | |
| parent | 23d3b5d524016d0904b06b7028083768c7a57ded (diff) | |
增加申请报文缓冲区、释放报文缓冲区统计计数,便于诊断内存泄露问题。保留Recv_All的状态,避免每次Recv都从同一块卡收取数据的问题,提高公平性。增加Platform写网卡队列时丢包行为的统计计数。
Diffstat (limited to 'app/src/monit.c')
| -rw-r--r-- | app/src/monit.c | 24 |
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; } |
