|
Hi,
Are there any kernel guys (girls) who know about
copying memory while in a kernel module ?
A kernel module may copy data from user space to
kernel space using 'copy_to_user'.
Can a kernel module copy data from one user space
to another user space ?
( I want to be able to send a essage from one task
to the other with only one memory copy.
ie copy directly from Task A's
memory space to Task B's memory space.)
THE REASON BEHIND THE
QUESTION:
I have Task A that wants to send a
message to Task
B.
Task A is now not running
Task B does some work and sends a
reply message to Task A. Task B is now
running
For anyone familiar with QNX, this is the classic
Send/Receive/Reply programming paradigm.
I know this can be done in user space (I've done
it) and seen what 'SIMPL' has to offer (from parrallel computing) but these are
very slow compared to benchmarks done on my old QNX os (same hardware of
course)
MY OWN REASONING:
I figure the reason this may be difficult is
because the task not 'current' to the kernel module may have had its memory
swapped out and therefore may not be in memory at the time of the
call.
I can live with the client tasks allocating their
send/receive memory on a non-swappable basis (can't remember how but I know it
can be done in user-space). Given this then it should be possible to
acheive the transfer in only one memory copy.
Any ideas ?
Regards,
Andrew Eager
|
- Re: [SLUG] Copying memory in kernel Andrew Eager
- Re: [SLUG] Copying memory in kernel Conrad Parker
- Re: [SLUG] Copying memory in kernel Andrew Eager
- Re: [SLUG] Copying memory in kernel Andy Eager
- Re: [SLUG] Copying memory in kernel Andy Eager
