mbox series

[net-next,00/16] gve: Introduce DQO descriptor format

Message ID 20210624180632.3659809-1-bcf@google.com (mailing list archive)
Headers show
Series gve: Introduce DQO descriptor format | expand

Message

Bailey Forrest June 24, 2021, 6:06 p.m. UTC
DQO is the descriptor format for our next generation virtual NIC. The existing
descriptor format will be referred to as "GQI" in the patch set.

One major change with DQO is it uses dual descriptor rings for both TX and RX
queues.

The TX path uses a TX queue to send descriptors to HW, and receives packet
completion events on a TX completion queue.

The RX path posts buffers to HW using an RX buffer queue and receives incoming
packets on an RX queue.

One important note is that DQO descriptors and doorbells are little endian. We
continue to use the existing big endian control plane infrastructure.

The general format of the patch series is:
- Refactor existing code/data structures to be shared by DQO
- Expand admin queues to support DQO device setup
- Expand data structures and device setup to support DQO
- Add logic to setup DQO queues
- Implement datapath

Bailey Forrest (16):
  gve: Update GVE documentation to describe DQO
  gve: Move some static functions to a common file
  gve: gve_rx_copy: Move padding to an argument
  gve: Make gve_rx_slot_page_info.page_offset an absolute offset
  gve: Introduce a new model for device options
  gve: Introduce per netdev `enum gve_queue_format`
  gve: adminq: DQO specific device descriptor logic
  gve: Add support for DQO RX PTYPE map
  gve: Add dqo descriptors
  gve: Add DQO fields for core data structures
  gve: Update adminq commands to support DQO queues
  gve: DQO: Add core netdev features
  gve: DQO: Add ring allocation and initialization
  gve: DQO: Configure interrupts on device up
  gve: DQO: Add TX path
  gve: DQO: Add RX path

 .../device_drivers/ethernet/google/gve.rst    |   53 +-
 drivers/net/ethernet/google/Kconfig           |    2 +-
 drivers/net/ethernet/google/gve/Makefile      |    2 +-
 drivers/net/ethernet/google/gve/gve.h         |  332 +++++-
 drivers/net/ethernet/google/gve/gve_adminq.c  |  334 ++++--
 drivers/net/ethernet/google/gve/gve_adminq.h  |  112 +-
 .../net/ethernet/google/gve/gve_desc_dqo.h    |  256 ++++
 drivers/net/ethernet/google/gve/gve_dqo.h     |   81 ++
 drivers/net/ethernet/google/gve/gve_ethtool.c |   21 +-
 drivers/net/ethernet/google/gve/gve_main.c    |  291 ++++-
 drivers/net/ethernet/google/gve/gve_rx.c      |   54 +-
 drivers/net/ethernet/google/gve/gve_rx_dqo.c  |  763 ++++++++++++
 drivers/net/ethernet/google/gve/gve_tx.c      |   25 +-
 drivers/net/ethernet/google/gve/gve_tx_dqo.c  | 1031 +++++++++++++++++
 drivers/net/ethernet/google/gve/gve_utils.c   |   81 ++
 drivers/net/ethernet/google/gve/gve_utils.h   |   28 +
 16 files changed, 3250 insertions(+), 216 deletions(-)
 create mode 100644 drivers/net/ethernet/google/gve/gve_desc_dqo.h
 create mode 100644 drivers/net/ethernet/google/gve/gve_dqo.h
 create mode 100644 drivers/net/ethernet/google/gve/gve_rx_dqo.c
 create mode 100644 drivers/net/ethernet/google/gve/gve_tx_dqo.c
 create mode 100644 drivers/net/ethernet/google/gve/gve_utils.c
 create mode 100644 drivers/net/ethernet/google/gve/gve_utils.h


base-commit: 35713d9b8f090d7a226e4aaeeb742265cde33c82

Comments

patchwork-bot+netdevbpf@kernel.org June 24, 2021, 7:50 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Thu, 24 Jun 2021 11:06:16 -0700 you wrote:
> DQO is the descriptor format for our next generation virtual NIC. The existing
> descriptor format will be referred to as "GQI" in the patch set.
> 
> One major change with DQO is it uses dual descriptor rings for both TX and RX
> queues.
> 
> The TX path uses a TX queue to send descriptors to HW, and receives packet
> completion events on a TX completion queue.
> 
> [...]

Here is the summary with links:
  - [net-next,01/16] gve: Update GVE documentation to describe DQO
    https://git.kernel.org/netdev/net-next/c/c6a7ed77ee63
  - [net-next,02/16] gve: Move some static functions to a common file
    https://git.kernel.org/netdev/net-next/c/dbdaa6754051
  - [net-next,03/16] gve: gve_rx_copy: Move padding to an argument
    https://git.kernel.org/netdev/net-next/c/35f9b2f43f8e
  - [net-next,04/16] gve: Make gve_rx_slot_page_info.page_offset an absolute offset
    https://git.kernel.org/netdev/net-next/c/920fb4519355
  - [net-next,05/16] gve: Introduce a new model for device options
    https://git.kernel.org/netdev/net-next/c/8a39d3e0dadf
  - [net-next,06/16] gve: Introduce per netdev `enum gve_queue_format`
    https://git.kernel.org/netdev/net-next/c/a5886ef4f4bf
  - [net-next,07/16] gve: adminq: DQO specific device descriptor logic
    https://git.kernel.org/netdev/net-next/c/5ca2265eefc0
  - [net-next,08/16] gve: Add support for DQO RX PTYPE map
    https://git.kernel.org/netdev/net-next/c/c4b87ac87635
  - [net-next,09/16] gve: Add dqo descriptors
    https://git.kernel.org/netdev/net-next/c/223198183ff1
  - [net-next,10/16] gve: Add DQO fields for core data structures
    https://git.kernel.org/netdev/net-next/c/a4aa1f1e69df
  - [net-next,11/16] gve: Update adminq commands to support DQO queues
    https://git.kernel.org/netdev/net-next/c/1f6228e459f8
  - [net-next,12/16] gve: DQO: Add core netdev features
    https://git.kernel.org/netdev/net-next/c/5e8c5adf95f8
  - [net-next,13/16] gve: DQO: Add ring allocation and initialization
    https://git.kernel.org/netdev/net-next/c/9c1a59a2f4bc
  - [net-next,14/16] gve: DQO: Configure interrupts on device up
    https://git.kernel.org/netdev/net-next/c/0dcc144a7994
  - [net-next,15/16] gve: DQO: Add TX path
    https://git.kernel.org/netdev/net-next/c/a57e5de476be
  - [net-next,16/16] gve: DQO: Add RX path
    https://git.kernel.org/netdev/net-next/c/9b8dd5e5ea48

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html