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

From: Madalin-Cristian Bucur
Date: Tue Nov 08 2016 - 02:27:43 EST


> -----Original Message-----
> From: David Miller [mailto:davem@xxxxxxxxxxxxx]
> Sent: Monday, November 07, 2016 5:55 PM
>
> From: Madalin-Cristian Bucur <madalin.bucur@xxxxxxx>
> Date: Mon, 7 Nov 2016 15:43:26 +0000
>
> >> From: David Miller [mailto:davem@xxxxxxxxxxxxx]
> >> Sent: Thursday, November 03, 2016 9:58 PM
> >>
> >> Why? By clearing this, you disallow an important fundamental way to 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
> 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 queues 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.

Madalin