From fe29659fb13b891e50d72831d05bea9f8d329c8a Mon Sep 17 00:00:00 2001 From: Sameeh Jubran Date: Sun, 5 Apr 2020 16:19:04 +0300 Subject: [PATCH] linux/ena update ENA linux driver to version 2.2.5 **New Features** * Enable dynamic interrupt moderation on ARM64 Signed-off-by: Shay Agroskin Signed-off-by: Sameeh Jubran --- kernel/linux/ena/RELEASENOTES.md | 3 +++ kernel/linux/ena/ena_netdev.c | 8 ++++++++ kernel/linux/ena/ena_netdev.h | 2 +- kernel/linux/rpm/Makefile | 2 +- kernel/linux/rpm/README-rpm.txt | 12 ++++++------ kernel/linux/rpm/ena.spec | 7 +++++-- 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/kernel/linux/ena/RELEASENOTES.md b/kernel/linux/ena/RELEASENOTES.md index 6a0f4455..77e757d4 100644 --- a/kernel/linux/ena/RELEASENOTES.md +++ b/kernel/linux/ena/RELEASENOTES.md @@ -39,6 +39,9 @@ The driver was verified on the following distributions: SUSE Linux Enterprise Server 12 SP2 SUSE Linux Enterprise Server 12 SP3 +## r2.2.5 release notes +**New Features** +* Enable dynamic interrupt moderation on ARM64 ## r2.2.4 release notes **Bug Fixes** diff --git a/kernel/linux/ena/ena_netdev.c b/kernel/linux/ena/ena_netdev.c index 12fea6c8..0200c7f5 100644 --- a/kernel/linux/ena/ena_netdev.c +++ b/kernel/linux/ena/ena_netdev.c @@ -2770,6 +2770,14 @@ static int ena_up(struct ena_adapter *adapter) */ ena_init_napi_in_range(adapter, 0, io_queue_count); +#ifdef CONFIG_ARM64 + /* enable DIM by default on ARM machines, also needs to happen + * before enabling IRQs since DIM is ran from napi routine + */ + if (ena_com_interrupt_moderation_supported(adapter->ena_dev)) + ena_com_enable_adaptive_moderation(adapter->ena_dev); +#endif + rc = ena_request_io_irq(adapter); if (rc) goto err_req_irq; diff --git a/kernel/linux/ena/ena_netdev.h b/kernel/linux/ena/ena_netdev.h index 1e493078..8d11a979 100644 --- a/kernel/linux/ena/ena_netdev.h +++ b/kernel/linux/ena/ena_netdev.h @@ -53,7 +53,7 @@ #define DRV_MODULE_GEN_MAJOR 2 #define DRV_MODULE_GEN_MINOR 2 -#define DRV_MODULE_GEN_SUBMINOR 4 +#define DRV_MODULE_GEN_SUBMINOR 5 #define DRV_MODULE_NAME "ena" #ifndef DRV_MODULE_GENERATION diff --git a/kernel/linux/rpm/Makefile b/kernel/linux/rpm/Makefile index fb7812bc..ae65a51d 100644 --- a/kernel/linux/rpm/Makefile +++ b/kernel/linux/rpm/Makefile @@ -3,7 +3,7 @@ # Author: Cristian Gafton NAME = ena -VERSION = 2.2.4 +VERSION = 2.2.5 TOPDIR := $(shell git rev-parse --show-toplevel) diff --git a/kernel/linux/rpm/README-rpm.txt b/kernel/linux/rpm/README-rpm.txt index 07fbee5c..e737d3d3 100644 --- a/kernel/linux/rpm/README-rpm.txt +++ b/kernel/linux/rpm/README-rpm.txt @@ -32,7 +32,7 @@ Once the pre-requisites have been installed, you can simply issue a "make" in this directory to build the kmod src.rpm package: bash$ make -cd .. && git archive --format=tar --prefix=ena-2.2.4/ -o rpm/ena-2.2.4.tar ena_linux_2.2.4 +cd .. && git archive --format=tar --prefix=ena-2.2.5/ -o rpm/ena-2.2.5.tar ena_linux_2.2.5 rpmbuild -bs \ --define '_topdir %(pwd)' --define '_ntopdir %(pwd)' \ --define '_builddir %{_ntopdir}' \ @@ -41,7 +41,7 @@ rpmbuild -bs \ --define '_rpmdir %{_ntopdir}' \ --define '_srcrpmdir %{_ntopdir}' \ ena.spec -Wrote: /home/ec2-user/amzn-drivers/rpm/ena-2.2.4-1.el7.3.src.rpm +Wrote: /home/ec2-user/amzn-drivers/rpm/ena-2.2.5-1.el7.3.src.rpm bash$ _ @@ -50,10 +50,10 @@ COMPILING AND INSTALLING Once the src.rpm has been created, you can build binary packages for the installed kernel-devel and kernel-headers environments: -bash$ rpmbuild --rebuild ena-2.2.4-1.el7.3.src.rpm +bash$ rpmbuild --rebuild ena-2.2.5-1.el7.3.src.rpm [....] -Wrote: /home/ec2-user/rpmbuild/RPMS/x86_64/kmod-ena-2.2.4-1.el7.3.x86_64.rpm -Wrote: /home/ec2-user/rpmbuild/RPMS/x86_64/ena-debuginfo-2.2.4-1.el7.3.x86_64.rpm +Wrote: /home/ec2-user/rpmbuild/RPMS/x86_64/kmod-ena-2.2.5-1.el7.3.x86_64.rpm +Wrote: /home/ec2-user/rpmbuild/RPMS/x86_64/ena-debuginfo-2.2.5-1.el7.3.x86_64.rpm [...] bash$ _ @@ -61,5 +61,5 @@ Now you should be able to install/deploy the resulting binary rpm packages using your preferred rpm install too. For example, using yum: bash$ sudo yum -y localinstall -/home/ec2-user/rpmbuild/RPMS/x86_64/kmod-ena-2.2.4-1.el7.3.x86_64.rpm +/home/ec2-user/rpmbuild/RPMS/x86_64/kmod-ena-2.2.5-1.el7.3.x86_64.rpm diff --git a/kernel/linux/rpm/ena.spec b/kernel/linux/rpm/ena.spec index 620b637f..962534e5 100644 --- a/kernel/linux/rpm/ena.spec +++ b/kernel/linux/rpm/ena.spec @@ -1,5 +1,5 @@ %define kmod_name ena -%define kmod_driver_version 2.2.4 +%define kmod_driver_version 2.2.5 %define kmod_rpm_release 1 %define kmod_git_hash 3ac3e0bf079b2c0468f759f2213541e214a6dd77 %define kmod_kbuild_dir kernel/linux/ena @@ -22,7 +22,7 @@ Source7: preamble Name: %{kmod_name} Version: %{kmod_driver_version} -Release: %{kmod_rpm_release}%{?dist}.20 +Release: %{kmod_rpm_release}%{?dist}.21 Summary: %{kmod_name} kernel module Group: System/Kernel @@ -99,6 +99,9 @@ install -m 644 -D source/%{kmod_kbuild_dir}/RELEASENOTES.md $RPM_BUILD_ROOT/usr/ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Mar 19 2020 Sameeh Jubran sameehj@amazon.com - 2.2.5-1.21 +- Update ENA driver to version 2.2.5 + * Thu Mar 19 2020 Sameeh Jubran sameehj@amazon.com - 2.2.4-1.20 - Update ENA driver to version 2.2.4