【问题标题】:Does POSIX_FADV_DONTNEED remove dirty pages from other processes on Linux?POSIX_FADV_DONTNEED 是否从 Linux 上的其他进程中删除脏页?
【发布时间】:2018-10-08 18:05:10
【问题描述】:

我一直在做一些关于 madvise 的研究。

例子:

https://www.youtube.com/watch?v=bg6-LVCHmGM&feature=youtu.be&t=1h13m24s

Does madvise(___, ___, MADV_DONTNEED) instruct the OS to lazily write to disk?

这表示如果调用madvise,脏页不会被写入磁盘。

当使用 POSIX_FADV_DONTNEED 调用时,posix_fadvise 的行为是否相同?

如果行为相同,当为在两个单独文件中打开的文件调用 posix_fadvise 时会发生什么?

其他进程上的脏页是否会在未写入磁盘的情况下被驱逐?

【问题讨论】:

  • 请记住,madvice/fadvice 只是对内核的提示 - 如果没有,它实际上没有义务任何事情喜欢它。
  • 内核确实响应了通知,所以问题是内核对通知的行为是什么。

标签: c linux


【解决方案1】:

没有。关于 Linux MADV_DONTNEED 的一切都与 POSIX 语义相反,并且不能用于实现 posix_madviseposix_fadvise。仅当您调用非标准化的madvise 函数时才有意义。

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    相关资源
    最近更新 更多