首页 > 其他分享 >软脏(soft-dirty) 【ChatGPT】

软脏(soft-dirty) 【ChatGPT】

时间:2023-12-12 23:23:24浏览次数:36  
标签:软脏 映射 软脏位 PTE 内存 ChatGPT soft 页面

软脏(soft-dirty)是一个位于 PTE(页表项)上的标志位,用于跟踪任务写入的哪些页面。为了进行这种跟踪,需要执行以下步骤:

  1. 清除任务的 PTE 中的软脏位。
    这可以通过向相关任务的 /proc/PID/clear_refs 文件写入“4”来完成。

  2. 等待一段时间。

  3. 从 PTE 中读取软脏位。
    这可以通过从 /proc/PID/pagemap 文件中读取数据来完成。64 位 qword 中的第 55 位是软脏位。如果设置了该位,表示自步骤 1 以来相应的 PTE 已被写入。

在内部实现中,当清除软脏位时,PTE 的可写位也会被清除。因此,在此之后,当任务尝试修改某个虚拟地址处的页面时,会触发页面故障(#PF),内核会在相应的 PTE 上设置软脏位。

需要注意的是,尽管在清除软脏位后,所有任务的地址空间都被标记为只读,但在此之后发生的页面故障会被快速处理。这是因为页面仍然映射到物理内存,因此内核只需发现这一事实,并在 PTE 上设置可写和软脏位。

虽然在大多数情况下,通过页面故障来跟踪内存变化已经足够,但仍存在一种情况会导致丢失软脏位,即任务取消映射先前映射的内存区域,然后在完全相同的位置映射一个新的内存区域。当调用取消映射时,内核会内部清除 PTE 值,包括软脏位。为了通知用户空间应用程序有关这种内存区域的更新,内核总是将新的内存区域(以及扩展的区域)标记为软脏。

这个功能被活跃地用于检查点恢复(checkpoint-restore)项目。您可以在 http://criu.org 上找到更多关于此功能的详细信息。

-- Pavel Emelyanov, 2013 年 4 月 9 日

标签:软脏,映射,软脏位,PTE,内存,ChatGPT,soft,页面
From: https://www.cnblogs.com/pengdonglin137/p/17898098.html

相关文章

  • hwpoison 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/hwpoison.html"hwpoison"是什么?即将推出的英特尔CPU支持从一些内存错误(MCA恢复)中恢复。这需要操作系统声明一个页面为“毒害”,终止与之关联的进程,并避免将来使用它。这个补丁包在虚拟机中实现了必要的基础设施。引用概述评论:高级......
  • 物理地址模型 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/memory-model.html物理内存模型系统中的物理内存可以以不同的方式进行寻址。最简单的情况是物理内存从地址0开始,并延伸到最大地址的连续范围。然而,这个范围可能包含对CPU不可访问的小空洞。然后可能存在完全不同地址的几个连续范围。......
  • KSM 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/ksm.htmlKernelSamepageMerging(KSM)KSM是一种节省内存的去重功能,通过CONFIG_KSM=y启用,添加到Linux内核中的2.6.32版本。有关其实现,请参阅mm/ksm.c,以及http://lwn.net/Articles/306704/和https://lwn.net/Articles/330589/。KSM的用......
  • 虚拟映射的内核栈支持 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/vmalloced-kernel-stacks.html虚拟映射的内核栈支持作者[email protected]概述这是从引入虚拟映射内核栈功能的代码和原始补丁系列中整理的信息https://lwn.net/Articles/694348/。介绍内核栈溢出通常很难调......
  • 页面迁移 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/page_migration.html#page-migration页面迁移页面迁移允许在NUMA系统中的节点之间移动页面的物理位置,同时进程正在运行。这意味着进程看到的虚拟地址不会改变。但是,系统重新排列这些页面的物理位置。另请参阅异构内存管理(HMM),用于......
  • Multi-Gen LRU 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/multigen_lru.html多代LRU多代LRU是一种替代LRU实现,它优化页面回收并在内存压力下提高性能。页面回收决定了内核的缓存策略和内存过度分配的能力。它直接影响了kswapdCPU的使用率和RAM的效率。设计概述目标设计目标包括:良好的......
  • 空闲页面报告 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/free_page_reporting.html空闲页面报告空闲页面报告是一种API,设备可以通过该API注册以接收当前系统未使用的页面列表。这在虚拟化的情况下非常有用,因为虚拟机可以利用这些数据通知hypervisor它不再使用内存中的某些页面。对于驱动程......
  • 文心一言 VS 讯飞星火 VS chatgpt (155)-- 算法导论12.3 2题
    二、用go语言,假设通过反复向一棵树中插人互不相同的关键字来构造一棵二叉搜索树。证明:在这棵树中查找关键字所检查过的结点数目等于先前插入这个关键字所检查的结点数目加1。文心一言:为了证明这个结论,我们可以使用二叉搜索树的性质:在二叉搜索树中,每个节点包含一个关键字以及指......
  • 异构内存管理(HMM) 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/hmm.html异构内存管理(HMM)HMM提供基础设施和辅助工具,将非常规内存(例如设备内存,如GPU板载内存)整合到常规内核路径中,其核心是为此专门设计的用于此类内存的structpage(请参见本文档的第5至7节)。HMM还提供了用于SVM(共享虚拟内存)的可选辅......
  • DAMON: 数据访问监控 (翻译 by chatgpt)
    原文:https://www.kernel.org/doc/html/v6.6/admin-guide/mm/damon/index.htmlDAMON:数据访问监控DAMON允许进行轻量级的数据访问监控。使用DAMON,用户可以分析其系统的内存访问模式并进行优化。入门指南先决条件记录数据访问模式可视化记录的模式数据访问模式感知内存管理......