linux kernel - VM_IO和VM_RESERVED的区别



vma_flags VM_IOVM_RESERVED的区别是什么?它们应该如何使用?
linux内核源代码中的注释非常令人困惑

http://lxr.free-electrons.com/source/include/linux/mm.h?v=3.4;手臂= # L104
http://lxr.free-electrons.com/source/include/linux/mm.h?v=3.4;手臂= # L96

#define VM_IO           0x00004000      /* Memory mapped I/O or similar */
#define VM_RESERVED     0x00080000      /* Count as reserved_vm like IO */

谢谢

From: 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旗已停用。参见Linus的补丁