Messages in this thread | | | Date | Thu, 6 Oct 2011 21:00:13 -0700 (PDT) | From | david@lang ... | Subject | Re: intercommunications between Linux kernel modules |
| |
On Thu, 6 Oct 2011, Cyclonus J wrote:
> On Thu, Oct 6, 2011 at 7:04 PM, Andi Kleen <andi@firstfloor.org> wrote: >> Cyclonus J <cyclonusj@gmail.com> writes: >> >>> I am looking for a way to do an IPC-like communications between two >>> linux kernel modules, such as mqueue or shared memory. After searching >>> for a while, I can't find such information available inside existing >>> linux kernel or online. >>> >>> So, my question is if this is something discussed before here and gets >>> rejected or still might be accepted in the mainstream kernel tree? >> >> All kernel memory is shared in Linux, so the concept doesn't make sense. >> >> If you want to send messages or communicate inside the kernel there are >> lots of different facilities available. > > Andi, > > That would be great! Could you point me to some facilities that can do > this message passing between kernels?
what you are missing is that there aren't two different kernels. it's one big process. think multi-threaded programming instead of inter-process communication. You don't even have well defined threads to work with so you can't say "I'm in thread 1 and need to communicate with thread 2", you need to think "I'm in this routine and I need to set a message in a way that another routine will read it", this can be as simple as just setting a variable (although you do need to make it the equivalent of 'thread safe' through appropriate locking or lock-free protection)
David Lang
| |