transfering pages from user space to user space

Yann Droneaud ydroneaud at opteya.com
Thu Dec 6 04:30:27 EST 2012


Hi,

Le mercredi 05 décembre 2012 à 22:47 -0300, Pablo Pessolani a écrit :
> Hi:
>     I am working on a project to copy (page aligned) the
> buffer content of one process to the buffer of other process.
>     
>     Now I resolved this issue using copy_page() but, analizing
> performance with different buffer sizes, the "copy_page" becames the
> critical time component and limiting factor.

This sounds a lot like "Cross Memory Support" (eg CROSS_MEMORY_ATTACH
option) introduced in Linux 3.2:

http://kernelnewbies.org/Linux_3.2#head-a5e26c6275e85a5c9c41873fbab96bd38d934b72

Cross Memory Support add two syscalls:
- process_vm_readv() : read from a process memory
- process_vm_writev() : write to a process memory

Details can be found here:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=fcf634098c00dd9cd247447368495f0b79be12d1

And documentation here:

http://www.man7.org/linux/man-pages/man2/process_vm_readv.2.html
http://ozlabs.org/~cyeoh/cma/process_vm_readv.txt

> [...] The kernel I use is 2.6.32.
>  

BTW, why use a kernel released 3 years ago for such new development ?
Kernel 2.6.32 was released the 3rd of december 2009. Even the -rt
project switch to newer kernel (eg. no less than 3.0, and up to 3.4),
see http://rt.wiki.kernel.org/

You should at least switch to a current long term support kernels, for
example Linux 3.4. See
http://www.kroah.com/log/linux/stable-status-08-2012.html

Regards

-- 
Yann Droneaud
OPTEYA






More information about the Kernelnewbies mailing list