LWN:参与者共同记录page flags!

ArcGIS实验教程——实验十九:网络分析(最短路径实现) 一、实验描述 网络分析模块用于实现基于网络数据集的网络分析功能,包括路径分析、服务区分析、最近设施点分析、OD成本矩阵分析、多路径配送分析、位置分配分析和高级网络的管理与创建等。 网络数据集不同于几何网络,是一种高级的连接模型,能够展示复杂的细节,拥有丰富的网络属性模型,可以模拟网络阻力、网络限制以及网络层次等。 本实验重点演示网络分析中最短路径的实现过程。 二、实验内容 1、网络数据集... 阅读详情

关注了就能看到更多这么棒的文章哦~

Documenting page flags by committee

By Jonathan Corbet
May 22, 2024
LSFMM+BPF
Gemini-1.5-flash translation
https://lwn.net/Articles/974515/

对于系统中的每个内存页面(page),内核都会维护一组页面标志(page flag),描述页面的使用方式以及其当前状态的各方面信息。页面标志一直处于 持续短缺 (chronic short supply) 状态,因此人们希望尽可能地消除或合并一些。然而,这一目标受到的阻碍是许多页面标志的用途并不清楚。在 2024 年 Linux 存储、文件系统、内存管理和 BPF 峰会 (2024 Linux Storage, Filesystem, Memory-Management and BPF Summit) 上的内存管理跟踪会议中,Matthew Wilcox 提出共同更新页面标志文档以改善这种情况。

Wilcox 没有准备任何演示文稿;相反,他打开了一个包含页面标志的新文档文件的编辑器窗口,然后告诉听众:“大声告诉我,我会写下来”。第一个要介绍的标志是 Locked ;最终的文本如下:

这个标志是针对 per-folio 的。如果您尝试锁定一个页面,您将锁定整个页面。页面锁用于许多目的。在页面缓存中,在开始读取之前锁定页面,并在读取完成后解锁。在开始回写之前也会锁定页面;有关更多详细信息,请参阅回写标志(writeback flag)。进行截断(truncation)处理的代码中会获取页面锁,并且在将页面插入页表时也会锁定页面,以防止截断和页面错误之间的竞争。

Wilcox 说,这些语义是 lockdep 加锁检查器无法与这个标志一起工作的原因;它在不同的上下文中被获取和释放,lockdep 无法处理这种情况。

下一个标志是 Writeback ,最终被描述为:

针对 per-folio 的。这有点像锁。我们从获取 [Locked] 标志的锁降级为使用它来取代。在回写完成后释放,但锁标志可能在设置回写标志后随时释放。是否需要在两者之间做更多操作取决于文件系统。我们可以通过等待这个标志来等待回写完成。页面被放到 LRU 的尾部以便更快地回收。

如果文件系统需要稳定的页面(stable folios),可以防止撕裂写入(tearing write)。截断动作会先等待这个 flag 清除。

显然,还需要做一些编辑工作。

对于 Dirty 标志,结果是:

也会在缓冲 I/O 期间设置。第一次引用,第二次访问。在回收(reclaim)期间用于确定处置方式(激活 activate、回收 reclaim 等)。folio 中至少有一个字节内容比磁盘上的内容要更加新,并且 writeback 标志尚未设置。页面可能同时是脏的和未更新的。延迟释放页面可以删除脏标志。当我们开始回写时,文件页面的脏标志被清除。从交换缓存中移除时设置脏标志。如果已经 dirty 了,页面可以在不通知文件系统的情况下被映射为可写。设置起来接口很复杂,很容易出错。

Jason Gunthorpe 补充说,有很多 get_user_pages() 的用户会设置这个标志;它们都是错误的用法。

对于 Uptodate :“页面内容的每个字节都至少跟磁盘内容一样新。隐含带有写入屏障(write barrier)”。在会议室里,有人认为有些文件系统在回写失败时会清除这个位,但另一些人认为这种行为可能已被删除。

对于 LRU 标志,只说了:“页面已被添加到 LRU 并且不再位于每个 CPU 的页面批次(folio_batch)中”。 Head 标志被同样简洁地描述为:“这是一个大 folio 页面。在 order 0 页面上不会设置这个 flag”。 Waiters 标志表示:“页面有等待者,检查它的等待队列。只被核心代码使用。不要碰它”。对于 Active 标志:“在活动 LRU 列表上。可以提前设置以告诉内核将其放到正确的列表中”。

当谈到 Workingset 时,似乎没有人真正知道这个标志的含义。Wilcox 写下了:

在页面缓存中,一旦预读页面被实际访问,就会在页面上设置这个标志。在被激活的 LRU 页面被停用后也会设置,将 refault 这种重新进入缺页处理的动作视为抖动(thrashing)。重新进行缺页处理的程序还会在被回收之前是 hot 访问的页面上设置这个标志,用于 PSI 计算。

Referenced 标志表示:

针对 per-folio 的标志。至少有一个页表条目为此页面设置了访问位。我们在扫描期间设置这个标志。在缓冲 I/O 期间也设置。第一次引用,第二次访问。在回收期间用于确定处置方式(激活、回收等)。

名为 Owner_Priv_1 的标志被描述为:“供所有者使用。如果为页面缓存,文件系统可以使用它。被许多文件系统用作 Checked 标志。被交换代码用作 SwapBacked 标志”。在会议中讨论的最后一个标志是 Arch_1 ,结果如下:

根据架构的不同,有许多不同的用途。通常用作“dcache clean”或(令人困惑地)用作“dcache dirty”。请检查您的架构定义来确认。

s390 将其用于几乎所有地方。

历史上,它是在 per page 下使用的。我认为我们现在已经消除了所有 per-page 使用的标志,所以它只应该在 folio 上设置。

会议结束后,Wilcox 在 linux-mm 邮件列表上发布了结果 (posted the result),在那里有几个后续评论。这种全房间文档创作方式是否会(或应该)流行起来还有待观察;捕获的信息比以前更多,但如果得出结论说几乎所有人都对这些标志的使用方式仍然模糊,也无可厚非。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

cadf4b7d17a4756b0d9508c1ea94fcd3.jpeg

RT-DETR 跨模态检测改进:融合红外数据提升 R50 夜间检测效果 本文提出跨模态自适应融合RT-DETR(CMF-RTDETR-R50),通过双分支骨干网络、可变形模态对齐和门控注意力融合三大模块,将红外数据融入RT-DETR-R50检测器,显著提升夜间目标检测性能。该方法在夜间场景下mAP@0.5提升11.7%,小目标检测AP_S提升15.3%,同时保持实时性(38 FPS)。关键技术包括:1)独立提取可见光与红外特征;2)可变形卷积解决模态对齐问题;3)动态门控机制自适应融合双模态特征。该方案适用于安防监控、自动驾驶等夜间检测场景,为跨模态实时检测提供实用解决方案。 阅读详情

相关推荐

安卓集成华为HMS Scankit实现自定义扫码功能

实现扫码功能 使用的是集成华为扫描的SDK,UI界面借鉴的是谷歌官方的Zxing项目中的自定义view,两者结合实现。 先上效果图: 先在项目根级别(build.gradle)当中配置HMS Core SDK的Maven仓地址。 // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huaw

qq_47625961的博客 5510

LWN:利用page folio来明确内存操作!

关注了就能看到更多这么棒的文章哦~Clarifying memory management with page foliosBy Jonathan CorbetMarch 18, 2021...

Linux News搬运工 2790

Openwork 入门指南:开源 AI 桌面助手快速上手

Openwork是一款开源的AI桌面代理工具,提供类似Claude Cowork的免费替代方案。它支持本地运行,确保隐私安全,并能高效处理文件整理、文档读写等任务。支持多种AI模型,通过MIT许可完全免费。安装简单,仅需运行命令行或下载桌面版,需配置API Key后即可使用。操作直观,支持多步骤规划和权限控制,适合自动化重复工作。目前主要支持macOS,未来将扩展至Windows/Linux。建议从简单任务入手,逐步掌握这一高效的数字助手工具。

3802

LWN:改进page-fault的可扩展性!

关注了就能看到更多这么棒的文章哦~Improving page-fault scalabilityBy Jonathan CorbetMay 29, 2023LSFMM+BPFDeepL assisted translationhttps://lwn.net/Articles/932298/某些话题总是每年都要回到开发会议上来讨论一次,通常是因为开发人员仍在努力针对某个特定的问题寻找一个可行的解决...

Linux News搬运工 1164

2026深度破解:OpenClaw开源AI框架架构与实战全景解析

2026年初,一款名为OpenClaw的开源AI Agent框架以惊人的速度席卷全球开发者社区,短短数周GitHub星标突破20万,成为史上增长最快的开源项目。本文从架构设计、核心原理、代码实现和工程实战四个维度,深度剖析OpenClaw的技术内核,帮助开发者从理解到实践,快速掌握这一革命性的AI开发框架。

fox0329的博客 2372

22、忆阻器、忆阻系统及其神经形态应用综述

本文综述了忆阻器与忆阻系统的理论基础及其在神经形态系统中的广泛应用。从忆阻器的基本定义出发,介绍了其在非线性电路、存储技术、通信和神经形态计算等领域的应用潜力。重点探讨了基于忆阻器的神经元模型(如Hodgkin-Huxley、FitzHugh-Nagumo和Hindmarsh-Rose模型)、突触实现方式及多种忆阻神经网络架构,包括细胞神经网络、脉冲神经网络和递归神经网络等。此外,深入分析了忆阻器在水库计算中的理论研究与硬件实现进展,展示了其在时间序列处理、模式识别和信号预测等方面的优异性能。尽管忆阻技术前

kiwi8的博客 207

LWN:关于readahead的讨论!

关注了就能看到更多这么棒的文章哦~A discussion on readaheadBy Jake EdgeJune 15, 2022LSFMMDeepL assisted translationhttps://lwn.net/Articles/897786/Readahead 是一种 I/O 优化,让系统读取的数据要比应用程序所要求的更多,因为相信这些额外的数据很快会被...

Linux News搬运工 478

YOLOv11涨点改进 | 全网独家首发、特征融合创新篇 | ACM 2025顶会 | 引入DAAttn差异感知注意力融合模块,通过动态调整注意力,使模型更准确地识别关键内容,提高精度、并减少冗余计算

本文提出了一种基于DAAttn(差异感知注意力融合)模块改进的YOLOv11模型,用于提升变化检测任务的性能。DAAttn模块通过动态加权特征差异,有效区分有意义变化与噪声(如光照、天气变化),显著提高了模型在复杂场景下的检测精度。该模块采用反转注意力机制,重点关注显著差异区域,同时减少计算冗余。实验表明,改进后的模型在保持计算效率的同时,能够更准确地识别小目标和细节变化。文章详细介绍了DAAttn的原理、优势、实现代码及其在YOLOv11中的集成方法,并提供了两种改进配置方案。

Ai缝合怪、助力小伙伴高效发论文 300

LWN:9月份LPC上关于folio的一次讨论!

关注了就能看到更多这么棒的文章哦~A discussion on foliosBy Jake EdgeSeptember 22, 2021LPCDeepL assisted transla...

Linux News搬运工 599

R数据分析:广义估计方程式GEE的做法和解释

好久没有更新文章了,因为同学们咨询的问题有点多,另一个原因就是自己实在太懒。。。。 今天继续给大家写广义估计方程式GEE。 In statistics, a generalized estimating equation (GEE) is used to estimate the parameters of a generalized linear model with a possible unknown correlation between outcomes. 上面的英文解释告诉我们,当我们

Codewar的博客 1万+

Google Earth Engine(GEE)——MOD09A1/MOD11A2/MOD13A1不同的QA波段去云进行分析

​​​​​​​大多数光学卫星图像产品都带有一个或多个 QA 波段,允许用户评估每个像素的质量并提取满足其要求的像素。QA 波段最常见的应用是提取有关多云像素的信息并对其进行屏蔽。但是 QA 波段包含大量其他信息,可以帮助您从分析中删除低质量数据。通常,QA 频带中包含的信息存储为按位标志。在这篇文章中,我将介绍与位运算相关的基本概念,以及如何使用位掩码提取和屏蔽特定的质量指标。

此星光明博客 4575

LWN:给kernel的swap添加一个抽象层!

关注了就能看到更多这么棒的文章哦~A new swap abstraction layer for the kernelBy Jonathan CorbetMay 23, 2024LSFMM+BPFGemini-1.5-flash translationhttps://lwn.net/Articles/974587/交换(swapping)在本质上可能是一种内存管理技术,但其实现也涉及内核的文件系...

Linux News搬运工 698

Fiori Elements Analytical List Page 标题区配置全攻略:从变体、过滤模式到 UI.KPI 的工程化落地

ALP标题区是Fiori Elements Analytical List Page的核心交互区域,承担变体管理、过滤模式切换、KPI展示等关键功能。本文系统解析了标题区的组成结构、可用能力及工程实现要点,包括:1)标题区包含过滤类型切换、全局KPI、变体管理等交互元素;2)详细说明视觉过滤与紧凑过滤的同步规则及实现方式;3)介绍OData V2下通过UI.KPI注解配置标题区KPI的方法;4)提供manifest.json配置示例和CDS注解写法。文章还对比了V2与V4版本的差异,为ALP开发提供实用指导

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 244

LWN: folio 改动未能合入!

关注了就能看到更多这么棒的文章哦~The folio pull-request pushbackBy Jonathan CorbetSeptember 10, 2021DeepL assi...

Linux News搬运工 417

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 223

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 149

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 328

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 195

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 117

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

Decorator

TaskDecorator 是异步场景下"跨线程传递上下文"的标准方案,主要用于传递 MDC、用户信息、数据源路由等上下文数据,核心价值是让异步任务的日志链路不中断、业务上下文不丢失。TaskDecorator 是 Spring 提供的一个钩子接口,用于在异步任务执行前对 Runnable 进行包装,常用于跨线程传递上下文。如果你在项目中遇到具体的异步上下文传递问题,可以把代码贴出来,我帮你给出最合适的 Decorator 方案 👍。✅ 核心能力:在线程切换时,把"父线程的上下文"搬到"子线程"

wlwork66的博客 104

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 626

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 397

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 377

java框架大全

java框架大全

qq_39326137的博客 183

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 351
上一篇: LWN:Trinity 保持KDE 3!
下一篇: LWN:6.10合并窗口的后半部分!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值