diff --git a/source/tools/detect/mem/podmem/entry/podmem.py b/source/tools/detect/mem/podmem/entry/podmem.py index acf1c0a48807dc73a6d5ab4db19525427c6c49e4..d4c24a0cb5ba76bcf4dcf2cd3c9ce1467daadba9 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 1d74b8e2cc33490c3ce729bd0f63b178dd166449..182ead21b881b74c7fc8b514b4f918f12f72bd6a 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; }