]> git.baikalelectronics.ru Git - kernel.git/commit
staging: fsl-dpaa2/eth: Use affine DPIO services
authorIoana Radulescu <ruxandra.radulescu@nxp.com>
Fri, 5 Jan 2018 11:04:32 +0000 (05:04 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Jan 2018 15:47:23 +0000 (16:47 +0100)
commit4868f78c56b384b4d782acba0e90a11851f4aba2
tree9f0a913d93f64bfdcbe53e13264883ace4c99570
parentbeaf36f5c7da4b6e450f724efdc980029355dd7c
staging: fsl-dpaa2/eth: Use affine DPIO services

Use the newly added DPIO service API to map cpu-affine DPIO services
to channels.

The DPAA2 Ethernet driver already had mappings of frame queues and
channels to cpus, but had no control over the DPIOs used. We can
now ensure full affinity of hotpath hardware resources to cores,
which improves performance and almost eliminates some resource
contentions (e.g. enqueue/dequeue busy counters should be close to
zero from now on).

Making the pull channel operation core affine brings the most
significant benefits. This ensures the same DPIO service will be
used for all dequeue commands issued for a certain frame queue,
which is in line with the way hardware is optimized.

Additionally, we also use affine DPIOs for the frame enqueue and
buffer release operations in order to avoid resource contention.
dpaa2_io_service_register() and dpaa2_io_service_rearm()
functions receive an affine DPIO as argument mostly for uniformity,
but this doesn't change the previous functionality.

Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h