Thread (29 messages) 29 messages, 10 authors, 2016-11-09

RE: [PATCH net-next v6 02/10] dpaa_eth: add support for DPAA Ethernet

flat view

From: Madalin-Cristian Bucur <madalin.bucur@nxp.com>
Date: 2016-11-07 23:34:21
Also in: lkml, netdev

From: David Miller [mailto:davem@davemloft.net]
Sent: Monday, November 07, 2016 6:40 PM
=20
From: Madalin-Cristian Bucur <madalin.bucur@nxp.com>
Date: Mon, 7 Nov 2016 16:32:16 +0000
=20
quoted
quoted
From: David Miller [mailto:davem@davemloft.net]
Sent: Monday, November 07, 2016 5:55 PM

From: Madalin-Cristian Bucur <madalin.bucur@nxp.com>
Date: Mon, 7 Nov 2016 15:43:26 +0000
quoted
quoted
From: David Miller [mailto:davem@davemloft.net]
Sent: Thursday, November 03, 2016 9:58 PM

Why?  By clearing this, you disallow an important fundamental way t=
o
quoted
quoted
quoted
quoted
do performane testing, via pktgen.
The Tx path in DPAA requires one to insert a back-pointer to the skb
into
the Tx buffer. On the Tx confirmation path the back-pointer in the
buffer
is used to release the skb. If Tx buffer is shared we'd alter the
back-pointer
and leak/double free skbs. See also
Then have your software state store an array of SKB pointers, one for
each
quoted
quoted
TX ring entry, just like every other driver does.
There is no Tx ring in DPAA. Frames are send out on QMan HW queues
towards the FMan for Tx and then received back on Tx confirmation queue=
s
quoted
for cleanup.
Array traversal would for sure cost more than using the back-pointer.
Also, we can now process confirmations on a different core than the one
doing Tx,
we'd have to keep the arrays percpu and force the Tx conf on the same
core. Or add locks.
=20
Report back an integer index, like every scsi driver out there which
completes tagged queued block I/O operations asynchronously.  You can
associate the array with a specific TX confirmation queue.
From HW? It only gives you back the buffer start address (plus length, etc)=
.
"buff_2_skb()" needs to be solved in SW, expensively using array (lists? As
the number of frames in flight can be large/variable) or cheaply with the b=
ack
pointer. The back-pointer approach has its tradeoffs: no shared skbs, impos=
ed
non-zero needed_headroom.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help