【发布时间】:2020-09-15 06:57:55
【问题描述】:
这两个标志被驱动程序使用,但我不明白为什么我们需要它们。如果我不在 VMA 上设置这两个标志会发生什么?我应该什么时候使用它们?有人可以提供一些用例吗?谢谢。
【问题讨论】:
标签: linux linux-kernel driver linux-device-driver embedded-linux
这两个标志被驱动程序使用,但我不明白为什么我们需要它们。如果我不在 VMA 上设置这两个标志会发生什么?我应该什么时候使用它们?有人可以提供一些用例吗?谢谢。
【问题讨论】:
标签: linux linux-kernel driver linux-device-driver embedded-linux
对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。
【讨论】: