Skip to content

Move reading of /proc/pid/smaps_rollup to a separate thread

Arjen Hiemstra requested to merge work/ahiemstra/threaded_smaps into master

As it turns out, smaps/smaps_rollup are fairly slow to read because the kernel iterates all the memory of a process when this file is accessed. This caused the update time of all processes to go up from ~30 ms to more than 200ms.

This changes things to do the reading of smaps_rollup in a separate thread that doesn't block the main update. This reduces update time to ~50ms, which is noticably better. To accomodate the asynchronous nature, some additional functionality needed to be added so we can notify Processes of the asynchronous update.

Merge request reports