title: POSIX Message Queue go through kernel space?
body: <p>I am looking to use POSIX message queues on a single process multi threaded application.  mqueues will be used to share data between the threads.</p>
  
  <p>I am a little confused on how they work in the Linux kernel.  Do all the messages go through kernel space and then back to user space on the receive?  a.k.a. from a userspace thread I do a mq_send and the message ends up in kernel space, and then on receive it is another system call to get the message from kernel space.  If so isn't this highly inefficient for high-use message queues?</p>