mirror of
https://github.com/fluencelabs/redis
synced 2025-06-22 13:31:32 +00:00
Merge pull request #6384 from devnexen/apple_smaps_impl
Getting region date per process in Darwin
This commit is contained in:
@ -427,7 +427,28 @@ size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) {
|
||||
return bytes;
|
||||
}
|
||||
#else
|
||||
/* Get sum of the specified field from libproc api call.
|
||||
* As there are per page value basis we need to convert
|
||||
* them accordingly.
|
||||
*
|
||||
* Note that AnonHugePages is a no-op as THP feature
|
||||
* is not supported in this platform
|
||||
*/
|
||||
size_t zmalloc_get_smap_bytes_by_field(char *field, long pid) {
|
||||
#if defined(__APPLE__)
|
||||
struct proc_regioninfo pri;
|
||||
if (proc_pidinfo(pid, PROC_PIDREGIONINFO, 0, &pri, PROC_PIDREGIONINFO_SIZE) ==
|
||||
PROC_PIDREGIONINFO_SIZE) {
|
||||
if (!strcmp(field, "Private_Dirty:")) {
|
||||
return (size_t)pri.pri_pages_dirtied * 4096;
|
||||
} else if (!strcmp(field, "Rss:")) {
|
||||
return (size_t)pri.pri_pages_resident * 4096;
|
||||
} else if (!strcmp(field, "AnonHugePages:")) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
#endif
|
||||
((void) field);
|
||||
((void) pid);
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user