vma_flags VM_IO和VM_RESERVED有什么区别?它们应该如何使用?
linux内核源代码中的注释非常令人困惑。
http://lxr.free-electrons.com/source/include/linux/mm.h?v=3.4;a=arm#L104 http://lxr.free-electrons.com/source/include/linux/mm.h?v=3.4;a=arm#L96
#define VM_IO 0x00004000 /* Memory mapped I/O or similar */
#define VM_RESERVED 0x00080000 /* Count as reserved_vm like IO */谢谢
发布于 2014-03-11 04:23:54
来自:http://www.makelinux.net/ldd3/chp-15-sect-1
"VM_IO将VMA标记为内存映射的I/O区域,除其他外,VM_IO标志防止该区域包含在进程核心转储中。
VM_RESERVED告诉内存管理系统不要尝试交换这个VMA;它应该在大多数设备映射中设置。“
要更好地理解这些问题是如何和为什么发生的,以及linux内核社区的建议是什么,请阅读以下几篇文章:
http://lwn.net/Articles/161204/
http://lwn.net/Articles/162860/
更新:
VM_RESERVED标志已停止使用。见莱纳斯的补丁
https://stackoverflow.com/questions/22316289
复制相似问题