/
rustwizard
/
pgtrace
Обзор
Документация
Войти
/
rustwizard
/
pgtrace
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
internal/bpf/offcpu_test.go
56 строк
1 KB
Rust Wizard
fix(offcpu): capture stack at block time via kprobe:schedule
08 авг 2026, 10:55
Верифицирован
08 авг 2026, 10:55
d84b1f0
Код
Авторство
О чём код?
package bpf import "testing" const scheduleSym = "schedule" func TestClassify(t *testing.T) { t.Parallel() tests := []struct { name string stack []string want string }{ { name: "futex wait is a lock", stack: []string{scheduleSym, "futex_wait", "do_futex"}, want: WaitLock, }, { name: "io_schedule is io", stack: []string{scheduleSym, "io_schedule_timeout", "wait_for_completion_io_timeout"}, want: WaitIO, }, { name: "epoll wait is idle", stack: []string{scheduleSym, "schedule_hrtimeout_range", "ep_poll"}, want: WaitIdle, }, { name: "tcp recv is network", stack: []string{scheduleSym, "sk_wait_data", "tcp_recvmsg"}, want: WaitNetwork, }, { name: "nanosleep is other", stack: []string{scheduleSym, "schedule_hrtimeout_range", "hrtimer_nanosleep"}, want: WaitOther, }, { name: "empty stack is other", stack: []string{}, want: WaitOther, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() if got := classify(tt.stack); got != tt.want { t.Errorf("classify(%v) = %q, want %q", tt.stack, got, tt.want) } }) } }