【问题标题】:What does VM_MIXEDMAP and VM_PFNMAP flags mean in Linux kernel?Linux 内核中的 VM_MIXEDMAP 和 VM_PFNMAP 标志是什么意思?
【发布时间】:2020-09-15 06:57:55
【问题描述】:

这两个标志被驱动程序使用,但我不明白为什么我们需要它们。如果我不在 VMA 上设置这两个标志会发生什么?我应该什么时候使用它们?有人可以提供一些用例吗?谢谢。

【问题讨论】:

    标签: linux linux-kernel driver linux-device-driver embedded-linux


    【解决方案1】:

    VM_MIXEDMAP 的最佳解释,间接对VM_PFNMAP 的解释,来自介绍它的补丁提交的描述: http://visa.lab.asu.edu/gitlab/fstrace/android-kernel-msm-hammerhead-3.4-marshmallow-mr3/commit/b379d790197cdf8a95fb67507d75a24ac0a1678d

    简而言之,VM_MIXEDMAP 允许映射同时包含“托管”页面(即由内存管理器控制)和“非托管”页面(即“按原样”给定,如物理设备)。 VM_PFNMAP 用于“完全不受管理”的区域,其资源不受正常分配系统控制(例如,再次,如映射到用户空间中的物理设备)。

    这两个标志都有非常特殊的用途,VM_PFNMAP 在这里讨论:https://linux-mm.org/DeviceDriverMmap

    在我看来,“普通”设备驱动程序不太可能碰巧使用VM_MIXEDMAP

    【讨论】:

    • VM_PFNMAP 是 VM_MIXEDMAP 的子集吗?
    • 有点......但我认为后者是为非常“内部”的情况保留的,特别是基于写时复制机制等的优化......
    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2011-02-01
    • 2018-01-14
    相关资源
    最近更新 更多