summaryrefslogtreecommitdiffstats
path: root/lib/libmemstat/libmemstat.3
Commit message (Collapse)AuthorAgeFilesLines
* The "Mbuf" zone was renamed "mbuf" to improve consistency, but the coderwatson2005-08-151-4/+4
| | | | | | | | | example in libmemstat.3 was not updated to take this rename into account. Update the example. PR: 84946 Submitted by: Wojciech A. Koszek <dunstan at freebsd dot czest dot pl> MFC after: 1 day
* Document kvm(3)-related error constants, and correct minor formattingrwatson2005-08-091-2/+20
| | | | nits.
* Teach libmemstat(3) how to extract malloc(9) statistics using kvm(3),rwatson2005-08-061-5/+9
| | | | | | | | | 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).
* Add memstat_kvm_uma(), an implementation of a libmemstat(3) query routinerwatson2005-08-011-2/+7
| | | | | | | | | | | | 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.
* Having decided not to provide a libmemstat(3) error number to textrwatson2005-07-241-3/+11
| | | | | | | | | | | | | conversion routine, now change my mind and add one, memstat_strerror(3), which returns a const char * pointer to a string describing the error, to be used on the results of memstat_mtl_geterror(). While here, also correct a minor typo in the HISTORY man page. Pointers on improving ease of internationalization would be appreciated. MFC after: 1 day
* Document additional aspects of libmemstat(3):rwatson2005-07-241-0/+170
| | | | | | | | - Short description of each memory type access method. - Descriptions of libmemstat(3) errors and memstat_mtl_geterror(3). MFC after: 1 day
* UMA supports "secondary" zones, in which a second zone can be layeredrwatson2005-07-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | on top of a primary zone, sharing the same allocation "keg". When reporting statistics for zones, do not report the free items in the keg as part of the free items in the zone, or those free items will be reported more than once: for the primary zone, and then any secondary zones off the primary zone. Separately record and maintain a kegfree statistic, and export via memstat_get_kegfree(), which is available for use if needed. Since items free'd back to the keg are not fully initialized, and hence may not actually be available (since secondary zone ctor-time initialization can fail), this makes some amount of sense. This change corrects a bug made visible in the libmemstat(3) modifications to netstat: mbufs freed back to the keg from the packet zone would be counted twice, resulting in negative values being printed in the mbuf free count. Some further refinement of reporting relating to secondary zones may still be required. Reported by: ssouhlal MFC after: 3 days
* Provide more documentation on caller-owned storage in struct memory_type,rwatson2005-07-151-7/+20
| | | | | | as well as documenting MEMSTAT_MAXCALLER. MFC after: 1 week
* Add a section on the allocator name space and its interactions withrwatson2005-07-151-0/+22
| | | | | | memstat_mtl_find(). MFC after: 10 days
* Add libmemstat(3), a library for use by debugging and monitoringrwatson2005-07-141-0/+238
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
OpenPOWER on IntegriCloud