mlock是否阻止页面出现在核心转储中?

时间:2014-01-31 17:27:17

标签: memory-management embedded-linux core

我有一个带有敏感内存的进程,永远不能写入磁盘。

我还要求我需要核心转储来满足客户的首次数据捕获要求。

使用mlock()锁定页面是否会阻止页面出现在核心转储中?

注意,这是一个嵌入式系统,我们实际上没有任何交换空间。

1 个答案:

答案 0 :(得分:0)

取自man 2 madvise

  

madvise()系统调用建议内核如何处理   从地址addr和地址开始的地址范围内的分页输入/输出   大小长度字节。它允许应用程序告诉内核   它如何期望使用一些映射或共享内存区域,以便   内核可以选择适当的预读和缓存技术。   此调用不会影响应用程序的语义(除外   在MADV_DONTNEED的情况下,但可能会影响其性能。该   内核可以随意忽略这些建议。

特别检查选项MADV_DONTDUMP

  

从核心转储中排除addr指定范围内的那些页面   和长度。这在具有大面积的应用程序中很有用   已知的内存在核心转储中没有用处。的效果   MADV_DONTDUMP优先于通过设置的位掩码   / proc / PID / coredump_filter文件(见core(5))。