<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test/sys/dev/ena/ena_sysctl.c, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/'/>
<updated>2020-11-18T15:17:55Z</updated>
<entry>
<title>Add ENI metrics for the ENA driver</title>
<updated>2020-11-18T15:17:55Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-11-18T15:17:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=f180142c7659a150f58ad8d8c878216a0b53fc66'/>
<id>urn:sha1:f180142c7659a150f58ad8d8c878216a0b53fc66</id>
<content type='text'>
The new HAL allows the driver to read extra ENI stats. Exact meaning of
each of them can be found in base/ena_defs/ena_admin_defs.h file and
structure ena_admin_eni_stats.

Those stats are being updated inside of the timer service, which is
executed every second.
ENI metrics are turned off by default. They can be enabled, using the
sysctl node: dev.ena.X.eni_metrics.update_delay
0 value in this node means that the update is turned off. Other values
determine how many seconds must pass, before ENI metrics will be
updated.

They can be acquired, using sysctl:

sysctl dev.ena.X.eni_metrics

Where X stands for the interface number.

Submitted by:   Michal Krawczyk &lt;mk@semihalf.com&gt;
Obtained from:  Semihalf
Sponsored by:   Amazon, Inc
MFC after:      1 week
Differential revision: https://reviews.freebsd.org/D27118
</content>
</entry>
<entry>
<title>Add SPDX license tag to the ENA driver files</title>
<updated>2020-11-18T15:07:34Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-11-18T15:07:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=0835cc783b46963c38659794b55deeb58be81e7c'/>
<id>urn:sha1:0835cc783b46963c38659794b55deeb58be81e7c</id>
<content type='text'>
Refering to guide: https://wiki.freebsd.org/SPDX the SPDX tag should not
replace the standard license text, however it should be added over the
standard license text to make the automation easier.

Because of that, the old license was kept, but the SPDX tag was added
on top of every ENA driver file.

Submited by:    Michal Krawczyk &lt;mk@semihalf.com&gt;
Obtained from:  Semihalf
Sponsored by:   Amazon, Inc
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D27117
</content>
</entry>
<entry>
<title>Update ENA driver version to v2.2.0</title>
<updated>2020-05-26T16:11:46Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T16:11:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=2287afd8180cb5f48c6a3ff6235e0b743b13353a'/>
<id>urn:sha1:2287afd8180cb5f48c6a3ff6235e0b743b13353a</id>
<content type='text'>
Driver version upgrade is connected with support for the new device
fetures, like Tx drops reporting or disabling meta caching.

Moreover, the driver configuration from the sysctl was reworked to
provide safer and better flow for configuring:
* number of IO queues (new feature),
* drbr size on Tx,
* Rx queue size.

Moreover, a lot of minor bug fixes and improvements were added.

Copyright date in the license of the modified files in this release was
updated to 2020.

Submitted by: Michal Krawczyk &lt;mk@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by: Amazon, Inc.
</content>
</entry>
<entry>
<title>Create ENA IO queues with optional backoff</title>
<updated>2020-05-26T15:58:48Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T15:58:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=9762a033da9b457ce82d26364d7ab8c271d5862b'/>
<id>urn:sha1:9762a033da9b457ce82d26364d7ab8c271d5862b</id>
<content type='text'>
If requested size of IO queues is not supported try to decrease it until
finding the highest value that can be satisfied.

Submitted by:  Maciej Bielski &lt;mba@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
</content>
</entry>
<entry>
<title>Add sysctl node for ENA IO queues number adjustment</title>
<updated>2020-05-26T15:57:02Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T15:57:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=56d41ad5fe9c2fcbc2363bf3ca7e69684a26b4bd'/>
<id>urn:sha1:56d41ad5fe9c2fcbc2363bf3ca7e69684a26b4bd</id>
<content type='text'>
By default, in ena_attach() the driver attempts to acquire
ena_adapter::max_num_io_queues MSI-X vectors for the purpose of IO
queues, however this is not guaranteed. The number of vectors acquired
depends also on system resources availability.

Regardless of that, enable the number of effectively used IO queues to
be further limited through the sysctl node.

Example: Assumming that there are 8 IO queues configured by default, the
command

$ sysctl dev.ena.0.io_queues_nb=4

will reduce the number of available IO queues to 4. Similarly, the value
can be also increased up to maximum supported value. A value higher than
maximum supported number of IO queues is ignored. Zero is ignored too.

Submitted by:  Maciej Bielski &lt;mba@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
</content>
</entry>
<entry>
<title>Rework ENA Tx buffer ring size reconfiguration</title>
<updated>2020-05-26T15:50:30Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T15:50:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=21823546222b3f7da1dc2cfe47576ed3cce5f214'/>
<id>urn:sha1:21823546222b3f7da1dc2cfe47576ed3cce5f214</id>
<content type='text'>
This method has been aligned with the way how the Rx queue size is being
updated - so it's now done synchronously instead of resetting the
device.

Moreover, the input parameter is now being validated if it's a power of
2. Without this, it can cause kernel panic.

Submitted by:  Michal Krawczyk &lt;mk@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
</content>
</entry>
<entry>
<title>Rework ENA Rx queue size configuration</title>
<updated>2020-05-26T15:48:06Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T15:48:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=7d8c4fee958f91aeeb9ba720f22e8069df939112'/>
<id>urn:sha1:7d8c4fee958f91aeeb9ba720f22e8069df939112</id>
<content type='text'>
This patch reworks how the Rx queue size is being reconfigured and how
the information from the device is being processed.

Reconfiguration of the queues and reset of the device in order to make
the changes alive isn't the best approach. It can be done synchronously
and it will let to pass information if the reconfiguration was
successful to the user. It now is done in the ena_update_queue_size()
function.

To avoid reallocation of the ring buffer, statistic counters and the
reinitialization of the mutexes when only new size has to be assigned,
the io queues initialization function has been split into 2 stages:
basic, which is just copying appropriate fields and the advanced, which
allocates and inits more advanced structures for the IO rings.

Moreover, now the max allowed Rx and Tx ring size is being kept
statically in the adapter and the size of the variables holding those
values has been changed to uint32_t everywhere.

Information about IO queues size is now being logged in the up routine
instead of the attach.

Submitted by:  Michal Krawczyk &lt;mk@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
</content>
</entry>
<entry>
<title>Provide ENA driver version in a sysctl node</title>
<updated>2020-05-26T15:35:22Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T15:35:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=8551662135f50fb362a1a5a1aed88c4f4b3415a4'/>
<id>urn:sha1:8551662135f50fb362a1a5a1aed88c4f4b3415a4</id>
<content type='text'>
Usage example: $ sysctl hw.ena.driver_version

Submitted by:  Maciej Bielski &lt;mba@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
</content>
</entry>
<entry>
<title>Enable Tx drops reporting in the ENA driver</title>
<updated>2020-05-26T15:31:28Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T15:31:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=6c84cec3738e2979f3e402c69d9d3924305cee88'/>
<id>urn:sha1:6c84cec3738e2979f3e402c69d9d3924305cee88</id>
<content type='text'>
Tx drops statistics are fetched from HW every ena_keepalive_wd() call
and are observable using one of the commands:
* sysctl dev.ena.0.hw_stats.tx_drops
* netstat -I ena0 -d

Submitted by:  Maciej Bielski &lt;mba@semihalf.com&gt;
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
</content>
</entry>
<entry>
<title>Adjust ENA driver to the new HAL</title>
<updated>2020-05-26T15:29:19Z</updated>
<author>
<name>Marcin Wojtas</name>
<email>mw@FreeBSD.org</email>
</author>
<published>2020-05-26T15:29:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=8483b844e7e48dbfc61c6e38908921c4fa691d4c'/>
<id>urn:sha1:8483b844e7e48dbfc61c6e38908921c4fa691d4c</id>
<content type='text'>
* Removed adaptive interrupt moderation (not suported on FreeBSD).
* Use ena_com_free_q_entries instead of ena_com_free_desc.
* Don't use ENA_MEM_FREE outside of the ena_com.
* Don't use barriers before calling doorbells as it's already done in
  the HAL.
* Add function that generates random RSS key, common for all driver's
  interfaces.
* Change admin stats sysctls to U64.

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