mbox series

[v2,00/15] net/ionic: struct optimizations, fixes

Message ID 20210216203540.29290-1-aboyer@pensando.io (mailing list archive)
Headers
Series net/ionic: struct optimizations, fixes |

Message

Andrew Boyer Feb. 16, 2021, 8:35 p.m. UTC
  This patch series reorganizes the main datastructure for each
queue, struct ionic_qcq. Its constituent struct ionic_queue and
struct ionic_cq are stripped down first. Then the generic struct
ionic_qcq is stripped down, and a unique struct is created for
each queue type.

The adminq code is consolidated into ionic_main.c as part of the
cleanup.

Next comes some minor performance fixups related to queue posting
and doorbells.

Finally, a minor improvement to Tx packet prep and a minor fix
for LIF init.

Signed-off-by: Andrew Boyer <aboyer@pensando.io>

--
v2:
* Resend for new DPDK release cycle
* Insert a new patch "net/ionic: remove unused filter delete function" so
  that even more adminq code can be staticized
* Update second-to-last patch which was partially applied in 21.02

Andrew Boyer (15):
  net/ionic: cut down completion queue structure
  net/ionic: remove unused filter delete function
  net/ionic: consolidate adminq code
  net/ionic: convert info array to generic pointers
  net/ionic: remove unused field from queue structure
  net/ionic: remove unused interrupt free function
  net/ionic: cut down queue structure
  net/ionic: split up queue-completion queue structure
  net/ionic: use the socket id passed in for Rx and Tx queues
  net/ionic: log queue counters when tearing down
  net/ionic: break up queue post function
  net/ionic: ring doorbell once at the end of each burst
  net/ionic: send as many packets as possible
  net/ionic: store Tx fragment limit in queue
  net/ionic: fix code around lif init devcmd

 drivers/net/ionic/ionic.h           |  13 +-
 drivers/net/ionic/ionic_dev.c       | 132 +-------------
 drivers/net/ionic/ionic_dev.h       |  82 +++------
 drivers/net/ionic/ionic_lif.c       | 242 +++++++++++++------------
 drivers/net/ionic/ionic_lif.h       |  77 +++++---
 drivers/net/ionic/ionic_main.c      |  95 +++++++++-
 drivers/net/ionic/ionic_rx_filter.c |  15 +-
 drivers/net/ionic/ionic_rx_filter.h |   1 -
 drivers/net/ionic/ionic_rxtx.c      | 265 ++++++++++++++++------------
 9 files changed, 458 insertions(+), 464 deletions(-)
  

Comments

Ferruh Yigit Feb. 25, 2021, 4:07 p.m. UTC | #1
On 2/16/2021 8:35 PM, Andrew Boyer wrote:
> This patch series reorganizes the main datastructure for each
> queue, struct ionic_qcq. Its constituent struct ionic_queue and
> struct ionic_cq are stripped down first. Then the generic struct
> ionic_qcq is stripped down, and a unique struct is created for
> each queue type.
> 
> The adminq code is consolidated into ionic_main.c as part of the
> cleanup.
> 
> Next comes some minor performance fixups related to queue posting
> and doorbells.
> 
> Finally, a minor improvement to Tx packet prep and a minor fix
> for LIF init.
> 
> Signed-off-by: Andrew Boyer <aboyer@pensando.io>
> 
> --
> v2:
> * Resend for new DPDK release cycle
> * Insert a new patch "net/ionic: remove unused filter delete function" so
>    that even more adminq code can be staticized
> * Update second-to-last patch which was partially applied in 21.02
> 
> Andrew Boyer (15):
>    net/ionic: cut down completion queue structure
>    net/ionic: remove unused filter delete function
>    net/ionic: consolidate adminq code
>    net/ionic: convert info array to generic pointers
>    net/ionic: remove unused field from queue structure
>    net/ionic: remove unused interrupt free function
>    net/ionic: cut down queue structure
>    net/ionic: split up queue-completion queue structure
>    net/ionic: use the socket id passed in for Rx and Tx queues
>    net/ionic: log queue counters when tearing down
>    net/ionic: break up queue post function
>    net/ionic: ring doorbell once at the end of each burst
>    net/ionic: send as many packets as possible
>    net/ionic: store Tx fragment limit in queue
>    net/ionic: fix code around lif init devcmd
> 

Series applied to dpdk-next-net/main, thanks.