【问题标题】:Which mechanism was first introduced in Linux Kernel: clear_refs or userfaultfdLinux Kernel 中最先引入了哪种机制:clear_refs 或 userfaultfd
【发布时间】:2021-12-14 16:05:51
【问题描述】:

我想知道上述哪种机制是首先在 Linux 中引入的。 其中两个是脏位跟踪机制。

第一个是通过 /proc/clear_refs fs 完成的,如下所示:一旦用户向 /proc/$pid/clear_refs 写入“4”,内核就会取消设置进程所有页面的脏位,并在下一次尝试时要访问这些页面,会触发页面错误并重置脏位(由内核),然后用户可以通过 /proc/pagemap 收集已访问的页面。

第二个允许用户自己处理页面错误:用户首先要求内核保护通过 mmap 分配的内存中的给定区域;在任何尝试访问该区域中的页面后,都会产生页面错误,对此的处理将转移给用户,例如,用户可能会要求内核允许访问或拒绝访问。因此,通过这种方式,人们不再需要通过 pagemap 来了解哪些页面已被访问。

【问题讨论】:

    标签: linux memory-management linux-kernel


    【解决方案1】:

    来自man 5 proc

    /proc/[pid]/clear_refs (since Linux 2.6.22)
    

    来自man 2 userfaultfd

    VERSIONS
           The userfaultfd() system call first appeared in Linux 4.3.
    

    所以看起来/proc/[pid]/clear_refsuserfaultfd 大很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 2012-02-11
      • 2019-07-23
      • 1970-01-01
      相关资源
      最近更新 更多