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
The patch includes, among other things, the following:
- revamped symbol table management. More efficient, more compact, more
- fixed trigger inheritance
- much smaller memory footprint. Pfmon could consume gigabyte of memory
in per-thread mode sampling with the --follow-* options. The
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
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.
Get latest updates about Open Source Projects, Conferences and News.