Re: [PATCH char-misc-next 02/13] misc: mic: SCIF ring buffer infrastructure

From: Greg Kroah-Hartman
Date: Fri Jan 09 2015 - 19:48:09 EST


On Fri, Jan 09, 2015 at 04:28:19PM -0800, Sudeep Dutt wrote:
> 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.

No, it's designed for an in-kernel ringbuffer, so you need to document
exactly this.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/