[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6DB023FA6E@AcuExch.aculab.com>
Date: Wed, 14 Dec 2016 17:37:37 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Christoph Lameter' <cl@...ux.com>,
Hannes Frederic Sowa <hannes@...essinduktion.org>
CC: Jesper Dangaard Brouer <brouer@...hat.com>,
John Fastabend <john.fastabend@...il.com>,
Mike Rapoport <rppt@...ux.vnet.ibm.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
linux-mm <linux-mm@...ck.org>,
Willem de Bruijn <willemdebruijn.kernel@...il.com>,
Björn Töpel <bjorn.topel@...el.com>,
"Karlsson, Magnus" <magnus.karlsson@...el.com>,
Alexander Duyck <alexander.duyck@...il.com>,
Mel Gorman <mgorman@...hsingularity.net>,
"Tom Herbert" <tom@...bertland.com>,
Brenden Blanco <bblanco@...mgrid.com>,
"Tariq Toukan" <tariqt@...lanox.com>,
Saeed Mahameed <saeedm@...lanox.com>,
"Jesse Brandeburg" <jesse.brandeburg@...el.com>,
Kalman Meth <METH@...ibm.com>,
Vladislav Yasevich <vyasevich@...il.com>
Subject: RE: Designing a safe RX-zero-copy Memory Model for Networking
From: Christoph Lameter
> Sent: 14 December 2016 17:00
> On Tue, 13 Dec 2016, Hannes Frederic Sowa wrote:
>
> > > Interesting. So you even imagine sockets registering memory regions
> > > with the NIC. If we had a proper NIC HW filter API across the drivers,
> > > to register the steering rule (like ibv_create_flow), this would be
> > > doable, but we don't (DPDK actually have an interesting proposal[1])
> >
> > On a side note, this is what windows does with RIO ("registered I/O").
> > Maybe you want to look at the API to get some ideas: allocating and
> > pinning down memory in user space and registering that with sockets to
> > get zero-copy IO.
>
> Yup that is also what I think. Regarding the memory registration and flow
> steering for user space RX/TX ring please look at the qpair model
> implemented by the RDMA subsystem in the kernel. The memory semantics are
> clearly established there and have been in use for more than a decade.
Isn't there a bigger problem for transmit?
If the kernel is doing ANY validation on the frames it must copy the
data to memory the application cannot modify before doing the validation.
Otherwise the application could change the data afterwards.
David
Powered by blists - more mailing lists