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不让申请内存。

相关推荐
编程大师哥1 小时前
Linux 命名管道(FIFO)通信 超清晰讲解
linux·运维·服务器
Smile_2542204181 小时前
linux服务器清理磁盘
linux·运维·服务器
KivenMitnick1 小时前
Claude Code--Ubuntu Linux超详细配置教程(附每步的可能报错及解决方法)
linux·运维·ubuntu
JoyCong19982 小时前
OpenClaw实践玩法,简单三步搭建自动化工作流(附真香平替方案)
运维·人工智能·自动化
panamera122 小时前
linux下SPI、IIC、UART、CAN的编码
linux·运维·服务器
yj_xqj2 小时前
openGauss 数据库报错“failed: To0 many open files”
运维·数据库
欲盖弥彰13142 小时前
linux设备驱动 -- RK3568 led驱动 (led子系统&设备树)
linux·led·嵌入式linux·led子系统
小五传输2 小时前
汽车供应商协同平台如何重塑主机厂与供应商的数字化纽带?
大数据·运维·安全
三万棵雪松2 小时前
【Linux 物联网网关主控系统-Linux主控部分(四)】
linux·物联网·嵌入式linux