我在 tcp_cubic.c 中包含以下 printk 语句
static u32 bictcp_recalc_ssthresh(struct sock *sk)
{
..
if (tp->snd_cwnd < ca->last_max_cwnd && fast_convergence)
ca->last_max_cwnd = (tp->snd_cwnd * (BICTCP_BETA_SCALE + beta))
/ (2 * BICTCP_BETA_SCALE);
else
ca->last_max_cwnd = tp->snd_cwnd;
ca->loss_cwnd = tp->snd_cwnd;
printk(KERN_INFO "ssthresh is %s", snd_cwnd); // <<<--- here
return max((tp->snd_cwnd * beta) / BICTCP_BETA_SCALE, 2U);
}
但它不会打印 dmesg 或 syslog 中的值。为什么?
例如,在 Linux 3.1 中,DEFAULT_MESSAGE_LOGLEVEL
值为 4,KERN_INFO
为 6。尝试使用 KERN_ALERT
之类的内容打印(值为 1)。
您可以通过读取/修改此 proc 文件来检查或更改默认日志级别:
cat /proc/sys/kernel/printk
有关此文件的详细信息,请参阅man 5 proc
。