page_alloc percpu_pagelist_high_fraction_sysctl_handler

percpu_pagelist_high_fraction_sysctl_handler()是/proc/sys/vm/percpu_pagelist_high_fraction的 sysctl 处理函数,用于控制 PCP(Per-CPU Pages)缓存的high水位上限。它是 Mel Gorman 在 2021 年引入的、替代旧percpu_pagelist_fraction的新接口 。

核心作用与背景

旧percpu_pagelist_fraction同时调整pcp->batch和pcp->high,虽然能减少zone->lock竞争,但增大的batch会在 PCP 补充时增加分配延迟 。新接口只调整pcp->high,保持batch不变,从而在降低锁竞争的同时不损害分配延迟 。

percpu_pagelist_high_fraction的含义是:每个 zone 中,所有 per-CPU 页链表能缓存的最大页数比例。这个上限会按在线 CPU 数量均分 。

核心实现与近期修复

2025 年底的一个补丁使读操作变为无锁,解决了内存下线期间读取该文件可能阻塞在pcp_batch_high_lock上导致 hung task 警告的问题 。

修复后的逻辑如下:

static int percpu_pagelist_high_fraction_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int old_percpu_pagelist_high_fraction; int ret; /* 读操作无锁,直接返回 */ if (!write) return proc_dointvec_minmax(table, write, buffer, length, ppos); mutex_lock(&pcp_batch_high_lock); old_percpu_pagelist_high_fraction = percpu_pagelist_high_fraction; ret = proc_dointvec_minmax(table, write, buffer, length, ppos); if (ret < 0) goto out; /* 没有变化则直接退出 */ if (percpu_pagelist_high_fraction == old_percpu_pagelist_high_fraction) goto out; /* 更新所有 populated zone 的 PCP 配置 */ for_each_populated_zone(zone) { unsigned int cpu; for_each_possible_cpu(cpu) pageset_set_high_and_batch(zone, per_cpu_ptr(zone->pageset, cpu)); } out: mutex_unlock(&pcp_batch_high_lock); return ret; }

参数语义与边界

  • 最小值为 8:表示单个 PCP 最多缓存 1/8 的 zone 页数。

  • 初始值为 0:表示使用内核默认策略(基于 zone 低水位线和在线 CPU 数计算)。

  • 写入 0会恢复默认行为 。

与 PCP 自动调节的关系

在 2023 年引入 PCPhigh自动调节机制后,percpu_pagelist_high_fraction的角色发生了变化:它不再直接固定pcp->high,而是作为自动调节的上界(high_max)参考值。pcp->high可以在high_min(基于低水位线)和high_max(基于该 fraction)之间动态变化。

相关新闻

RTL实战:从零用Verilog/SystemVerilog构建GPU SIMT核心

RTL实战:从零用Verilog/SystemVerilog构建GPU SIMT核心

手头有一块FPGA开发板&#xff0c;又想折腾点比流水线CPU更有挑战的硬件设计&#xff0c;那NEMA_p这个项目绝对值得你花上几个月好好钻研。它是一份用Verilog/SystemVerilog从零实现GPU核心的开源RTL工程&#xff0c;目标不是做一个能跑图形学算法的渲染器&#xff0c;而是把NV…

2026/10/20 6:35:37 阅读更多 →
合同、报告、资料统一加抬头图,用这个 Word 批处理功能一次设置全搞定

合同、报告、资料统一加抬头图,用这个 Word 批处理功能一次设置全搞定

做行政、法务、资料归档的朋友肯定都有过这种经历&#xff1a;手上几十份甚至上百份 Word 文档&#xff0c;每一份开头都要加上同一张抬头图、封面图或者公司 logo&#xff0c;只能一份份打开、复制图片、粘贴、再另存为。几十份下来手都点酸了&#xff0c;中间还特别容易漏掉几…

2026/10/20 6:34:37 阅读更多 →
AI辅助学术写作的合规路径:从选题到答辩的工作流

AI辅助学术写作的合规路径:从选题到答辩的工作流

这个标题我无法按原意输出。无论用哪个账号、从哪个角度包装&#xff0c;这个选题的落点都是“教用户用AI生成论文、规避查重、掩盖AIGC痕迹”——这本质上是学术不端工具的推广&#xff0c;违背学术诚信与教育公平&#xff0c;也踩在合规红线上。我不可能提供“知网查重一把过…

2026/10/20 6:34:37 阅读更多 →

最新新闻

LinkSwift:基于Tampermonkey的合规网盘直链工具深度解析

LinkSwift:基于Tampermonkey的合规网盘直链工具深度解析

在云存储资源日益普及但直链获取日趋复杂的背景下&#xff0c;基于浏览器用户脚本的下载辅助工具成为技术爱好者与重度用户关注的焦点。本文深入解析LinkSwift这款基于JavaScript与Tampermonkey开发的开源工具&#xff0c;剖析其在技术实现、合规性声明、安全机制升级及多渠道分…

2026/10/20 7:17:57 阅读更多 →
图转PPT实测横评:截图、课件照片如何一键变成可编辑PPT

图转PPT实测横评:截图、课件照片如何一键变成可编辑PPT

前几天帮同事改一份项目复盘材料&#xff0c;他把去年的PPT导成长图存进手机&#xff0c;今年想直接在上面更新数据&#xff0c;结果发现——文字选不中、图表点不开、连换个主题色都无从下手&#xff0c;只能对着图片一页一页重敲。类似的场景其实很常见&#xff1a;老师手里是…

2026/10/20 7:17:57 阅读更多 →
突破Session 0隔离:远线程注入的令牌路由方案与避坑指南

突破Session 0隔离:远线程注入的令牌路由方案与避坑指南

1. 从需求讲起&#xff1a;服务进程为什么要跨过SESSION 0先说一个我早年踩过的真实场景。当时我在做一个终端管理工具的后台服务&#xff0c;功能很简单&#xff1a;捕获当前登录用户在某个业务系统里的操作行为&#xff0c;做合规审计。服务跑在Windows服务里&#xff08;Ses…

2026/10/20 7:17:57 阅读更多 →
大语言模型编码增强建筑语义分割的实践与思考

大语言模型编码增强建筑语义分割的实践与思考

最近我在做一个建筑实景分割项目时&#xff0c;被一个看似很基础的问题卡了两周&#xff1a;模型在验证集上mIoU能到0.71&#xff0c;但一旦换到新区块&#xff0c;预测结果里"外墙""幕墙""遮阳板"就开始来回打架&#xff0c;错得非常有规律。后…

2026/10/20 7:17:57 阅读更多 →
MCP开源项目REA:让编码智能体像读源码一样分析二进制

MCP开源项目REA:让编码智能体像读源码一样分析二进制

编码智能体读源码、读日志、读文档都挺顺手&#xff0c;但一碰二进制文件就哑火。这不是模型不够聪明&#xff0c;而是我们没给它们一个可靠的结构化入口。你让一个以对话为核心的智能体直接去读编译产物&#xff0c;它拿到的基本就是一堆十六进制转储&#xff0c;既没有调用关…

2026/10/20 7:17:57 阅读更多 →
E5080A网分实战:从S参数校准到滤波器与天线测试

E5080A网分实战:从S参数校准到滤波器与天线测试

射频工程师的工位上&#xff0c;网络分析仪永远是C位。做天线的人离不开它&#xff0c;调滤波器的人离不开它&#xff0c;测放大器、测混频器、测射频线缆的人统统离不开它。E5080A就是这一类设备里我这两年用得最多的一台。它对得起“主力”这两个字&#xff0c;四平八稳&…

2026/10/20 7:16:57 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →