跟踪
bash
bpftrace -e '
kprobe:tcp_write_xmit {
$sk = (struct sock *)arg0;
$cwnd = ((struct tcp_sock *)$sk)->snd_cwnd;
$rate = ((struct sock *)$sk)->sk_pacing_rate;
if ($cwnd > 1000) {
printf("tcp_write_xmit cwnd=%u pacing=%llu packets_out=%u\n",
$cwnd, $rate, ((struct tcp_sock *)$sk)->packets_out);
}
}
跟踪 delivered、snd_wnd
bash
bpftrace -e '
kprobe:tcp_write_xmit {
$sk = (struct sock *)arg0;
$tp = (struct tcp_sock *)$sk;
$cwnd = $tp->snd_cwnd;
$rate = $sk->sk_pacing_rate;
if ($cwnd > 5000) {
printf("tcp_write_xmit cwnd=%u pac=%llu out=%u del=%u snd_wnd=%u\n",
$cwnd, $rate, $tp->packets_out, $tp->delivered, $tp->snd_wnd);
}
}'