[SRU][PULL][jammy:linux-gcp] gVNIC DQO-QPL feature

John Cabaj john.cabaj at canonical.com
Fri Jan 12 19:53:49 UTC 2024


BugLink: https://bugs.launchpad.net/bugs/2040522

[Impact]

* Google requested inclusion of gVNIC DQO-QPL feature.

[Fix]

* 22 clean cherry-picks, 8 backports from upstream

[Test Case]

* Compile tested
* Boot tested
* Tested by Google

[Where things could go wrong]

* Low chance of regression. Almost all changes isolated to Google Ethernet drivers.
* All changes upstream as of v6.6.

[Other Info]

* SF #00366697

--------

The following changes since commit 04c19cd6345a4c14df5e64d6a4523d52342321dc:

  UBUNTU: Ubuntu-gcp-5.15.0-1048.56 (2023-11-18 14:50:34 -0300)

are available in the Git repository at:

  https://git.launchpad.net/~john-cabaj/ubuntu/+source/linux-gcp/+git/jammy-gcp dqo-qpl_feature

for you to fetch changes up to 1c11c5026b48bf6fa999a66e4554300e97d0256b:

  gro: add ability to control gro max packet size (2024-01-12 12:43:44 -0600)

----------------------------------------------------------------
Coco Li (3):
      gve: Support IPv6 Big TCP on DQ
      IPv6/GRO: generic helper to remove temporary HBH/jumbo header in driver
      gro: add ability to control gro max packet size

Colin Ian King (1):
      gve: Fix spelling mistake "droping" -> "dropping"

Eric Dumazet (4):
      gve: fix frag_list chaining
      net: annotate accesses to dev->gso_max_segs
      ipv6: add struct hop_jumbo_hdr definition
      ipv6/gso: remove temporary HBH/jumbo header

Haiyue Wang (1):
      gve: enhance no queue page list detection

Jakub Kicinski (2):
      eth: add missing xdp.h includes in drivers
      net: don't allow user space to lift the device limits

Jeroen de Borst (2):
      gve: Adding a new AdminQ command to verify driver
      gve: Handle alternate miss completions

Jesper Dangaard Brouer (1):
      gve: trivial spell fix Recive to Receive

Jilin Yuan (1):
      google/gve:fix repeated words in comments

Julia Lawall (1):
      gve: use vmalloc_array and vcalloc

Junfeng Guo (1):
      gve: unify driver name usage

Praveen Kaligineedi (6):
      gve: Fix gve interrupt names
      gve: XDP support GQI-QPL: helper function changes
      gve: Changes to add new TX queues
      gve: Add XDP DROP and TX support for GQI-QPL format
      gve: Add XDP REDIRECT support for GQI-QPL format
      gve: Add AF_XDP zero-copy support for GQI-QPL format

Rushil Gupta (4):
      gve: Control path for DQO-QPL
      gve: Tx path for DQO-QPL
      gve: RX path for DQO-QPL
      gve: update gve.rst

Shailend Chand (2):
      gve: Reduce alloc and copy costs in the GQ rx path
      gve: Unify duplicate GQ min pkt desc size constants

Yang Yingliang (1):
      gve: Fix error return code in gve_prefill_rx_pages()

 Documentation/networking/device_drivers/ethernet/google/gve.rst |   9 ++
 drivers/net/bonding/bond_main.c                                 |   3 +-
 drivers/net/ethernet/amazon/ena/ena_netdev.h                    |   1 +
 drivers/net/ethernet/engleder/tsnep.h                           | 260 ++++++++++++++++++++++++++++++++++++++
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h                |   1 +
 drivers/net/ethernet/freescale/enetc/enetc.h                    |   1 +
 drivers/net/ethernet/freescale/fec.h                            |   1 +
 drivers/net/ethernet/freescale/fec_main.c                       |   2 +-
 drivers/net/ethernet/fungible/funeth/funeth_txrx.h              | 266 +++++++++++++++++++++++++++++++++++++++
 drivers/net/ethernet/google/gve/gve.h                           | 247 ++++++++++++++++++++++++++++++++----
 drivers/net/ethernet/google/gve/gve_adminq.c                    | 118 +++++++++++++++---
 drivers/net/ethernet/google/gve/gve_adminq.h                    |  65 +++++++++-
 drivers/net/ethernet/google/gve/gve_desc.h                      |   4 +-
 drivers/net/ethernet/google/gve/gve_desc_dqo.h                  |   5 +
 drivers/net/ethernet/google/gve/gve_ethtool.c                   |  95 ++++++++++----
 drivers/net/ethernet/google/gve/gve_main.c                      | 804 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 drivers/net/ethernet/google/gve/gve_rx.c                        | 685 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
 drivers/net/ethernet/google/gve/gve_rx_dqo.c                    | 133 +++++++++++++++++---
 drivers/net/ethernet/google/gve/gve_tx.c                        | 300 +++++++++++++++++++++++++++++++++++++++-----
 drivers/net/ethernet/google/gve/gve_tx_dqo.c                    | 424 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
 drivers/net/ethernet/google/gve/gve_utils.c                     |  34 ++---
 drivers/net/ethernet/google/gve/gve_utils.h                     |   3 +-
 drivers/net/ethernet/intel/igc/igc.h                            |   1 +
 drivers/net/ethernet/marvell/mv643xx_eth.c                      |   2 +-
 drivers/net/ethernet/marvell/mvneta.c                           |   2 +-
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c                 |   2 +-
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c            |   2 +-
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c            |   2 +-
 drivers/net/ethernet/microchip/lan966x/lan966x_main.h           | 788 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/net/ethernet/microsoft/mana/mana.h                      |   2 +
 drivers/net/ethernet/microsoft/mana/mana_en.c                   |   1 +
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c             |   2 +-
 drivers/net/ethernet/netronome/nfp/nfp_net_repr.c               |   6 +-
 drivers/net/ethernet/realtek/r8169_main.c                       |   8 +-
 drivers/net/ethernet/sfc/ef100_nic.c                            |   4 +-
 drivers/net/ethernet/sfc/efx.c                                  |   2 +-
 drivers/net/ethernet/sfc/falcon/efx.c                           |   2 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac.h                    |   1 +
 drivers/net/ethernet/ti/cpsw_priv.h                             |   1 +
 drivers/net/hyperv/hyperv_net.h                                 |   1 +
 drivers/net/ipvlan/ipvlan_main.c                                |   8 +-
 drivers/net/macvlan.c                                           |   8 +-
 drivers/net/tap.c                                               |   1 +
 drivers/net/veth.c                                              |   4 +-
 drivers/net/vxlan/vxlan_core.c                                  |   4 +-
 include/linux/netdevice.h                                       |  28 +++++
 include/net/ipv6.h                                              |  77 ++++++++++++
 include/uapi/linux/if_link.h                                    |   1 +
 net/8021q/vlan.c                                                |   4 +-
 net/8021q/vlan_dev.c                                            |   4 +-
 net/bridge/br_if.c                                              |   4 +-
 net/core/dev.c                                                  |  38 +++++-
 net/core/gro.c                                                  | 770 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 net/core/rtnetlink.c                                            |  30 ++++-
 net/core/sock.c                                                 |   3 +-
 net/ipv6/ip6_offload.c                                          |   5 +-
 tools/include/uapi/linux/if_link.h                              |   1 +
 57 files changed, 4699 insertions(+), 581 deletions(-)
 create mode 100644 drivers/net/ethernet/engleder/tsnep.h
 create mode 100644 drivers/net/ethernet/fungible/funeth/funeth_txrx.h
 create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_main.h
 create mode 100644 net/core/gro.c



More information about the kernel-team mailing list