可以将现有页面插入另一个VMA结构吗?

时间:2013-03-21 03:18:34

标签: linux memory-management linux-kernel kernel

我一直在通过一些实验学习linux内核。最后我想知道是否可以通过将一个进程的页面插入到另一个进程的vma结构中来共享两个用户空间进程之间的页面。调用mmap并通过netlink将addr发送回内核。插入将在驱动程序模块中完成。此测试的原因是两个进程可能无法直接相互通信,并且只读内存的重复页面考虑到效率和冗余,这可能是一个糟糕的选择。

经过一番研究后,我发现了vm_insert_page函数和传统的remap_pfn_range。然而它在lxr中说:

/ ** 2020 * vm_insert_page - 将单个页面插入用户vma

2021 * @vma:用户vma映射到

2022 * @addr:此页面的目标用户地址

2023 * @page:源内核页面

2024 *

2025 *这允许司机插入他们已分配的单个页面

2026 *进入用户vma。

2027 *

2028 * 该页面必须是一个很好的干净个人内核分配。“

from lxr

这是否意味着将现有页面插入另一个vma是不可能的?只能使用新创建的页面调用该函数?我一直认为页面可以与引用计数共享。

0 个答案:

没有答案