Hello, I have just uploaded to CVS a very large pfmon update patch. For the last few days, I have been working on improving the code quality of pfmon and on addressing certain long-standing issues especially with per-thread monitoring.
The patch includes, among other things, the following: - revamped symbol table management. More efficient, more compact, more sharing. - fixed trigger inheritance - much smaller memory footprint. Pfmon could consume gigabyte of memory in per-thread mode sampling with the --follow-* options. The patch addresses this issue by changing many data structures: making then smaller, splitting structures, sharing structures between sessions. - limit pressure on memory and file descriptors by adding a new --smpl-eager-save option to force generation of profiles as soon as a session terminates and not when ALL sessions have terminated. The latter remains the default and it mitigates the overhead while monitoring is active. - use of epoll() to avoid the 1024 file descriptor limit of select(). Also provides a way to drop a hash table. - pfmon is now able to show symbols in PLT (program linkage tables), vsyscall, and vdso section of the address space. - lot of unused fields have been removed from data structures. - most memory leaks have been fixed using valgrind. It would be useful if people could download this new version from CVS and test in their setup. I have done some testing on x86-64, i386, and a little bit on IA-64. Note that --irange, --drange on Itanium only accept raw addresses (instead of symbol names). This limitation is not new and we have not plan for fixing this. Enjoy, ------------------------------------------------------------------------------ _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel