[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Could kernel copy memory between processes directly?
Artur,
>Urgh. Too much to read. I have to try to catch up with work first.
Oops, sorry. I'd explain it in a few lines, but it's dangerous.
>"Procedure call into another process"? Sounds like Solaris doors. If you
>want to implement something like that doors would be a very good thing.
Correct! Very similar although there are differences, most importantly QNX
sends someting like iovector while doors send a linear buffer, I guess. I
don't think I could implement doors myself but NetBSD said (will say?) at
Usenix 2002 it was their "future direction". Basic QNX api looks much
simpler and maybe reachable for me (with a little help from my friends :-).
I don't know how doors vs. qnx performs, but direct copying is a key to
good performance in both cases. This is why I wanted to know if such a
direct copy from one process to another is possible at all.
>copyin and copyout only work on the currently running process.
Okay, this is the answer to my initial question. So, as a simplification,
the kernel sees only itself and current process, like in Linux, correct?
>procfs_domem does uvm_io that extracts a bunch of vm mappings
>(_not_ mmu mappings) and maps them into kernel space, then it copies stuff
>from kernel space into the process, faulting in as necessary (and since
>there is no copying of mmu entries, the faulting will happen at least
once).
Hmm, now I have the whole lot to read.
Thanks a lot!!!
Regards,
Wojtek Narczynski