at v2.6.31 71 lines 2.8 kB view raw
1What: /sys/kernel/debug/kmemtrace/ 2Date: July 2008 3Contact: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> 4Description: 5 6In kmemtrace-enabled kernels, the following files are created: 7 8/sys/kernel/debug/kmemtrace/ 9 cpu<n> (0400) Per-CPU tracing data, see below. (binary) 10 total_overruns (0400) Total number of bytes which were dropped from 11 cpu<n> files because of full buffer condition, 12 non-binary. (text) 13 abi_version (0400) Kernel's kmemtrace ABI version. (text) 14 15Each per-CPU file should be read according to the relay interface. That is, 16the reader should set affinity to that specific CPU and, as currently done by 17the userspace application (though there are other methods), use poll() with 18an infinite timeout before every read(). Otherwise, erroneous data may be 19read. The binary data has the following _core_ format: 20 21 Event ID (1 byte) Unsigned integer, one of: 22 0 - represents an allocation (KMEMTRACE_EVENT_ALLOC) 23 1 - represents a freeing of previously allocated memory 24 (KMEMTRACE_EVENT_FREE) 25 Type ID (1 byte) Unsigned integer, one of: 26 0 - this is a kmalloc() / kfree() 27 1 - this is a kmem_cache_alloc() / kmem_cache_free() 28 2 - this is a __get_free_pages() et al. 29 Event size (2 bytes) Unsigned integer representing the 30 size of this event. Used to extend 31 kmemtrace. Discard the bytes you 32 don't know about. 33 Sequence number (4 bytes) Signed integer used to reorder data 34 logged on SMP machines. Wraparound 35 must be taken into account, although 36 it is unlikely. 37 Caller address (8 bytes) Return address to the caller. 38 Pointer to mem (8 bytes) Pointer to target memory area. Can be 39 NULL, but not all such calls might be 40 recorded. 41 42In case of KMEMTRACE_EVENT_ALLOC events, the next fields follow: 43 44 Requested bytes (8 bytes) Total number of requested bytes, 45 unsigned, must not be zero. 46 Allocated bytes (8 bytes) Total number of actually allocated 47 bytes, unsigned, must not be lower 48 than requested bytes. 49 Requested flags (4 bytes) GFP flags supplied by the caller. 50 Target CPU (4 bytes) Signed integer, valid for event id 1. 51 If equal to -1, target CPU is the same 52 as origin CPU, but the reverse might 53 not be true. 54 55The data is made available in the same endianness the machine has. 56 57Other event ids and type ids may be defined and added. Other fields may be 58added by increasing event size, but see below for details. 59Every modification to the ABI, including new id definitions, are followed 60by bumping the ABI version by one. 61 62Adding new data to the packet (features) is done at the end of the mandatory 63data: 64 Feature size (2 byte) 65 Feature ID (1 byte) 66 Feature data (Feature size - 3 bytes) 67 68 69Users: 70 kmemtrace-user - git://repo.or.cz/kmemtrace-user.git 71