#
f2233ac3 |
| 26-Nov-2024 |
Zhenlei Huang <zlei@FreeBSD.org> |
ena: Remove \n from sysctl description
sysctl(8) prints a newline after the description, no need for this extra newline.
MFC after: 1 week
|
Revision tags: release/13.4.0 |
|
#
b1c38df0 |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Support LLQ entry size recommendation from device
This commit adds support for receiving LLQ entry size recommendation from the device. The driver will use the recommended entry size, unless th
ena: Support LLQ entry size recommendation from device
This commit adds support for receiving LLQ entry size recommendation from the device. The driver will use the recommended entry size, unless the user specifically chooses to use regular or large LLQ entry.
Also added enum ena_llq_header_size_policy_t and llq_plociy field in order to support the new feature.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
70587942 |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Add support for device request reset message over AENQ
This commit adds a handler for the new aenq message ENA_ADMIN_DEVICE_REQUEST_RESET, which in turn causes the driver to trigger reset of a
ena: Add support for device request reset message over AENQ
This commit adds a handler for the new aenq message ENA_ADMIN_DEVICE_REQUEST_RESET, which in turn causes the driver to trigger reset of a new type: ENA_REGS_RESET_DEVICE_REQUEST. Also adds counting of such occurrences in a new statistic for it.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
90953d2f |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Make global counters style unified
This commit changes the code so all global counters will have the same line break.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, In
ena: Make global counters style unified
This commit changes the code so all global counters will have the same line break.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
274319ac |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Add reset reason for missing admin interrupt
There can be cases when we trigger reset if an admin interrupt is missing. In order to identify this use-case specifically, this commit adds a new r
ena: Add reset reason for missing admin interrupt
There can be cases when we trigger reset if an admin interrupt is missing. In order to identify this use-case specifically, this commit adds a new reset reason.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
4af71159 |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Add reset reason for corrupted RX cdescs
RX completion descriptors may sometimes contain errors due to corruption. Upon identifying such a case, the driver will trigger a reset with an explicit
ena: Add reset reason for corrupted RX cdescs
RX completion descriptors may sometimes contain errors due to corruption. Upon identifying such a case, the driver will trigger a reset with an explicit reset reason ENA_REGS_RESET_RX_DESCRIPTOR_MALFORMED.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
38727218 |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Add reset reason for corrupted TX cdescs
TX completion descriptors may sometimes contain errors due to corruption. Upon identifying such a case, the driver will trigger a reset with an explicit
ena: Add reset reason for corrupted TX cdescs
TX completion descriptors may sometimes contain errors due to corruption. Upon identifying such a case, the driver will trigger a reset with an explicit reset reason ENA_REGS_RESET_TX_DESCRIPTOR_MALFORMED.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
89ce3f63 |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Improve reset reason statistics
The driver uses different reset reasons. Some of them are counted and presented in the driver statistics. There are cases where statistics are counted on a ring
ena: Improve reset reason statistics
The driver uses different reset reasons. Some of them are counted and presented in the driver statistics. There are cases where statistics are counted on a ring level, but these are zeroed after a reset procedure takes place.
This commit makes the following changes: 1. Add statistics for the unrepresented reset reasons. 2. Add reset reasons which are counted on a ring level, to be also global for better tracking.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
8d6806cd |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Update license signatures to 2024
This commit updates all the license signatures to 2024.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
246aa273 |
| 23-Oct-2023 |
Osama Abboud <osamaabb@amazon.com> |
ena: Update the license dating to 2023
Some of the files are using outdated linceses. Update the license to be 2023.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
|
#
36d42c86 |
| 12-Sep-2023 |
Osama Abboud <osamaabb@amazon.com> |
ena: Support srd metrics with sysctl
This commit introduces SRD metrics through sysctl. The metrics can be queried using the following sysctl node: sysctl dev.ena.<device index>.ena_srd_info
Approv
ena: Support srd metrics with sysctl
This commit introduces SRD metrics through sysctl. The metrics can be queried using the following sysctl node: sysctl dev.ena.<device index>.ena_srd_info
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
f97993ad |
| 12-Sep-2023 |
Osama Abboud <osamaabb@amazon.com> |
ena: Support customer metric with sysctl
This commit adds sysctl support for customer metrics. Different customer metrics can be found in the following sysctl node: sysctl dev.ena.<device index>.cus
ena: Support customer metric with sysctl
This commit adds sysctl support for customer metrics. Different customer metrics can be found in the following sysctl node: sysctl dev.ena.<device index>.customer_metrics
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
5b925280 |
| 12-Sep-2023 |
Osama Abboud <osamaabb@amazon.com> |
ena: Introduce shared sample interval for all stats
Rename sample_interval node to stats_sample_interval and move it up in the sysctl tree to make it clear that it's relevant for all the stats and n
ena: Introduce shared sample interval for all stats
Rename sample_interval node to stats_sample_interval and move it up in the sysctl tree to make it clear that it's relevant for all the stats and not only ENI metrics (Currently, sample interval node is found under eni_metrics node).
Path to node: dev.ena.<device_index>.stats_sample_interval
Once this parameter is set it will set the sample interval for all the stats node including SRD/customer metrics.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
f9e1d947 |
| 30-Oct-2023 |
Osama Abboud <osamaabb@amazon.com> |
ena: Add sysctl support for spreading IRQs
This commit allows spreading IO IRQs over different CPUs through sysctl. Two sysctl nodes are introduced: 1- base_cpu: servers as the first CPU to which th
ena: Add sysctl support for spreading IRQs
This commit allows spreading IO IRQs over different CPUs through sysctl. Two sysctl nodes are introduced: 1- base_cpu: servers as the first CPU to which the first IO IRQ will be bound. 2- cpu_stride: sets the distance between every two CPUs to which every two consecutive IO IRQs are bound.
For example for doing the following IO IRQs / CPU binding:
IRQ idx | CPU ---------------- 1 | 0 2 | 2 3 | 4 4 | 6
Run the following commands: sysctl dev.ena.<device index>.irq_affinity.base_cpu=0 sysctl dev.ena.<device_index>.irq_affinity.cpu_stride=2
Also introduced rss_enabled field, which is intended to replace '#ifdef RSS' in multiple places, in order to prevent code duplication.
We want to bind interrupts to CPUs in case of rss set OR in case the newly defined sysctl paremeter is set. This requires to remove a couple of '#ifdef RSS' as well in the structs, since we'll be using the relevant parameters in the CPU binding code.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
fdafd315 |
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remov
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
8f15f8a7 |
| 10-Jun-2022 |
Dawid Gorecki <dgr@semihalf.com> |
ena: Align names of constants
Most of the constants in ena.h file were prefixed with ENA_*, while others did not have this prefix. Align the constants by prefixing the remaining constants with ENA.
ena: Align names of constants
Most of the constants in ena.h file were prefixed with ENA_*, while others did not have this prefix. Align the constants by prefixing the remaining constants with ENA.
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
82e558ea |
| 10-Jun-2022 |
Dawid Gorecki <dgr@semihalf.com> |
ena: Fix styling issues
Align code style with FreeBSD style(9) guidelines.
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
|
Revision tags: release/13.1.0 |
|
#
094b2a23 |
| 06-Apr-2022 |
Warner Losh <imp@FreeBSD.org> |
ena: Remove write only variables
Sponsored by: Netflix
|
#
eb4c4f4a |
| 23-Jan-2022 |
Marcin Wojtas <mw@FreeBSD.org> |
ena: merge ena-com v2.5.0 upgrade
Merge commit '2530eb1fa01bf28fbcfcdda58bd41e055dcb2e4a'
Adjust the driver to the upgraded ena-com part twofold:
First update is related to the driver's NUMA aware
ena: merge ena-com v2.5.0 upgrade
Merge commit '2530eb1fa01bf28fbcfcdda58bd41e055dcb2e4a'
Adjust the driver to the upgraded ena-com part twofold:
First update is related to the driver's NUMA awareness.
Allocate I/O queue memory in NUMA domain local to the CPU bound to the given queue, improving data access time. Since this can result in performance hit for unaware users, this is done only when RSS option is enabled, for other cases the driver relies on kernel to allocate memory by itself.
Information about first CPU bound is saved in adapter structure, so the binding persists after bringing the interface down and up again.
If there are more buckets than interface queues, the driver will try to bind different interfaces to different CPUs using round-robin algorithm (but it will not bind queues to CPUs which do not have any RSS buckets associated with them). This is done to better utilize hardware resources by spreading the load.
Add (read-only) per-queue sysctls in order to provide the following information: - queueN.domain: NUMA domain associated with the queue - queueN.cpu: CPU affinity of the queue
The second change is for the CSUM_OFFLOAD constant, as ENA platform file has removed its definition. To align to that change, it has been added to the ena_datapath.h file.
Submitted by: Artur Rojek <ar@semihalf.com> Submitted by: Dawid Gorecki <dgr@semihalf.com> Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
Revision tags: release/12.3.0 |
|
#
a3f0d182 |
| 16-Sep-2021 |
Artur Rojek <ar@semihalf.com> |
ena: fix building in-kernel driver
When building ENA as compiled into the kernel, the driver would fail to build. Resolve the problem by introducing the following changes: 1. Add missing `ena_rss.c`
ena: fix building in-kernel driver
When building ENA as compiled into the kernel, the driver would fail to build. Resolve the problem by introducing the following changes: 1. Add missing `ena_rss.c` entry in `sys/conf/files`. 2. Prevent SYSCTL_ADD_INT from throwing an assert due to an extra CTLTYPE_INT flag.
Fixes: 986e7b92276 ("ena: Move RSS logic into its own source files") Fixes: 6d1ef2abd33 ("ena: Implement full RSS reconfiguration")
Obtained from: Semihalf Sponsored by: Amazon, Inc. MFC after: 1 week
show more ...
|
#
6d1ef2ab |
| 12-Aug-2021 |
Artur Rojek <ar@semihalf.com> |
ena: Implement full RSS reconfiguration
Bind RX/TX queues and MSI-X vectors to matching CPUs based on the RSS bucket entries.
Introduce sysctls for the following RSS functionality: - rss.indir_tabl
ena: Implement full RSS reconfiguration
Bind RX/TX queues and MSI-X vectors to matching CPUs based on the RSS bucket entries.
Introduce sysctls for the following RSS functionality: - rss.indir_table: indirection table mapping - rss.indir_table_size: indirection table size - rss.key: RSS hash key (if Toeplitz used)
Said sysctls are only available when compiled without `option RSS`, as kernel-side RSS support currently doesn't offer RSS reconfiguration.
Migrate the hash algorithm from CRC32 to Toeplitz and change the initial hash value to 0x0 in order to match the standard Toeplitz implementation. Provide helpers for hash key inversion required for HW operations.
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
223c8cb1 |
| 12-Aug-2021 |
Artur Rojek <ar@semihalf.com> |
ena: Add missing statistics
Provide the following sysctl statistics in order to stay aligned with the Linux driver: * rx_ring.csum_good * tx_ring.unmask_interrupt_num
Also rename the 'bad_csum' sta
ena: Add missing statistics
Provide the following sysctl statistics in order to stay aligned with the Linux driver: * rx_ring.csum_good * tx_ring.unmask_interrupt_num
Also rename the 'bad_csum' statistic name to 'csum_bad' for alignment.
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
07aff471 |
| 12-Aug-2021 |
Artur Rojek <ar@semihalf.com> |
ena: Share ena_global_lock between driver instances
In order to use `ena_global_lock` in sysctl context, it must be kept outside the driver instance's software context, as sysctls can be called befo
ena: Share ena_global_lock between driver instances
In order to use `ena_global_lock` in sysctl context, it must be kept outside the driver instance's software context, as sysctls can be called before attach and after detach, leading to lock use before sx_init and after sx_destroy otherwise. Solve this issue by turning `ena_global_lock` into a file scope variable, shared between all instances of the driver and associated sysctl context, and in turn initialized/destroyed in dedicated SYSINIT/SYSUNINIT functions. As a side effect, this change also fixes existing race in the reset routine, when simultaneously accessing sysctl exposed properties.
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
3fc5d816 |
| 24-Jun-2021 |
Marcin Wojtas <mw@FreeBSD.org> |
Merge tag 'vendor/ena-com/2.4.0'
Update the driver in order not to break its compilation and make use of the new ENA logging system
Migrate platform code to the new logging system provided by ena_c
Merge tag 'vendor/ena-com/2.4.0'
Update the driver in order not to break its compilation and make use of the new ENA logging system
Migrate platform code to the new logging system provided by ena_com layer.
Make ENA_INFO the new default log level.
Remove all explicit use of `device_printf`, all new logs requiring one of the log macros to be used.
show more ...
|