Linux: network: tcp:__sk_mem_raise_allocated;确保公平

之前看这个函数里有一个地方没有看懂,代码如下:

cpp 复制代码
       if (sk_has_memory_pressure(sk)) {
              int alloc;

              if (!sk_under_memory_pressure(sk))
                     return 1;
              alloc = sk_sockets_allocated_read_positive(sk);  
              if (sk_prot_mem_limits(sk, 2) > alloc *
                  sk_mem_pages(sk->sk_wmem_queued +
                            atomic_read(&sk->sk_rmem_alloc) +
                            sk->sk_forward_alloc))
                     return 1;
       }

今天在网上找了一下,搜到下面的链接,里面有一个解释是:

https://lore.kernel.org/all/20231019120026.42215-2-wuyun.abel@bytedance.com/

Try to be fair among all the sockets under global pressure by allowing the ones that below average usage to raise.

尝试在全局压力下的所有套接字之间保持一个公平,允许低于平均使用率的套接字升高,高使用内存的socket不让申请内存。

相关推荐
vortex514 分钟前
Linux 终端优化:Alacritty + Zellij 配置指南
linux·kali·终端模拟器
juncaixingchilove37 分钟前
Linux轻量级浏览器
运维·服务器
码农编程录1 小时前
【notes11】并发/IO/内存
linux
cuijiecheng20181 小时前
Linux下MyIpAdd库的使用
linux·运维·服务器
一路往蓝-Anbo2 小时前
第 12 章:Linux 侧 RPMsg 用户态驱动与数据接口
linux·运维·服务器·stm32·单片机·嵌入式硬件·网络协议
宁雨桥2 小时前
详解Web服务部署:IP+端口 vs IP+端口+目录 实战指南
前端·网络协议·tcp/ip
乔碧萝成都分萝2 小时前
二十六、IIO子系统 + SPI子系统 + ICM20608
linux·驱动开发·嵌入式
海盗猫鸥2 小时前
Linux权限详解
linux·c语言
cuijiecheng20182 小时前
Linux下modbuspp库的使用
linux·运维·服务器
专注VB编程开发20年3 小时前
vb.net,c#线程池 Dim tasks As New List(Of Task) 线程多了,后面几个可能要等一二秒后再启动
java·linux·jvm