ZBLOG

static int enqueue_to_backlog(struct sk_buff *skb, int cpu, unsigned int *qtail) { struct softnet_data *sd; unsigned long flags; unsigned int qlen; sd = &per_cpu(softnet_data, cpu); local_irq_save(flags); rps_lock(sd); if (!net

您可以使用SystemTap编写脚本来查看qlen。以下是一个简单的示例脚本,用于跟踪输入包队列中的sk_buff数量:

probe kernel.function("enqueue_to_backlog").return {
    printf("qlen: %u\n", $qlen)
}

probe kernel.statement("if (!netif_running(skb->dev))").return,
      kernel.statement("if (qlen <= netdev_max_backlog && !skb_flow_limit(skb, qlen))").return {
    printf("skb address: %p\n", $skb)
    printf("input device name: %s\n", user_string($skb->dev->name))
    printf("cpu number: %d\n", cpu())
    printf("\n")
}

这个脚本会在每次enqueue_to_backlog()函数返回时打印出当前的qlen值。此外,它还会在特定代码段处打印出sk_buff地址、输入设备名称和CPU编号。注意,为了执行此脚本,您需要安装SystemTap工具,并使用root权限运行它。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4889

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?