[SRU][PULL][jammy:linux-gke][v2] Intel IDPF support

Joseph Salisbury joseph.salisbury at canonical.com
Wed Feb 21 15:28:13 UTC 2024


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

[Impact]

* Request from Google to include new Intel IDPF driver support

[Fixes]

* All clean cherry picks from jammy:linux-gcp:
a7355680c7b6 UBUNTU: [Config] gcp: Adding support for IDPF driver
b4c0df75ac2c u64_stats: Introduce u64_stats_set()
faaf5b38fd8d virtchnl: add virtchnl version 2 ops
5fccd521e1d6 idpf: add SRIOV support and other ndo_ops
0001af6c3a66 idpf: add ethtool callbacks
489727b5f0fa idpf: add singleq start_xmit and napi poll
1bd0c96cc215 idpf: add RX splitq napi poll support
ed53c3bcf921 idpf: add TX splitq napi poll support
6d83d684e2f7 idpf: add splitq start_xmit
a21d1273c23c idpf: initialize interrupts and enable vport
1a49ee57f741 idpf: configure resources for RX queues
729cbfb98f5d idpf: configure resources for TX queues
aa98bd53c405 idpf: add ptypes and MAC filter support
8c22112c4087 idpf: add create vport and netdev configuration
9aad37e70a94 idpf: add core init and interrupt request
8e8fc1ae7834 idpf: add controlq init and reset checks
86637c304c36 idpf: add module register and probe functionality


[Test Case]

* Compile tested
* Boot tested
* Tested internally and by Google using neper (https://github.com/google/neper)
* Networking is functional and throughput is as expected

[Where things could go wrong]

* Low chance of regression, changes have been upstream since 6.6 kernel
* Bulk of changes in IDPF driver
* Other changes to network drivers largely adding #include directives

[Other Info]

* SF #00368902

--------

The following changes since commit fc71047f095553673f0d415e23025316cfe19072:

  UBUNTU: Ubuntu-gke-5.15.0-1051.56 (2024-02-14 11:12:11 +1030)

are available in the Git repository at:

  https://git.launchpad.net/~jsalisbury/ubuntu/+source/linux-gke/+git/jammy-idpf master-next

for you to fetch changes up to ef30ca44d775bbf00aaf6ad350d41c48cafbc920:

  UBUNTU: [Config] gcp: Adding support for IDPF driver (2024-02-20 13:14:11 -0500)

----------------------------------------------------------------
Ahmed S. Darwish (1):
      u64_stats: Introduce u64_stats_set()

Alan Brady (4):
      idpf: configure resources for TX queues
      idpf: configure resources for RX queues
      idpf: add RX splitq napi poll support
      idpf: add ethtool callbacks

Joseph Salisbury (1):
      UBUNTU: [Config] gcp: Adding support for IDPF driver

Joshua Hay (5):
      idpf: add controlq init and reset checks
      idpf: add splitq start_xmit
      idpf: add TX splitq napi poll support
      idpf: add singleq start_xmit and napi poll
      idpf: add SRIOV support and other ndo_ops

Pavan Kumar Linga (5):
      idpf: add core init and interrupt request
      idpf: add create vport and netdev configuration
      idpf: add ptypes and MAC filter support
      idpf: initialize interrupts and enable vport
      virtchnl: add virtchnl version 2 ops

Phani Burra (1):
      idpf: add module register and probe functionality

 .../networking/device_drivers/ethernet/index.rst   |    1 +
 .../device_drivers/ethernet/intel/idpf.rst         |  160 +
 debian.gke/config/annotations                      |    3 +
 drivers/net/ethernet/intel/Kconfig                 |   12 +
 drivers/net/ethernet/intel/Makefile                |    1 +
 drivers/net/ethernet/intel/idpf/Makefile           |   18 +
 drivers/net/ethernet/intel/idpf/idpf.h             |  968 +++++
 drivers/net/ethernet/intel/idpf/idpf_controlq.c    |  621 +++
 drivers/net/ethernet/intel/idpf/idpf_controlq.h    |  130 +
 .../net/ethernet/intel/idpf/idpf_controlq_api.h    |  169 +
 .../net/ethernet/intel/idpf/idpf_controlq_setup.c  |  171 +
 drivers/net/ethernet/intel/idpf/idpf_dev.c         |  165 +
 drivers/net/ethernet/intel/idpf/idpf_devids.h      |   10 +
 drivers/net/ethernet/intel/idpf/idpf_ethtool.c     | 1347 ++++++
 drivers/net/ethernet/intel/idpf/idpf_lan_pf_regs.h |  124 +
 drivers/net/ethernet/intel/idpf/idpf_lan_txrx.h    |  293 ++
 drivers/net/ethernet/intel/idpf/idpf_lan_vf_regs.h |  128 +
 drivers/net/ethernet/intel/idpf/idpf_lib.c         | 2379 +++++++++++
 drivers/net/ethernet/intel/idpf/idpf_main.c        |  279 ++
 drivers/net/ethernet/intel/idpf/idpf_mem.h         |   20 +
 .../net/ethernet/intel/idpf/idpf_singleq_txrx.c    | 1191 ++++++
 drivers/net/ethernet/intel/idpf/idpf_txrx.c        | 4312 ++++++++++++++++++++
 drivers/net/ethernet/intel/idpf/idpf_txrx.h        | 1022 +++++
 drivers/net/ethernet/intel/idpf/idpf_vf_dev.c      |  163 +
 drivers/net/ethernet/intel/idpf/idpf_virtchnl.c    | 3791 +++++++++++++++++
 drivers/net/ethernet/intel/idpf/virtchnl2.h        | 1273 ++++++
 .../net/ethernet/intel/idpf/virtchnl2_lan_desc.h   |  451 ++
 include/linux/u64_stats_sync.h                     |   10 +
 28 files changed, 19212 insertions(+)
 create mode 100644 Documentation/networking/device_drivers/ethernet/intel/idpf.rst
 create mode 100644 drivers/net/ethernet/intel/idpf/Makefile
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_controlq.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_controlq.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_controlq_api.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_dev.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_devids.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_ethtool.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_lan_pf_regs.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_lan_txrx.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_lan_vf_regs.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_lib.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_main.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_mem.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_singleq_txrx.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_txrx.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_txrx.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_vf_dev.c
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
 create mode 100644 drivers/net/ethernet/intel/idpf/virtchnl2.h
 create mode 100644 drivers/net/ethernet/intel/idpf/virtchnl2_lan_desc.h



More information about the kernel-team mailing list