From 0c50f3d1ea0bc4e19c5950b19aed840c490238b3 Mon Sep 17 00:00:00 2001 From: zhilan Date: Mon, 10 Apr 2023 16:06:36 +0800 Subject: [PATCH] podmem: fix offset bug and support podman --- source/tools/detect/mem/podmem/entry/podmem.py | 14 ++++++++++++++ source/tools/detect/mem/podmem/memcache/offset.cpp | 1 + 2 files changed, 15 insertions(+) diff --git a/source/tools/detect/mem/podmem/entry/podmem.py b/source/tools/detect/mem/podmem/entry/podmem.py index acf1c0a4..d4c24a0c 100644 --- a/source/tools/detect/mem/podmem/entry/podmem.py +++ b/source/tools/detect/mem/podmem/entry/podmem.py @@ -152,6 +152,18 @@ def get_k8s_path(podinfo, cid): cinfo['ino'] = get_file_ino(cpath) return None +def get_podman_path(podinfo, cid): + cinfo = podinfo['container'][cid] + pre = '/sys/fs/cgroup/memory/machine.slice' + cpath = pre +'/' +"libpod-" + cinfo['fullid'].strip() + '.scope' + if not os.path.exists(cpath): + cinfo['cgroup'] = '' + cinfo['ino'] = '' + return None + cinfo['cgroup'] = cpath + cinfo['ino'] = get_file_ino(cpath) + return True + def get_docker_path(podinfo, cid): cinfo = podinfo['container'][cid] pre = '/sys/fs/cgroup/memory/system.slice' @@ -366,6 +378,8 @@ def build_cgroup_info(podinfo, cid): get_k8s_path(podinfo, cid) elif ctype == 'docker': get_docker_path(podinfo, cid) + if podinfo['container'][cid]['cgroup'] == '': + get_podman_path(podinfo, cid) elif ctype == 'cgroup': get_cgroup_path(podinfo, cid) else: diff --git a/source/tools/detect/mem/podmem/memcache/offset.cpp b/source/tools/detect/mem/podmem/memcache/offset.cpp index 1d74b8e2..182ead21 100644 --- a/source/tools/detect/mem/podmem/memcache/offset.cpp +++ b/source/tools/detect/mem/podmem/memcache/offset.cpp @@ -54,6 +54,7 @@ struct member_attribute *get_offset(string struct_name, string member_name) return NULL; } //printf("%s:offset:%d, size:%d\n", index.c_str(),att->offset, att->size); + att->offset = att->offset/8; struct_offset[index] = att; return att; } -- Gitee