Memory management 从用户进程的mm_结构或vm_区域结构读取数据

Memory management 从用户进程的mm_结构或vm_区域结构读取数据,memory-management,linux-kernel,kernel,kernel-mode,Memory Management,Linux Kernel,Kernel,Kernel Mode,我想知道在内核模式下如何从用户进程的页面复制数据。我可以访问进程的mm_结构和所有vm_区域结构。在vm_ops中,我看到了访问方法,但我不确定它是如何工作的。任何帮助都将不胜感激。可以通过linux/mm.h中声明的access\u process\u vm方法来完成(我想我现在记不起来了)。这是访问进程内存的安全方法,需要的是进程的任务结构、要写入/读取的数据缓冲区、进程vm空间内的大小、地址以及它是否为读/写。这样做之所以安全,是因为它有所有适当的锁来处理这个问题,并且有备份方法在get_

我想知道在内核模式下如何从用户进程的页面复制数据。我可以访问进程的mm_结构和所有vm_区域结构。在vm_ops中,我看到了访问方法,但我不确定它是如何工作的。任何帮助都将不胜感激。

可以通过linux/mm.h中声明的access\u process\u vm方法来完成(我想我现在记不起来了)。这是访问进程内存的安全方法,需要的是进程的任务结构、要写入/读取的数据缓冲区、进程vm空间内的大小、地址以及它是否为读/写。这样做之所以安全,是因为它有所有适当的锁来处理这个问题,并且有备份方法在get_user_页面失败时获取用户空间页面。返回值是从vm空间读取的字节数。

我很好奇您在这里尝试做什么?我只想在不同位置发生写入错误时复制数据,并避免从磁盘读取页面。