run_rebalance_domains

run_rebalance_domains

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env bpftrace

BEGIN {
printf("Sampling all CPU stacks every ~10ms (99Hz)...\n");
}

// 周期性采样所有 CPU 的调用栈(每秒 99 次)
profile:hz:99 {
$cpu = cpu;
$pid = pid;
$comm = comm;

// 存储当前 CPU 的进程信息和调用栈
@pid[$cpu] = $pid;
@comm[$cpu] = $comm;
@stack[$cpu] = kstack;
}

// 每 1 秒打印采样结果
interval:s:1 {
time("%H:%M:%S\n");
printf("CPU stacks:\n");

// 遍历所有 CPU 的采样数据
print(@pid);
print(@comm);
print(@stack);

// 清除映射,避免累积
clear(@pid);
clear(@comm);
clear(@stack);
}

// 程序退出时清理
END {
clear(@pid);
clear(@comm);
clear(@stack);
}

run_rebalance_domains
https://realwujing.github.io/linux/kernel/task/bugs/cfs/run_rebalance_domains/
作者
Wu Jing
发布于
2025年5月12日
许可协议