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
[email protected]
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel