社区
Linux_Kernel
帖子详情
sk_rmem_alloc为什么没有初始化呢?
yaxinsn
2012-04-25 08:44:19
在struct sock结构中有sk_rmem_alloc等一些类似的变量,是用来实时地记录此sock使用了多少内存用于receive数据报文的。当这一用途的内存达到一定阀值(sock中的sk_rcvbuf)时,会一些处理。
但一直没有看到sk_rmem_alloc被初始化为0呢(atomic_set(&newsk->sk_rmem_alloc, 0);)?
我在调试时就发现这个参数是个随机数。
...全文
131
回复
打赏
收藏
sk_rmem_alloc为什么没有初始化呢?
在struct sock结构中有sk_rmem_alloc等一些类似的变量,是用来实时地记录此sock使用了多少内存用于receive数据报文的。当这一用途的内存达到一定阀值(sock中的sk_rcvbuf)时,会一些处理。 但一直没有看到sk_rmem_alloc被初始化为0呢(atomic_set(&newsk->sk_rmem_alloc, 0);)? 我在调试时就发现这个参数是个随机数。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linux TCP协议栈内存管理总结
本次内存分析基于linux-2.6.35.2 tcp协议栈内存控制主要由3个数组变量控制,分别是sysctl_tcp_mem[3]、sysctl_tcp_
rmem
[3]、 sysctl_tcp_wmem[3],这几个数组的值都可以通过proc文件系统的修改来改变,主要有两种方法,示例如下所示: sysctl net.ipv4.tcp_synack_retries=10 下面看看so
UDP协议之《传输队列长度
sk
_wmem_
alloc
统计》
UDP协议之《传输队列长度
sk
_wmem_
alloc
统计》
linux内核协议栈 之socket传输队列长度
sk
_wmem_
alloc
统计
在 socket 的结构体里有一个
sk
_wmem_
alloc
字段,该字段表示已经提交到 ip 层,但还
没有
从本机发送出去的
sk
b 占用空间大小。
UDP传输队列长度
sk
_wmem_
alloc
统计
UDP协议使用
sk
_wmem_
alloc
统计当前UDP相关套接口发送缓存的占用。 统计
初始化
在应用层创建套接口时,内核将新分配的套接口结构的成员变量
sk
_wmem_
alloc
初始化
为1。 struct sock *
sk
_
alloc
(struct net *net, int family, gfp_t priority, struct proto *prot, int kern) { ...
内核协议栈tcp层的内存管理
我们先来看tcp内存管理相关的几个内核参数,这些都能通过proc文件系统来修改: Java代码 ///内核写buf的最大值. extern __u32 sysctl_wmem_max; ///协议栈读buf的最大值 extern __u32 sysctl_
rmem
_max; 这两个值在/proc/sys/net/core 下。这
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章