Revision tags: release/13.4.0 |
|
#
ce4cc746 |
| 07-Aug-2024 |
osamaabb <osamaabb@amazon.com> |
ena: Update driver version to v2.8.0
Features: * Add support for device request reset message over AENQ * Support LLQ entry size recommendation from device * Support max large LLQ depth from the dev
ena: Update driver version to v2.8.0
Features: * Add support for device request reset message over AENQ * Support LLQ entry size recommendation from device * Support max large LLQ depth from the device * Expand PHC infrastructures * Configuration notification support
Bug Fixes: * Fix leaking ifmedia resources on detach * Fix netmap socket chain unmapping issue * Properly reinit netmap structs upon sysctl changes * Correctly count missing TX completions
Minor Changes: * Add reset reason for corrupted TX/RX completion descriptors * Add reset reason for missing admin interrupts * Improve reset reason statistics * Update licenses
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
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 ...
|
#
a33ec635 |
| 07-Aug-2024 |
Osama Abboud <osamaabb@amazon.com> |
ena: Add differentiation for missing TX completions reset
This commit adds differentiation for a reset caused by missing tx completions, by verifying if the driver didn't receive tx completions caus
ena: Add differentiation for missing TX completions reset
This commit adds differentiation for a reset caused by missing tx completions, by verifying if the driver didn't receive tx completions caused by missing interrupts. The cleanup_running field was added to ena_ring because cleanup_task.ta_pending is zeroed before ena_cleanup() runs.
Also ena_increment_reset_counter() API was added in order to support only incrementing the reset counter.
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
637ff00f |
| 23-Sep-2024 |
osamaabb <osamaabb@amazon.com> |
ena: Set ena_min_poll_delay_us default value
This commit sets the default value for ena_min_poll_delay_us to 100.
This commit does not change the behavior of the driver, the delay is calculated as
ena: Set ena_min_poll_delay_us default value
This commit sets the default value for ena_min_poll_delay_us to 100.
This commit does not change the behavior of the driver, the delay is calculated as MAX(ENA_MIN_ADMIN_POLL_US, delay_us), where the first field is already defined as 100. The second parameter, delay_us is taken from ena_min_poll_delay_us which is currently unset - 0.
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 |
|
#
4e2688cc |
| 30-Oct-2023 |
Osama Abboud <osamaabb@amazon.com> |
ena: Update driver version to v2.7.0
Features: * Introduce customer and SRD metrics through sysctl * Introduce spreading IRQs to CPUs capability using sysctl * Upgrade ena-com to v2.7.0
Bug Fixes:
ena: Update driver version to v2.7.0
Features: * Introduce customer and SRD metrics through sysctl * Introduce spreading IRQs to CPUs capability using sysctl * Upgrade ena-com to v2.7.0
Bug Fixes: * Remove outdated APIs
Minor Changes: * Introduce a shared stats sample interval for all stats
Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
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 ...
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
ac40021c |
| 28-May-2023 |
Arthur Kiyanovski <akiyano@amazon.com> |
ena: Update driver version to v2.6.3
Bug Fixes: * Initialize statistics before the interface is available * Fix driver unload crash
Minor Changes: * Mechanically convert ena(4) to DrvAPI * Remove u
ena: Update driver version to v2.6.3
Bug Fixes: * Initialize statistics before the interface is available * Fix driver unload crash
Minor Changes: * Mechanically convert ena(4) to DrvAPI * Remove usage of IFF_KNOWSEPOCH
MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
Revision tags: release/13.2.0 |
|
#
e5de1d8d |
| 13-Dec-2022 |
Arthur Kiyanovski <akiyano@amazon.com> |
ena: Update driver version to v2.6.2
Bug Fixes: * Remove timer service re-arm on ena_restore_device failure. * Re-Enable per-packet missing tx completion print
Minor Changes: * Switch driver owners
ena: Update driver version to v2.6.2
Bug Fixes: * Remove timer service re-arm on ena_restore_device failure. * Re-Enable per-packet missing tx completion print
Minor Changes: * Switch driver owners from Semihalf to Amazon in man file.
MFC after: 2 weeks Sponsored by: Amazon, Inc. Pull Request: https://github.com/freebsd/freebsd-src/pull/637
show more ...
|
Revision tags: release/12.4.0 |
|
#
25b64933 |
| 04-Jul-2022 |
Michal Krawczyk <mk@semihalf.com> |
ena: Update driver version to v2.6.1
Minor version update which improves styling of a printouts, fixes the KASAN and KMSAN kernel builds and LLQ reconfiguration after the device reset.
Obtained fro
ena: Update driver version to v2.6.1
Minor version update which improves styling of a printouts, fixes the KASAN and KMSAN kernel builds and LLQ reconfiguration after the device reset.
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
b72f1f45 |
| 30-Jun-2022 |
Mark Johnston <markj@FreeBSD.org> |
ena: Make first_interrupt a uint8_t
We do not have atomic(9) routines for bools, and it is not guaranteed that sizeof(bool) is 1.
This fixes the KASAN and KMSAN kernel builds, which fail because th
ena: Make first_interrupt a uint8_t
We do not have atomic(9) routines for bools, and it is not guaranteed that sizeof(bool) is 1.
This fixes the KASAN and KMSAN kernel builds, which fail because the compiler refuses to silently cast a _Bool * to a uint8_t * when calling the atomic(9) sanitizer interceptors.
Reviewed by: Dawid Górecki <dgr@semihalf.com> MFC after: 2 weeks Fixes: 0ac122c388d9 ("ena: Use atomic_load/store functions for first_interrupt variable") Differential Revision: https://reviews.freebsd.org/D35683
show more ...
|
#
79e15002 |
| 10-Jun-2022 |
Michal Krawczyk <mk@semihalf.com> |
ena: Update driver version to v2.6.0
Some of the changes in this release: * Style fixes * Fix ENI stats probing * Add trace for the last Tx cleanup call * Prevent LLQ initialization if member isn't
ena: Update driver version to v2.6.0
Some of the changes in this release: * Style fixes * Fix ENI stats probing * Add trace for the last Tx cleanup call * Prevent LLQ initialization if member isn't exposed * Improve logging
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|
#
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.
|
#
b899a02a |
| 10-Jun-2022 |
Dawid Gorecki <dgr@semihalf.com> |
ena: Move ena_copy_eni_metrics into separate task
Copying ENI metrics was done in callout context, this caused the driver to panic when sample_interval was set to a value other than 0, as the admin
ena: Move ena_copy_eni_metrics into separate task
Copying ENI metrics was done in callout context, this caused the driver to panic when sample_interval was set to a value other than 0, as the admin queue call which was executed could sleep while waiting on a condition variable. Taskqueue, unlike callout, allows for sleeping, so moving the function to a separate taskqueue fixes the problem. ena_timer_service is still responsible for scheduling the taskqueue.
Stop draining the callout during ena_up/ena_down. This was done to prevent a race between ena_up/down and ena_copy_eni_metrics admin queue calls. Since ena_metrics_task is protected by ENA_LOCK there is no possibility of a race between ena_up/down and ena_metrics_task.
Remove a comment about locking in ena_timer_service. With ENI metrics in a separate task this comment became obsolete.
Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
show more ...
|