#
148789 |
|
06-Aug-2005 |
rwatson |
Teach libmemstat(3) how to extract malloc(9) statistics using kvm(3), so that libmemstat can be used to view full memory statistics from kernel core dumps and /dev/mem. This is provided via a new query function, memstat_kvm_malloc(), which is also automatically invoked by memstat_kvm_all(). A kvm handle must be passed in.
This will allow malloc(9)-specific code to be removed from vmstat(8).
|
#
148627 |
|
01-Aug-2005 |
rwatson |
Add memstat_kvm_uma(), an implementation of a libmemstat(3) query routine that knows how to extract UMA(9) allocator statistics from a core dump or live memory image using kvm(3). The caller is expected to provide the necessary kvm_t handle, which is then used by libmemstat(3).
With these changes, it is trivially straight forward to re-introduce vmstat -z support on core dumps, which was lost when UMA was introduced.
In the short term, this requires including vm/ include files that are not intended for extra-kernel use, requiring in turn some ugliness.
|
#
147997 |
|
14-Jul-2005 |
rwatson |
Add libmemstat(3), a library for use by debugging and monitoring applications in tracking kernel memory statistics. It provides an abstracted interface to uma(9) and malloc(9) statistics, wrapped around the recently added binary stream sysctls for the allocators.
Using this interface, it is easy to build monitoring tools, query specific memory types for usage information, etc. Facilities are provided for binding caller-provided data to memory types, incremental updates of memory types, and queries that span multiple allocators.
Support for additional allocators is (relatively) easy to add.
The API for libmemstat(3) will probably change some over time as consumers are written, and requirements evolve. It is written to avoid encoding ABIs for data structure layout into consuming applications for this reason.
MFC after: 1 week
|