gpt4 book ai didi

c - 零填充需求是如何在 Linux 内核中实现的,我可以在哪里禁用它?

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:13 26 4
gpt4 key购买 nike

当我们 malloc 内存时,只有虚拟内存可用,它实际上指向零页。当我们尝试写入 malloced 内存时,真正的物理内存将被分配,此时,将有 copy-on-wright 将零从零页复制到由缺页错误映射的物理内存。我的问题是,在 linux 源代码中如何/在何处实现零填充需求,我想禁用此功能以进行一些测试。我猜它可能发生在页面错误过程中,而不是 brk() 或 mmap()。

与按需填零相关的类似主题。 ZFODCOW .

最佳答案

您想使用 MAP_UNINITIALIZED 参数来 mmap 并在您的内核编译中启用 CONFIG_MMAP_ALLOW_UNINITIALIZED。


MAP_UNINITIALIZED(自 Linux 2.6.33 起)
不要清除匿名页面。此标志旨在改进
嵌入式设备上的性能。只有当
内核配置了 CONFIG_MMAP_ALLOW_UNINITIAL-
IZED 选项。由于安全隐患,该选项
通常只在嵌入式设备上启用(即设备
其中一个人可以完全控制用户内存的内容)。

关于c - 零填充需求是如何在 Linux 内核中实现的,我可以在哪里禁用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44968502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com