Add a driver for Amazon Elastic Network Adapters (ENA)

Bug #1635721 reported by Kamal Mostafa
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Confirmed
Undecided
Kamal Mostafa
Trusty
Fix Released
Undecided
Kamal Mostafa
Xenial
Fix Released
Undecided
Kamal Mostafa
Yakkety
Fix Released
Undecided
Kamal Mostafa

Bug Description

Back-porting this driver to Ubuntu LTS generic kernels would be beneficial.

commit 1738cd3ed342294360d6a74d4e58800004bff854 linux-next
"net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)"

Changed in linux (Ubuntu Trusty):
assignee: nobody → Kamal Mostafa (kamalmostafa)
Changed in linux (Ubuntu Xenial):
assignee: nobody → Kamal Mostafa (kamalmostafa)
Changed in linux (Ubuntu Trusty):
status: New → In Progress
Changed in linux (Ubuntu Xenial):
status: New → In Progress
Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

The following prereq commits are required to support the ENA driver:

(Trusty needs):
286ab72 etherdevice: Use ether_addr_copy to copy an Ethernet address
ff1aa43 PCI/MSI: Add pci_msix_vec_count()
89a0714 kernel.h: define u8, s8, u32, etc. limits

(Trusty and Xenial need):
3f1ac7a net: ethtool: add new ETHTOOL_xLINKSETTINGS API
e52bc7c lib/bitmap.c: conversion routines to/from u32 array

Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

ENA driver (1738cd3ed3) back-port to Trusty:
     - no xmit_more model; always trigger dma engine
     - use old napi_complete API
     - disable future ethtool features: rxfh, copybreak tunables

Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

Back-port branches:

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

Positive smoke test results:

----------------------------------------------------------------
(xenial)
client: x1.32xlarge // ens3: ena 1.0.2 // 4.4.0-45-generic #65
server: x1.32xlarge // ens3: ena 1.0.2 // 4.4.0-45-generic #65
 $ nuttcp -i10 -T50 -N5 ip-172-31-31-135
19697.6875 MB / 10.00 sec = 16523.3420 Mbps
20090.1875 MB / 10.00 sec = 16853.0022 Mbps
20254.2500 MB / 10.00 sec = 16990.5337 Mbps
20138.6250 MB / 10.00 sec = 16893.5149 Mbps
20393.5000 MB / 10.00 sec = 17107.3009 Mbps

100603.2500 MB / 50.01 sec = 16875.3968 Mbps 63 %TX 99 %RX 0.29 msRTT

----------------------------------------------------------------
(trusty)
client: x1.32xlarge // eth0: ena 1.0.2 // 3.13.0-100-generic #147
server: x1.32xlarge // eth0: ena 1.0.2 // 3.13.0-100-generic #147
 $ nuttcp -i10 -T50 -N5 ip-172-31-24-46
24085.1875 MB / 10.00 sec = 20203.9823 Mbps
24586.2500 MB / 10.00 sec = 20624.4145 Mbps
24584.2500 MB / 10.00 sec = 20622.7512 Mbps
24581.3125 MB / 10.00 sec = 20620.3345 Mbps
24586.9375 MB / 10.00 sec = 20625.0139 Mbps

122436.6875 MB / 50.00 sec = 20539.8814 Mbps 68 %TX 62 %RX 0.17 msRTT

Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Trusty):
status: In Progress → Fix Committed
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 4.4.0-47.68

---------------
linux (4.4.0-47.68) xenial; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1636941

  * Add a driver for Amazon Elastic Network Adapters (ENA) (LP: #1635721)
    - lib/bitmap.c: conversion routines to/from u32 array
    - net: ethtool: add new ETHTOOL_xLINKSETTINGS API
    - net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)
    - [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver)

  * unexpectedly large memory usage of mounted snaps (LP: #1636847)
    - [Config] switch squashfs to single threaded decode

 -- Kamal Mostafa <email address hidden> Wed, 26 Oct 2016 10:47:55 -0700

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Luis Henriques (henrix) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-trusty' to 'verification-done-trusty'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-trusty
Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

Confirmed ENA driver present and working on ENA-enabled EC2 instances in:
  xenial 4.4.0-47.68
  trusty 3.13.0-102.149

tags: added: verification-done-trusty verification-done-xenial
removed: verification-needed-trusty
Changed in linux (Ubuntu Zesty):
status: Fix Committed → In Progress
status: In Progress → New
Changed in linux (Ubuntu Yakkety):
assignee: nobody → Kamal Mostafa (kamalmostafa)
Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1635721

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu Yakkety):
status: New → Incomplete
Changed in linux (Ubuntu Yakkety):
status: Incomplete → Confirmed
Changed in linux (Ubuntu Zesty):
status: Incomplete → Confirmed
Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

Zesty already carries this (landed in mainline ~v4.9-rc1)

no longer affects: linux (Ubuntu Zesty)
Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

For Yakkety:

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

Positive smoke test results:

----------------------------------------------------------------

client: x1.32xlarge // ens3: ena 1.0.2 // 4.8.0-29-generic #31
server: x1.32xlarge // ens3: ena 1.0.2 // 4.8.0-29-generic #31
 $ nuttcp -i10 -T50 -N5 ip-172-31-5-17
21191.6875 MB / 10.00 sec = 17776.4049 Mbps
21345.8125 MB / 10.00 sec = 17906.3104 Mbps
20835.5625 MB / 10.00 sec = 17478.1961 Mbps
20820.0000 MB / 10.00 sec = 17464.7954 Mbps
20574.9375 MB / 10.00 sec = 17259.8054 Mbps

104797.2490 MB / 50.01 sec = 17578.5226 Mbps 45 %TX 99 %RX 0.23 msRTT

Luis Henriques (henrix)
Changed in linux (Ubuntu Yakkety):
status: Confirmed → Fix Committed
Revision history for this message
Steve Langasek (vorlon) wrote : Update Released

The verification of the Stable Release Update for linux-lts-trusty has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.13.0-103.150

---------------
linux (3.13.0-103.150) trusty; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1644489

  * Possible regression on 3.13.0-102.149~precise1 x86_64 (gce) (LP: #1644302)
    - SAUCE: apparmor: delete extra variable dev_path

linux (3.13.0-102.149) trusty; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1640581

  * lxc-attach to malicious container allows access to host (LP: #1639345)
    - Revert "UBUNTU: ptrace: being capable wrt a process requires mapped
      uids/gids"
    - (upstream) mm: Add a user_ns owner to mm_struct and fix ptrace permission
      checks

  * Syntax error extra parenthesis linux-headers-3.13.0-100/Makefile
    (LP: #1636625)
    - Makefile: fix extra parenthesis typo when CC_STACKPROTECTOR_REGULAR is
      enabled

  * Add a driver for Amazon Elastic Network Adapters (ENA) (LP: #1635721)
    - lib/bitmap.c: conversion routines to/from u32 array
    - kernel.h: define u8, s8, u32, etc. limits
    - net: ethtool: add new ETHTOOL_xLINKSETTINGS API
    - PCI/MSI: Add pci_msix_vec_count()
    - etherdevice: Use ether_addr_copy to copy an Ethernet address
    - net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)
    - [config] enable CONFIG_ENA_ETHERNET=m (Amazon ENA driver)

  * CVE-2016-8658
    - brcmfmac: avoid potential stack overflow in brcmf_cfg80211_start_ap()

  * CVE-2016-7425
    - scsi: arcmsr: Buffer overflow in arcmsr_iop_message_xfer()

  * srcname from mount rule corrupted under load (LP: #1634753)
    - SAUCE: apparmor: fix sleep in critical section

  * ghash-clmulni-intel module fails to load (LP: #1633058)
    - crypto: ghash-clmulni - Fix load failure
    - crypto: cryptd - Assign statesize properly

 -- Luis Henriques <email address hidden> Thu, 24 Nov 2016 09:56:54 +0000

Changed in linux (Ubuntu Trusty):
status: Fix Committed → Fix Released
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-yakkety' to 'verification-done-yakkety'. If the problem still exists, change the tag 'verification-needed-yakkety' to 'verification-failed-yakkety'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-yakkety
Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

Confirmed ENA driver present and working on ENA-enabled EC2 instances in:
  yakkety 4.8.0-31.33

tags: added: verification-done-yakkety
removed: verification-needed-yakkety
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (25.5 KiB)

This bug was fixed in the package linux - 4.8.0-32.34

---------------
linux (4.8.0-32.34) yakkety; urgency=low

  [ Thadeu Lima de Souza Cascardo ]

  * Release Tracking Bug
    - LP: #1649358

  * Vulnerability picked up from 4.8.10 stable kernel (LP: #1648662)
    - net: handle no dst on skb in icmp6_send

linux (4.8.0-31.33) yakkety; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1648034

  * Update hio driver to 2.1.0.28 (LP: #1646643)
    - SAUCE: hio: update to Huawei ES3000_V2 (2.1.0.28)

  * Yakkety update to v4.8.11 stable release (LP: #1645421)
    - x86/cpu/AMD: Fix cpu_llc_id for AMD Fam17h systems
    - KVM: x86: fix missed SRCU usage in kvm_lapic_set_vapic_addr
    - KVM: Disable irq while unregistering user notifier
    - arm64: KVM: pmu: Fix AArch32 cycle counter access
    - KVM: arm64: Fix the issues when guest PMCCFILTR is configured
    - ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records
    - ftrace: Add more checks for FTRACE_FL_DISABLED in processing ip records
    - genirq: Use irq type from irqdata instead of irqdesc
    - fuse: fix fuse_write_end() if zero bytes were copied
    - IB/rdmavt: rdmavt can handle non aligned page maps
    - IB/hfi1: Fix rnr_timer addition
    - mfd: intel-lpss: Do not put device in reset state on suspend
    - mfd: stmpe: Fix RESET regression on STMPE2401
    - can: bcm: fix warning in bcm_connect/proc_register
    - gpio: do not double-check direction on sleeping chips
    - ALSA: usb-audio: Fix use-after-free of usb_device at disconnect
    - ALSA: hda - add a new condition to check if it is thinkpad
    - ALSA: hda - Fix mic regression by ASRock mobo fixup
    - i2c: mux: fix up dependencies
    - i2c: i2c-mux-pca954x: fix deselect enabling for device-tree
    - Disable the __builtin_return_address() warning globally after all
    - kbuild: add -fno-PIE
    - scripts/has-stack-protector: add -fno-PIE
    - x86/kexec: add -fno-PIE
    - kbuild: Steal gcc's pie from the very beginning
    - ext4: sanity check the block and cluster size at mount time
    - ARM: dts: imx53-qsb: Fix regulator constraints
    - crypto: caam - do not register AES-XTS mode on LP units
    - powerpc/64: Fix setting of AIL in hypervisor mode
    - drm/amdgpu: Attach exclusive fence to prime exported bo's. (v5)
    - drm/i915: Refresh that status of MST capable connectors in ->detect()
    - drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no AUX ch
      specified in the VBT
    - virtio-net: drop legacy features in virtio 1 mode
    - clk: mmp: pxa910: fix return value check in pxa910_clk_init()
    - clk: mmp: pxa168: fix return value check in pxa168_clk_init()
    - clk: mmp: mmp2: fix return value check in mmp2_clk_init()
    - clk: imx: fix integer overflow in AV PLL round rate
    - rtc: omap: Fix selecting external osc
    - iwlwifi: pcie: fix SPLC structure parsing
    - iwlwifi: pcie: mark command queue lock with separate lockdep class
    - iwlwifi: mvm: fix netdetect starting/stopping for unified images
    - iwlwifi: mvm: fix d3_test with unified D0/D3 images
    - iwlwifi: mvm: wake the wait queue when the RX sync counter is zero
    - mfd: cor...

Changed in linux (Ubuntu Yakkety):
status: Fix Committed → Fix Released
Revision history for this message
Mathias Bogaert (mathias-bogaert) wrote :

Would it be possible to also enable the enaSupport AWS AMI image attribute?

Revision history for this message
Kamal Mostafa (kamalmostafa) wrote :

@Mathias-

We're working towards getting full ENA support enabled as part of the process of switching the Ubuntu AMI's to a custom Ubuntu kernel for AWS, some time in the near future. In the meantime, you are welcome to use our in-test development AMI's which already include that custom kernel and do have enaSupport enabled. You can find those AMI's by searching the AWS Community AMI's for "ubuntu/images-testing-dev/hvm 201703" (or a more recent YYYYMM).

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.