On Fri, 2015-01-09 at 15:05 -0800, Greg Kroah-Hartman wrote: > On Wed, Dec 10, 2014 at 11:47:42AM -0800, Sudeep Dutt wrote: > > SCIF ring buffer is a single producer, single consumer byte stream ring > > buffer optimized for avoiding reads across the PCIe bus. The ring buffer is > > used to implement a receive queue for SCIF driver messaging between nodes and > > for byte stream messaging between SCIF endpoints. Each SCIF node has a > > receive queue for every other SCIF node, and each connected endpoint has a > > receive queue for messages from its peer. This pair of receive queues is > > referred to as a SCIF queue pair. > > And the reason you aren't using the built-in kernel ring buffer code is > why? > This simple byte stream ring buffer is in our performance data path for small messages and is optimized to avoid reads across the PCIe bus while adding the required barriers and hardware workarounds for the MIC Coprocessor. I will add some more documentation here in the v2 which I will post early next week. We did not find other ring buffers in the kernel which were tailored for our use case across PCIe. I am guessing (please correct me) that you are referring to the ring buffer in include/linux/ring_buffer.h. It does not seem to be designed for being used between two independent OS's across the PCIe bus. Please let me know your thoughts. Thanks, Sudeep Dutt -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html