<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/dev/ena, branch release/11.4.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F11.4.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F11.4.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2020-05-26T22:41:12Z</updated>
<entry>
<title>MF11: r361467-361468,361534</title>
<updated>2020-05-26T22:41:12Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T22:41:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=48d7e753a7b42e782f7578914f383cd9bf2df28f'/>
<id>urn:sha1:48d7e753a7b42e782f7578914f383cd9bf2df28f</id>
<content type='text'>
This patch upgrades the ENA driver to version 2.2.0.

Approved by: re (gjb)
Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>MFC r345371: Prevent double activation of admin interrupt in ENA</title>
<updated>2019-04-04T09:06:56Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2019-04-04T09:06:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=62988bb2323b42f0a2962f7a1291fd4f2cad07d5'/>
<id>urn:sha1:62988bb2323b42f0a2962f7a1291fd4f2cad07d5</id>
<content type='text'>
Submitted by: Michal Krawczyk &lt;mk@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>Merge ENA OOO RX fixes</title>
<updated>2019-02-26T12:26:25Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2019-02-26T12:26:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=c6ce1d18d46839849ce5808063cbf1963f1a1cd8'/>
<id>urn:sha1:c6ce1d18d46839849ce5808063cbf1963f1a1cd8</id>
<content type='text'>
MFC r344150-r344151

Obtained from: Semihalf
Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>MFC: r336114:</title>
<updated>2019-01-24T14:33:15Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2019-01-24T14:33:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=9ec6cc3b0acbb9b41b7a431f97d01897a6b1534e'/>
<id>urn:sha1:9ec6cc3b0acbb9b41b7a431f97d01897a6b1534e</id>
<content type='text'>
Remove stray space from PNP string.

Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>MFC: Second part of Amazon ENA driver fixes and improvements</title>
<updated>2019-01-24T11:31:57Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2019-01-24T11:31:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d51726e4929f3e05ffb81bdf5c17dda0e1b3ed26'/>
<id>urn:sha1:d51726e4929f3e05ffb81bdf5c17dda0e1b3ed26</id>
<content type='text'>
Now, the driver functionality is aligned with the latest version in HEAD.

r343074	Suppress excessive error prints in ENA TX hotpath
r336099 Add PNP info to PCI attachment of ena driver
r333456	Do not pass header length to the ENA controller
r333453	Apply fixes in ena-com
r333450	Upgrade ENA version to v0.8.1
r325593	Fix setting AENQ group in ENA driver
r325592	Allow usage of more RX descriptors than 1 in ENA driver
r325591	Read max MTU from the ENA device
r325590	Fix calculating io queues number in ENA driver
r325589	Rework printouts and logging level in ENA driver
r325587	Fix comparing L3 type with L4 enum on RX hash in ENA driver
r325586	Fix compilation warnings when building ENA driver with gcc compiler
r325585	Fix checking if the DF flag was set in ENA driver
r325584	Cleanup of the ENA driver header file
r325583	Allow partial MSI-x allocation in ENA driver
r325582	Remove deprecated and unused counters in ENA driver
r325581	Cover ENA driver code with branch predictioning statements

Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>MFC: First part of Amazon ENA driver fixes and improvements</title>
<updated>2019-01-24T09:53:41Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2019-01-24T09:53:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=26ce605d58ad28393013d45222ec20bd3f49d5ad'/>
<id>urn:sha1:26ce605d58ad28393013d45222ec20bd3f49d5ad</id>
<content type='text'>
r325580	Refactor style of the ENA driver
r325579	Fix error handling in the ENA driver and lock drbr_free() call
r325578	Destroy admin queue after freeing interrupts in ENA driver
r325577	Split function checking for missing TX completion in ENA driver
r325576	Check for Rx ring state to prevent from stall in the ENA driver
r325574	Add RX OOO completion feature
r325512	Change function validate_tx_req_id() to inline in ENA driver
r325511	Fix ENA driver error handling in attach and basic style fixes
r325239	Rework counting of hardware statistics in ENA driver
r325236	Update ena-com HAL to v1.1.4.3 and update driver accordingly

Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>MFC r333454: Skip setting the MTU for ENA if it is not changing</title>
<updated>2018-09-15T09:03:50Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2018-09-15T09:03:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=9c2cc02b49f98c1333c2ac758a80b454585cb152'/>
<id>urn:sha1:9c2cc02b49f98c1333c2ac758a80b454585cb152</id>
<content type='text'>
Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>Fix up r320731:</title>
<updated>2017-07-06T18:08:38Z</updated>
<author>
<name>Colin Percival</name>
<email>cperciva@FreeBSD.org</email>
</author>
<published>2017-07-06T18:08:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d41f5942a74f249f541598d1977da27d397bb831'/>
<id>urn:sha1:d41f5942a74f249f541598d1977da27d397bb831</id>
<content type='text'>
* Record mergeinfo for merges of r317518, r318647, r319197, r319198,
r319199, r319201, r320625, r320626, r320628, r320629, r320630, r320631,
r320632.
* Merge r319200, which (commit message notwithstanding) seems to have
gotten lost from the r320731 merge.
</content>
</entry>
<entry>
<title>MFC r317518, r318647, r319197, r319198, r319199, r319200, r320625, r320626,</title>
<updated>2017-07-06T11:45:13Z</updated>
<author>
<name>Zbigniew Bodek</name>
<email>zbb@FreeBSD.org</email>
</author>
<published>2017-07-06T11:45:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=f493c1ca371d1ed4a007d3c1fb27f843d73a211a'/>
<id>urn:sha1:f493c1ca371d1ed4a007d3c1fb27f843d73a211a</id>
<content type='text'>
r320628, r319201, r320629, r320630, r320631, r320632.

r317518:
Import Amazon Elastic Network Adapter (ENA) HAL to sys/contrib/

Import from vendor-sys/ena-com/1.1.4.1
SVN rev.: 317516
Version: 1.1.4.1

r318647:
Add support for Amazon Elastic Network Adapter (ENA) NIC

ENA is a networking interface designed to make good use of modern CPU
features and system architectures.

The ENA device exposes a lightweight management interface with a
minimal set of memory mapped registers and extendable command set
through an Admin Queue.

The driver supports a range of ENA devices, is link-speed independent
(i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has
a negotiated and extendable feature set.

Some ENA devices support SR-IOV. This driver is used for both the
SR-IOV Physical Function (PF) and Virtual Function (VF) devices.

ENA devices enable high speed and low overhead network traffic
processing by providing multiple Tx/Rx queue pairs (the maximum number
is advertised by the device via the Admin Queue), a dedicated MSI-X
interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized
data placement.

The ENA driver supports industry standard TCP/IP offload features such
as checksum offload and TCP transmit segmentation offload (TSO).
Receive-side scaling (RSS) is supported for multi-core scaling.

The ENA driver and its corresponding devices implement health
monitoring mechanisms such as watchdog, enabling the device and driver
to recover in a manner transparent to the application, as well as
debug logs.

Some of the ENA devices support a working mode called Low-latency
Queue (LLQ), which saves several more microseconds. This feature will
be implemented for driver in future releases.

r319197:
Add mbuf defragmentation to the ENA driver

When mbuf chain is too long and device cannot handle that number
of segments in DMA transaction, mbuf chain will be defragmented.
Initially, driver was dropping all mbuf chains that were exceeding
supported number of segments.

r319198:
Add locks before each ena_up and ena_down

Lock only ena_up and ena_down calls in ioctl handler, instead of whole
ioctl. Locking ioctl with sx lock that is sleepable, is not allowed in
some cases, e.g. when multicast options are being changed.
Additional locking was added in deatch function to prevent race condition
with ioctl function.

r319199:
Add error handling to the ENA driver if init of the reset task fails

Also, to simplify cleaning routine, reset task is initialized before
allocating statistics and other resources.

r319200:
Move ENA's hw stats updating routine to separate task

Initially, stats were being updated each time OS was requesting for
the first statistic.
To read statistics from hw, condvar was used. cv_timedwait cannot be
called when unsleepable lock is held, and this happens when FreeBSD
is requesting statistic.
Seperate task is reading statistics from NIC each 1 second.

r319201:
Introduce additional locks when releasing TX resources and buffers in ENA

There could be race condition with TX cleaning routine when cleaning mbufs,
when it was called directly from main sending thread (ena_mq_start).

r320625:
Add missing lock upon initialization of the interface

Lack of this lock was causing crash if down was called in
parallel with the initialization routine.

r320626:
Acquire locks before calling drbr_flush()

It is required to hold lock that is associated with buffer ring before
flushing drbr.

r320628:
Unmask all IO irqs after driver state is set as running

If driver left MSI-x handlling routine because interface was put down,
it is not unmasking IRQs, so any requesting interrupt will be awaiting
for unmasking.

On ena_up() routine all interrupts are being unmasked and any awaiting
interrupt will be handled right away.

If handler was executed before driver state was set as running, handling
routine is being ended immediately, leaving IO irqs for given queue
masked.

r320629:
Call drbr_advance() before leaving TX routine

If drbr_advance() is not called before doing cleanup and packet is
already enqueued for sending (tx_info is holding pointer to mbuf), then
mbuf is cleaned both in drbr_flush() and in cleanup routine, when all
mbufs hold by tx_buffer_info are being released.

This causes panic, because mbuf is released twice.

r320630:
Remove RX mtx from ENA driver

RX lock is no longer required. There can only be one RX cleanup task
running at a time, RX cleanup cannot be executed if interface is not
yet initialized and ena_down() will not free any RX resources if any io
interrupt is being handled - RX cleanup task is only called from an
interrupt handler.

r320631:
Fix creation of dma tags and TSO settings

TSO settings were not reflecting real HW capabilities.

DMA tags were created with wrong window - high address was the same as
low, so excluding window was not working.

Capabilities of TX dma transaction were not set properly - TSO max size
had been increased and size of one segment had been adjusted.

r320632:
Replace mbuf defragmentation with collapse

Collapse should be more effective than defragmentation.
Added missing declaration of ena_check_and_collapse_mbuf().

Submitted by:	Michal Krawczyk &lt;mk@semihalf.com&gt;
		Jakub Palider &lt;jpa@semihalf.com&gt;
		Jan Medala &lt;jan@semihalf.com&gt;
Obtained from: Semihalf, Amazon.com Inc.
Sponsored by: Amazon.com Inc.
</content>
</entry>
</feed>
