资讯详情

page_alloc watermark_scale_factor_sysctl_handler

📅 2026/10/19 4:44:10 | 华诺云谱 👁 阅读
page_alloc watermark_scale_factor_sysctl_handler
watermark_scale_factor_sysctl_handler()是/proc/sys/vm/watermark_scale_factor的 sysctl 处理函数负责响应用户对该参数的读写请求并在写入后重新计算所有 zone 的水位线。核心实现static int watermark_scale_factor_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; rc proc_dointvec_minmax(table, write, buffer, length, ppos); if (rc) return rc; if (write) setup_per_zone_wmarks(); return 0; }逐步解析1. 委托标准整数读写与范围检查rc proc_dointvec_minmax(table, write, buffer, length, ppos); if (rc) return rc;proc_dointvec_minmax()标准 sysctl 整数处理把用户输入的字符串解析为整数写入table-data即watermark_scale_factor或把当前值读出。带_minmax后缀表示写入时检查值是否在table-extra1最小值和table-extra2最大值范围内。范围定义在 sysctl 表中通常是[1, 3000]——即水位间距最小 0.01%、最大 30% 的managed_pages。2. 写操作后重新计算水位if (write) setup_per_zone_wmarks();watermark_scale_factor直接决定WMARK_LOW和WMARK_HIGH相对于WMARK_MIN的间距。参数一变所有 zone 的水位线都必须重新计算。setup_per_zone_wmarks()前面讲过的会获取pcp_batch_high_lock调用__setup_per_zone_wmarks()遍历所有 zone 重新计算_watermark[]。3. 读操作如果write 0只执行proc_dointvec_minmax()把当前值复制给用户不做额外处理。与min_free_kbyteshandler 的对比方面min_free_kbytes_sysctl_handlerwatermark_scale_factor_sysctl_handler控制的参数WMARK_MIN的基准WMARK_LOW/HIGH与MIN的间距写后操作记录user_min_free_kbytessetup_per_zone_wmarks()仅setup_per_zone_wmarks()是否需要记录用户值是防止被自动计算覆盖否无自动计算逻辑watermark_scale_factor没有自动计算逻辑所以不需要user_*记录——用户设多少就是多少。sysctl 表定义{ .procname watermark_scale_factor, .data watermark_scale_factor, .maxlen sizeof(watermark_scale_factor), .mode 0644, .proc_handler watermark_scale_factor_sysctl_handler, .extra1 SYSCTL_ONE, .extra2 one_thousand, },最小值 10.01%最大值 100010%或更高现代内核允许到 3000。总结watermark_scale_factor_sysctl_handler()是vm.watermark_scale_factor的sysctl 读写入口它通过proc_dointvec_minmax()完成标准的整数读写和范围检查写操作后调用setup_per_zone_wmarks()重新计算所有 zone 的水位线。与min_free_kbytes不同它不需要记录用户设置值因为watermark_scale_factor没有自动计算逻辑。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑