diff options
author | Kevin Newton <kddnewton@gmail.com> | 2022-01-11 12:47:22 -0500 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2022-01-21 14:34:53 -0800 |
commit | fc6fd4c31e957a4b15ba2c03cbd1cea0a8af6513 (patch) | |
tree | ec1681ac98d098f35d2751fd4d33138d3141f8a0 /process.c | |
parent | 5e3a32021849718ae483eaaa9fbf155f91828039 (diff) |
Accurately report VM memsize
Currently the calculation only counts the size of the struct. This commit adds the size of the associated st tables, id tables, and linked lists.
Still missing is the size of the ractors and (potentially) the size of the object space.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5428
Diffstat (limited to 'process.c')
-rw-r--r-- | process.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -1090,6 +1090,21 @@ waitpid_signal(struct waitpid_state *w) return FALSE; } +// Used for VM memsize reporting. Returns the size of a list of waitpid_state +// structs. Defined here because the struct definition lives here as well. +size_t +rb_vm_memsize_waiting_list(struct list_head *waiting_list) +{ + struct waitpid_state *waitpid = 0; + size_t size = 0; + + list_for_each(waiting_list, waitpid, wnode) { + size += sizeof(struct waitpid_state); + } + + return size; +} + /* * When a thread is done using sigwait_fd and there are other threads * sleeping on waitpid, we must kick one of the threads out of |