#! /usr/bin/env stap # Using statistics to examine kernel memory allocations global kmalloc probe kernel.function("__kmalloc") { kmalloc <<< $size } # Exit after 10 seconds probe timer.ms(10000) { exit () } probe end { printf("Count: %d allocations\n", @count(kmalloc)) printf("Sum: %d Kbytes\n", @sum(kmalloc)/1000) printf("Average: %d bytes\n", @avg(kmalloc)) printf("Min: %d bytes\n", @min(kmalloc)) printf("Max: %d bytes\n", @max(kmalloc)) print("\nAllocations by size in bytes\n") print(@hist_log(kmalloc)) }