scripts/stap/slabwatch.stp
2024-03-20 11:28:46 -05:00

31 lines
658 B
Text

#!/usr/bin/env stap
#
# SPDX-License-Identifier: MIT
global slabs
global freed
probe vm.kmem_cache_alloc {
slabs [execname(), bytes_alloc, ptr, gfp_flag_name]<<<1
}
probe vm.kmem_cache_free {
freed [execname(), ptr, name]<<<1
}
probe begin {
print("\"TYPE\",\"PROCESS\",\"POINTER\",\"BYTES\",\"FLAGS/NAME\"\n");
}
probe timer.ms(10000) {
foreach ([name, bytes, ptr, flags] in slabs) {
printf("\"ALLOC\",\"%s\",\"%p\",\"%d\",\"%s\"\n",
name, ptr, bytes, flags);
}
foreach ([execname, ptr, name] in freed) {
printf("\"FREE\",\"%s\",\"%p\",\"\",\"%s\"\n",
execname, ptr, name);
}
delete slabs
delete freed
}