mbox

[SRU,Xenial/Trusty] Amazon ENA driver

Message ID 20161021214222.GA30066@whence.com
State New
Headers show

Pull-request

git://git.launchpad.net/~kamalmostafa/ubuntu/+source/linux/+git/xenial ena-xenial

Message

Kamal Mostafa Oct. 21, 2016, 9:42 p.m. UTC
See attached pull requests for Xenial and Trusty master-next.

BugLink: http://bugs.launchpad.net/bugs/1635721

Amazon Elastic Network Adapters (ENA) driver from linux-next backported
to xenial and trusty -generic, along with a handful of supporting cherry
picks and trivial backports from upstream.

I've tested these on ENA-enabled[0] Amazon EC2 instances; positive test
results in the bug.  Note though that actually enabling ENA support on
an EC2 instance requires the use of a newer awscli package[1] than
Ubuntu supplies (a userspace issue to be addressed in the near future).

All-new driver implies low risk of regression.

 -Kamal

[0] http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html

[1] https://github.com/aws/aws-cli/archive/1.10.59.tar.gz for
    'aws ec2 modify-instance-attribute --ena-support'
The following changes since commit dca4a6382893dfa2e5420b238e90994e867edded:

  ACPI / video: skip evaluating _DOD when it does not exist (2016-10-21 14:40:13 -0500)

are available in the git repository at:

  git://git.launchpad.net/~kamalmostafa/ubuntu/+source/linux/+git/xenial ena-xenial

for you to fetch changes up to 7c78082bcdc5e9e7163344afcf4f86c8797d6be9:

  UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver) (2016-10-21 13:51:09 -0700)

----------------------------------------------------------------
David Decotigny (2):
      lib/bitmap.c: conversion routines to/from u32 array
      net: ethtool: add new ETHTOOL_xLINKSETTINGS API

Kamal Mostafa (1):
      UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver)

Netanel Belgazal (1):
      net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)

 Documentation/networking/00-INDEX                 |    2 +
 MAINTAINERS                                       |    9 +
 debian.master/config/config.common.ubuntu         |    2 +
 debian.master/control.d/generic.inclusion-list    |    1 +
 drivers/net/ethernet/Kconfig                      |    1 +
 drivers/net/ethernet/Makefile                     |    1 +
 drivers/net/ethernet/amazon/Kconfig               |   27 +
 drivers/net/ethernet/amazon/Makefile              |    5 +
 drivers/net/ethernet/amazon/ena/Makefile          |    7 +
 drivers/net/ethernet/amazon/ena/ena_admin_defs.h  |  973 ++++++
 drivers/net/ethernet/amazon/ena/ena_com.c         | 2666 +++++++++++++++++
 drivers/net/ethernet/amazon/ena/ena_com.h         | 1038 +++++++
 drivers/net/ethernet/amazon/ena/ena_common_defs.h |   48 +
 drivers/net/ethernet/amazon/ena/ena_eth_com.c     |  501 ++++
 drivers/net/ethernet/amazon/ena/ena_eth_com.h     |  160 +
 drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h |  416 +++
 drivers/net/ethernet/amazon/ena/ena_ethtool.c     |  895 ++++++
 drivers/net/ethernet/amazon/ena/ena_netdev.c      | 3280 +++++++++++++++++++++
 drivers/net/ethernet/amazon/ena/ena_netdev.h      |  324 ++
 drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h  |   67 +
 drivers/net/ethernet/amazon/ena/ena_regs_defs.h   |  133 +
 include/linux/bitmap.h                            |   10 +
 include/linux/ethtool.h                           |   92 +-
 include/uapi/linux/ethtool.h                      |  322 +-
 lib/bitmap.c                                      |   89 +
 net/core/ethtool.c                                |  453 ++-
 26 files changed, 11441 insertions(+), 81 deletions(-)
 create mode 100644 drivers/net/ethernet/amazon/Kconfig
 create mode 100644 drivers/net/ethernet/amazon/Makefile
 create mode 100644 drivers/net/ethernet/amazon/ena/Makefile
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_admin_defs.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_common_defs.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_ethtool.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_regs_defs.h
The following changes since commit 4314280dd6d790a5e8c07a0ae8262ac9c72fe26e:

  crypto: cryptd - Assign statesize properly (2016-10-21 14:33:40 -0500)

are available in the git repository at:

  git://git.launchpad.net/~kamalmostafa/ubuntu/+source/linux/+git/trusty ena-trusty

for you to fetch changes up to b098c0337b9b9aa4af3b7abbd7ccc542e705a1be:

  UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver) (2016-10-21 13:48:23 -0700)

----------------------------------------------------------------
Alex Elder (1):
      kernel.h: define u8, s8, u32, etc. limits

Alexander Gordeev (1):
      PCI/MSI: Add pci_msix_vec_count()

David Decotigny (2):
      lib/bitmap.c: conversion routines to/from u32 array
      net: ethtool: add new ETHTOOL_xLINKSETTINGS API

Joe Perches (1):
      etherdevice: Use ether_addr_copy to copy an Ethernet address

Kamal Mostafa (1):
      UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver)

Netanel Belgazal (1):
      net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)

 Documentation/PCI/MSI-HOWTO.txt                   |   13 +
 Documentation/networking/00-INDEX                 |    2 +
 MAINTAINERS                                       |    9 +
 debian.master/config/config.common.ubuntu         |    2 +
 debian.master/control.d/generic.inclusion-list    |    1 +
 drivers/net/ethernet/Kconfig                      |    1 +
 drivers/net/ethernet/Makefile                     |    1 +
 drivers/net/ethernet/amazon/Kconfig               |   27 +
 drivers/net/ethernet/amazon/Makefile              |    5 +
 drivers/net/ethernet/amazon/ena/Makefile          |    7 +
 drivers/net/ethernet/amazon/ena/ena_admin_defs.h  |  973 ++++++
 drivers/net/ethernet/amazon/ena/ena_com.c         | 2666 +++++++++++++++++
 drivers/net/ethernet/amazon/ena/ena_com.h         | 1038 +++++++
 drivers/net/ethernet/amazon/ena/ena_common_defs.h |   48 +
 drivers/net/ethernet/amazon/ena/ena_eth_com.c     |  501 ++++
 drivers/net/ethernet/amazon/ena/ena_eth_com.h     |  160 +
 drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h |  416 +++
 drivers/net/ethernet/amazon/ena/ena_ethtool.c     |  903 ++++++
 drivers/net/ethernet/amazon/ena/ena_netdev.c      | 3286 +++++++++++++++++++++
 drivers/net/ethernet/amazon/ena/ena_netdev.h      |  324 ++
 drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h  |   67 +
 drivers/net/ethernet/amazon/ena/ena_regs_defs.h   |  133 +
 drivers/pci/msi.c                                 |   18 +-
 drivers/pci/pcie/portdrv_core.c                   |    7 +-
 include/linux/bitmap.h                            |   10 +
 include/linux/etherdevice.h                       |   24 +-
 include/linux/ethtool.h                           |   90 +-
 include/linux/kernel.h                            |   13 +
 include/linux/pci.h                               |    6 +-
 include/uapi/linux/ethtool.h                      |  321 +-
 lib/bitmap.c                                      |   89 +
 net/core/ethtool.c                                |  453 ++-
 32 files changed, 11522 insertions(+), 92 deletions(-)
 create mode 100644 drivers/net/ethernet/amazon/Kconfig
 create mode 100644 drivers/net/ethernet/amazon/Makefile
 create mode 100644 drivers/net/ethernet/amazon/ena/Makefile
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_admin_defs.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_common_defs.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_ethtool.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.c
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h
 create mode 100644 drivers/net/ethernet/amazon/ena/ena_regs_defs.h

Comments

Brad Figg Oct. 25, 2016, 4:03 p.m. UTC | #1

Andy Whitcroft Oct. 25, 2016, 4:29 p.m. UTC | #2
On Fri, Oct 21, 2016 at 02:42:23PM -0700, Kamal Mostafa wrote:
> See attached pull requests for Xenial and Trusty master-next.
> 
> BugLink: http://bugs.launchpad.net/bugs/1635721
> 
> Amazon Elastic Network Adapters (ENA) driver from linux-next backported
> to xenial and trusty -generic, along with a handful of supporting cherry
> picks and trivial backports from upstream.
> 
> I've tested these on ENA-enabled[0] Amazon EC2 instances; positive test
> results in the bug.  Note though that actually enabling ENA support on
> an EC2 instance requires the use of a newer awscli package[1] than
> Ubuntu supplies (a userspace issue to be addressed in the near future).
> 
> All-new driver implies low risk of regression.

There is some risk of regression outside of this driver from these
foundational patches.  I would like to see some proper testing on other
hardware, VMs etc.

The foundations seem sensible enough, the ENA driver is BIG uggg.

Acked-by: Andy Whitcroft <apw@canonical.com>

-apw

> 
>  -Kamal
> 
> [0] http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html
> 
> [1] https://github.com/aws/aws-cli/archive/1.10.59.tar.gz for
>     'aws ec2 modify-instance-attribute --ena-support'
> 

> The following changes since commit dca4a6382893dfa2e5420b238e90994e867edded:
> 
>   ACPI / video: skip evaluating _DOD when it does not exist (2016-10-21 14:40:13 -0500)
> 
> are available in the git repository at:
> 
>   git://git.launchpad.net/~kamalmostafa/ubuntu/+source/linux/+git/xenial ena-xenial
> 
> for you to fetch changes up to 7c78082bcdc5e9e7163344afcf4f86c8797d6be9:
> 
>   UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver) (2016-10-21 13:51:09 -0700)
> 
> ----------------------------------------------------------------
> David Decotigny (2):
>       lib/bitmap.c: conversion routines to/from u32 array
>       net: ethtool: add new ETHTOOL_xLINKSETTINGS API
> 
> Kamal Mostafa (1):
>       UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver)
> 
> Netanel Belgazal (1):
>       net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)
> 
>  Documentation/networking/00-INDEX                 |    2 +
>  MAINTAINERS                                       |    9 +
>  debian.master/config/config.common.ubuntu         |    2 +
>  debian.master/control.d/generic.inclusion-list    |    1 +
>  drivers/net/ethernet/Kconfig                      |    1 +
>  drivers/net/ethernet/Makefile                     |    1 +
>  drivers/net/ethernet/amazon/Kconfig               |   27 +
>  drivers/net/ethernet/amazon/Makefile              |    5 +
>  drivers/net/ethernet/amazon/ena/Makefile          |    7 +
>  drivers/net/ethernet/amazon/ena/ena_admin_defs.h  |  973 ++++++
>  drivers/net/ethernet/amazon/ena/ena_com.c         | 2666 +++++++++++++++++
>  drivers/net/ethernet/amazon/ena/ena_com.h         | 1038 +++++++
>  drivers/net/ethernet/amazon/ena/ena_common_defs.h |   48 +
>  drivers/net/ethernet/amazon/ena/ena_eth_com.c     |  501 ++++
>  drivers/net/ethernet/amazon/ena/ena_eth_com.h     |  160 +
>  drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h |  416 +++
>  drivers/net/ethernet/amazon/ena/ena_ethtool.c     |  895 ++++++
>  drivers/net/ethernet/amazon/ena/ena_netdev.c      | 3280 +++++++++++++++++++++
>  drivers/net/ethernet/amazon/ena/ena_netdev.h      |  324 ++
>  drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h  |   67 +
>  drivers/net/ethernet/amazon/ena/ena_regs_defs.h   |  133 +
>  include/linux/bitmap.h                            |   10 +
>  include/linux/ethtool.h                           |   92 +-
>  include/uapi/linux/ethtool.h                      |  322 +-
>  lib/bitmap.c                                      |   89 +
>  net/core/ethtool.c                                |  453 ++-
>  26 files changed, 11441 insertions(+), 81 deletions(-)
>  create mode 100644 drivers/net/ethernet/amazon/Kconfig
>  create mode 100644 drivers/net/ethernet/amazon/Makefile
>  create mode 100644 drivers/net/ethernet/amazon/ena/Makefile
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_admin_defs.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_common_defs.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_ethtool.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_regs_defs.h

> The following changes since commit 4314280dd6d790a5e8c07a0ae8262ac9c72fe26e:
> 
>   crypto: cryptd - Assign statesize properly (2016-10-21 14:33:40 -0500)
> 
> are available in the git repository at:
> 
>   git://git.launchpad.net/~kamalmostafa/ubuntu/+source/linux/+git/trusty ena-trusty
> 
> for you to fetch changes up to b098c0337b9b9aa4af3b7abbd7ccc542e705a1be:
> 
>   UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver) (2016-10-21 13:48:23 -0700)
> 
> ----------------------------------------------------------------
> Alex Elder (1):
>       kernel.h: define u8, s8, u32, etc. limits
> 
> Alexander Gordeev (1):
>       PCI/MSI: Add pci_msix_vec_count()
> 
> David Decotigny (2):
>       lib/bitmap.c: conversion routines to/from u32 array
>       net: ethtool: add new ETHTOOL_xLINKSETTINGS API
> 
> Joe Perches (1):
>       etherdevice: Use ether_addr_copy to copy an Ethernet address
> 
> Kamal Mostafa (1):
>       UBUNTU: [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver)
> 
> Netanel Belgazal (1):
>       net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)
> 
>  Documentation/PCI/MSI-HOWTO.txt                   |   13 +
>  Documentation/networking/00-INDEX                 |    2 +
>  MAINTAINERS                                       |    9 +
>  debian.master/config/config.common.ubuntu         |    2 +
>  debian.master/control.d/generic.inclusion-list    |    1 +
>  drivers/net/ethernet/Kconfig                      |    1 +
>  drivers/net/ethernet/Makefile                     |    1 +
>  drivers/net/ethernet/amazon/Kconfig               |   27 +
>  drivers/net/ethernet/amazon/Makefile              |    5 +
>  drivers/net/ethernet/amazon/ena/Makefile          |    7 +
>  drivers/net/ethernet/amazon/ena/ena_admin_defs.h  |  973 ++++++
>  drivers/net/ethernet/amazon/ena/ena_com.c         | 2666 +++++++++++++++++
>  drivers/net/ethernet/amazon/ena/ena_com.h         | 1038 +++++++
>  drivers/net/ethernet/amazon/ena/ena_common_defs.h |   48 +
>  drivers/net/ethernet/amazon/ena/ena_eth_com.c     |  501 ++++
>  drivers/net/ethernet/amazon/ena/ena_eth_com.h     |  160 +
>  drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h |  416 +++
>  drivers/net/ethernet/amazon/ena/ena_ethtool.c     |  903 ++++++
>  drivers/net/ethernet/amazon/ena/ena_netdev.c      | 3286 +++++++++++++++++++++
>  drivers/net/ethernet/amazon/ena/ena_netdev.h      |  324 ++
>  drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h  |   67 +
>  drivers/net/ethernet/amazon/ena/ena_regs_defs.h   |  133 +
>  drivers/pci/msi.c                                 |   18 +-
>  drivers/pci/pcie/portdrv_core.c                   |    7 +-
>  include/linux/bitmap.h                            |   10 +
>  include/linux/etherdevice.h                       |   24 +-
>  include/linux/ethtool.h                           |   90 +-
>  include/linux/kernel.h                            |   13 +
>  include/linux/pci.h                               |    6 +-
>  include/uapi/linux/ethtool.h                      |  321 +-
>  lib/bitmap.c                                      |   89 +
>  net/core/ethtool.c                                |  453 ++-
>  32 files changed, 11522 insertions(+), 92 deletions(-)
>  create mode 100644 drivers/net/ethernet/amazon/Kconfig
>  create mode 100644 drivers/net/ethernet/amazon/Makefile
>  create mode 100644 drivers/net/ethernet/amazon/ena/Makefile
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_admin_defs.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_com.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_common_defs.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_com.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_ethtool.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.c
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_netdev.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h
>  create mode 100644 drivers/net/ethernet/amazon/ena/ena_regs_defs.h

> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
Kamal Mostafa Oct. 27, 2016, 4:52 p.m. UTC | #3