提问人:LeXav 提问时间:5/17/2023 最后编辑:genpfaultLeXav 更新时间:5/18/2023 访问量:102
Mmap : 失败并显示MAP_SYNC
Mmap : failing with MAP_SYNC
问:
[Linux 内核 6.1.27 在 Debian 测试中,最新。Clang 16 或 gcc 12.2]
有人可以告诉我们出了什么问题以及为什么 mmap 返回MAP_FAILED:
int fd = ::open( file_name.data(), O_RDWR );
auto *ptr = mmap( nullptr, size, PROT_READ | PROT_WRITE, MAP_SHARED_VALIDATE | MAP_SYNC, fd, 0 );
Errno 告诉:“不支持操作”
删除MAP_SYNC时,一切正常。
它在指定 或 时也有效。MAP_SHARED_VALIDATE | MS_SYNC
MAP_SHARED_VALIDATE |MS_ASYNC
我基本上想避免在编写后调用 msync,并让内核自动为我管理它。
答: 暂无答案
评论
mmap
errno
mmap
手册页)(底层块设备当然也必须支持 DAX)-o dax=always
FS_XFLAG_DAX
MAP_SYNC
EOPNOTSUPP
EXT4_DAX_FL
标志。-o dax=always
FS_IOC_GETFLAGS
FS_IOC_SETFLAGS