|
Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2, v24.11-rc1, v24.07, v24.07-rc4, v24.07-rc3 |
|
| #
1be61fe1 |
| 17-Jul-2024 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: fix end condition of reading xstats
The "mlx5_stats_n" in the "struct mlx5_xstats_ctrl" is the number of device stats identified by PMD. Right now, the mapping of device stats to the xstat
net/mlx5: fix end condition of reading xstats
The "mlx5_stats_n" in the "struct mlx5_xstats_ctrl" is the number of device stats identified by PMD. Right now, the mapping of device stats to the xstats is not compact. The "input index" of the device stats would remain UINT16_MAX and be skipped when reading counters.
If some DPDK stats cannot be identified in the middle of the map, the end condition should be bigger than the "mlx5_stats_n". Or else, some counters would not be read and calculated.
Using the global const "xstats_n" as the end condition to traverse the whole array in case some counters are missed. The "xstats_o_idx" should be used instead of the iteration to check if the statistics is an IB device counter.
In the meanwhile, adding another field to record the start index of the IB counters to reduce the redundancy iterations.
Fixes: a687c3e658c2 ("net/mlx5: fix counters map in bonding mode") Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v24.07-rc2 |
|
| #
cd00dce6 |
| 01-Jul-2024 |
Shani Peretz <shperetz@nvidia.com> |
net/mlx5: add hairpin out-of-buffer per-port counter
Currently mlx5 PMD exposes rx_out_of_buffer counter that tracks packets dropped when Rx queue was full.
To provide more granular statistics, thi
net/mlx5: add hairpin out-of-buffer per-port counter
Currently mlx5 PMD exposes rx_out_of_buffer counter that tracks packets dropped when Rx queue was full.
To provide more granular statistics, this patch splits the `rx_out_of_buffer` counter into two separate counters: 1. hairpin_out_of_buffer - This counter specifically tracks packets dropped by the device's hairpin Rx queues. 2. rx_out_of_buffer - This counter tracks packets dropped by the device's Rx queues, excluding the hairpin Rx queues.
Two hardware counter objects will be created per device, and all the Rx queues will be assigned to these counters during the configuration phase.
The `hairpin_out_of_buffer` counter will be created only if there is at least one hairpin Rx queue present on the device.
Signed-off-by: Shani Peretz <shperetz@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
show more ...
|
| #
d0f858a6 |
| 01-Jul-2024 |
Shani Peretz <shperetz@nvidia.com> |
net/mlx5: add hairpin out-of-buffer global counter
Exposing ethtool dev_internal_queue_oob counter which counts the number of hairpin dropped packets in xstats.
Signed-off-by: Shani Peretz <shperet
net/mlx5: add hairpin out-of-buffer global counter
Exposing ethtool dev_internal_queue_oob counter which counts the number of hairpin dropped packets in xstats.
Signed-off-by: Shani Peretz <shperetz@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
show more ...
|
|
Revision tags: v24.07-rc1 |
|
| #
e12a0166 |
| 14-May-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
drivers: use stdatomic API
Replace the use of gcc builtin __atomic_xxx intrinsics with corresponding rte_atomic_xxx optional rte stdatomic API.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microso
drivers: use stdatomic API
Replace the use of gcc builtin __atomic_xxx intrinsics with corresponding rte_atomic_xxx optional rte stdatomic API.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
show more ...
|
|
Revision tags: v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2 |
|
| #
16deeedf |
| 05-Mar-2024 |
Thomas Monjalon <thomas@monjalon.net> |
net/mlx5: update speed capabilities parsing on Linux
Ease maintenance of speed capabilities parsing from ethtool by using rte_eth_link_speed_g*(). Functions in ethdev library are simpler, more compl
net/mlx5: update speed capabilities parsing on Linux
Ease maintenance of speed capabilities parsing from ethtool by using rte_eth_link_speed_g*(). Functions in ethdev library are simpler, more complete, and easier to maintain.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
show more ...
|
| #
84ba1440 |
| 07-Mar-2024 |
Eli Britstein <elibr@nvidia.com> |
net/mlx5: prevent ioctl failure log flooding
The following log is printed in WARNING severity:
mlx5_net: port 1 ioctl(SIOCETHTOOL, ETHTOOL_GPAUSEPARAM) failed: Operation not supported
Reduce t
net/mlx5: prevent ioctl failure log flooding
The following log is printed in WARNING severity:
mlx5_net: port 1 ioctl(SIOCETHTOOL, ETHTOOL_GPAUSEPARAM) failed: Operation not supported
Reduce the severity to DEBUG to prevent this log from flooding when there are hundreds of ports probed without supporting this flow ctrl query.
Fixes: 1256805dd54d ("net/mlx5: move Linux-specific functions") Cc: stable@dpdk.org
Signed-off-by: Eli Britstein <elibr@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
| #
53d1e65c |
| 26-Feb-2024 |
Haifei Luo <haifeil@nvidia.com> |
net/mlx5: handle bonding in link status update
The current implementation of mlx5_dev_interrupt_nl_cb routine first compares if event netlink if_index belongs to the same device. This is not fully c
net/mlx5: handle bonding in link status update
The current implementation of mlx5_dev_interrupt_nl_cb routine first compares if event netlink if_index belongs to the same device. This is not fully correct for the bonding device since the bonding master and slave interface netlink events indicate the bonding link status change as well. Add check for if_index is related to the bonding's master/slave.
The following step is that it compares the device link status before and after the netlink event handling. There are also the bonding specifics and it should compare the link status of the bonding master to detect the actual status change.
Signed-off-by: Haifei Luo <haifeil@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
| #
a687c3e6 |
| 29-Feb-2024 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: fix counters map in bonding mode
In the HW-LAG mode, there is only one mlx5 IB device with 2 ETH interfaces. In theory, the settings on both ports should be the same. But in the real life,
net/mlx5: fix counters map in bonding mode
In the HW-LAG mode, there is only one mlx5 IB device with 2 ETH interfaces. In theory, the settings on both ports should be the same. But in the real life, some inconsistent settings may be done by the user and the PMD is not aware of this.
In the previous implementation, the xstats map was generated from the information fetched on the 1st port of a bonding interface. If the 2nd port had a different settings, the number and the order of the counters may differ from that of the 1st one. The ioctl() call may corrupt the user buffers (copy_to_user) and cause a crash.
The commit will change the map between the driver counters to the PMD user counters. 1. Switch the inner and outer loop to speed up the initialization time AMAP - since there will be >300 counters returned from the driver. 2. Generate an unique map for both ports in LAG mode. a. Scan the 1st port and find the supported counters' strings, then add to the map. b. In bonding, scan the 2nd port and find the strings. If one is already in the map, use the index. Or append to the next free slot. c. Append the device counters that needs to be fetched via sysfs or Devx command. This kind of counter(s) is unique per IB device.
After querying the statistics from the driver, the value will be read from the proper offset in the "struct ethtool_stats" and then added into the output array based on the map information. In bonding mode, the statistics from both ports will be accumulated if the counters are valid on both ports.
Compared to the system call or Devx command, the overhead introduced by the extra index comparison is light and should not cause a significant degradation.
The application should ensure that the port settings should not be changed out of the DPDK application dynamically in most cases. Or else the change cannot be notified and the counters map might not be valid when the number doesn't change but the counters set had changed. A device restart will help to re-initialize the map from scrath.
Fixes: 7ed15acdcd69 ("net/mlx5: improve xstats of bonding port") Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v24.03-rc1 |
|
| #
8e7869f0 |
| 15-Feb-2024 |
Wathsala Vithanage <wathsala.vithanage@arm.com> |
net/mlx5: add PCI related counters
Versions of Mellanox NICs starting from CX5 have device counters related to PCI. These counters are helpful in debugging IO bottlenecks. For instance, the outbound
net/mlx5: add PCI related counters
Versions of Mellanox NICs starting from CX5 have device counters related to PCI. These counters are helpful in debugging IO bottlenecks. For instance, the outbound_pci_stalled_rd and outbound_pci_stalled_wr counters can help with identifying NIC stalls due to insufficient PCI credits, which otherwise would have required a PCI analyzer or a sophisticated PCI root port with a PMU. Currently none of these are available in the MLX5 PMD even though ethtool is capable of reading some of them. Since PMD uses the same ioctl used by ethtool (SIOCETHTOOL) and reads via the kernel driver it is possible to add support with ease. There is one more PCI related counter and a device counter that aren't implemented in the Linux driver at the moment. These two are named outbound_pci_buffer_overflow and dev_out_of_buffer respectively. As per Nvidia's documentation these two counters can tell the number of packets dropped due to pci buffer overflow and the number of times the device owned queue had not enough buffers allocated.
Signed-off-by: Wathsala Vithanage <wathsala.vithanage@arm.com> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
show more ...
|
|
Revision tags: v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2, v23.11-rc1 |
|
| #
1296e8d0 |
| 01-Aug-2023 |
David Marchand <david.marchand@redhat.com> |
net/mlx5: fix leak in sysfs port name translation
getline() may allocate a buffer even though it returns -1: """ If *lineptr is set to NULL before the call, then getline() will allocate a buffer f
net/mlx5: fix leak in sysfs port name translation
getline() may allocate a buffer even though it returns -1: """ If *lineptr is set to NULL before the call, then getline() will allocate a buffer for storing the line. This buffer should be freed by the user program even if getline() failed. """
This leak has been observed on a RHEL8 system with two CX5 PF devices (no VFs).
ASan reports: ==8899==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 120 byte(s) in 1 object(s) allocated from: #0 0x7fe58576aba8 in __interceptor_malloc (/lib64/libasan.so.5+0xefba8) #1 0x7fe583e866b2 in __getdelim (/lib64/libc.so.6+0x886b2) #2 0x327bd23 in mlx5_sysfs_switch_info ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:1084 #3 0x3271f86 in mlx5_os_pci_probe_pf ../drivers/net/mlx5/linux/mlx5_os.c:2282 #4 0x3273c83 in mlx5_os_pci_probe ../drivers/net/mlx5/linux/mlx5_os.c:2497 #5 0x327475f in mlx5_os_net_probe ../drivers/net/mlx5/linux/mlx5_os.c:2578 #6 0xc6eac7 in drivers_probe ../drivers/common/mlx5/mlx5_common.c:937 #7 0xc6f150 in mlx5_common_dev_probe ../drivers/common/mlx5/mlx5_common.c:1027 #8 0xc8ef80 in mlx5_common_pci_probe ../drivers/common/mlx5/mlx5_common_pci.c:168 #9 0xc21b67 in rte_pci_probe_one_driver ../drivers/bus/pci/pci_common.c:312 #10 0xc2224c in pci_probe_all_drivers ../drivers/bus/pci/pci_common.c:396 #11 0xc222f4 in pci_probe ../drivers/bus/pci/pci_common.c:423 #12 0xb71fff in rte_bus_probe ../lib/eal/common/eal_common_bus.c:78 #13 0xbe6888 in rte_eal_init ../lib/eal/linux/eal.c:1300 #14 0x5ec717 in main ../app/test-pmd/testpmd.c:4515 #15 0x7fe583e38d84 in __libc_start_main (/lib64/libc.so.6+0x3ad84)
As far as why getline() errors, strace gives a hint: 8516 openat(AT_FDCWD, "/sys/class/net/enp130s0f0/phys_port_name", O_RDONLY) = 34 8516 fstat(34, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 8516 read(34, 0x621000098900, 4096) = -1 EOPNOTSUPP (Operation not supported)
Fixes: f8a226ed65fa ("net/mlx5: fix sysfs port name translation") Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1 |
|
| #
22dc56cf |
| 30-May-2023 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
net/mlx5: fix device removal event handling
On the device removal kernel notifies user space application with queueing the IBV_DEVICE_FATAL_EVENT and triggering appropriate file descriptor. Mellanox
net/mlx5: fix device removal event handling
On the device removal kernel notifies user space application with queueing the IBV_DEVICE_FATAL_EVENT and triggering appropriate file descriptor. Mellanox kernel driver stack emits this event twice from different layers (mlx5 and uverbs). The IB port index is not applicable in the event structure and should be ignored for IBV_DEVICE_FATAL_EVENT events.
Also, on the older kernels (at least from OFED 4.9) there might be race conditions causing the event queue close before application fetches the IBV_DEVICE_FATAL_EVENT message with ibv_get_async_event() API.
To provide the reliable device removal event detection the patch:
- ignores the IB port index for the IBV_DEVICE_FATAL_EVENT - introduces the flag to notify PMD about removal only once - acks event with ibv_ack_async_event after actual handling - checks for EIO error, making sure queue is not closed yet
Fixes: 40d9f906f4e2 ("net/mlx5: fix device removal handler for multiport") Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v23.03, v23.03-rc4 |
|
| #
f8a226ed |
| 23-Mar-2023 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: fix sysfs port name translation
With some OFED or upstream kernel of mlx5, the port name fetched from "/sys/class/net/[DEV]/phys_port_name" may have a tailing "\n" as the EOL. The sscanf()
net/mlx5: fix sysfs port name translation
With some OFED or upstream kernel of mlx5, the port name fetched from "/sys/class/net/[DEV]/phys_port_name" may have a tailing "\n" as the EOL. The sscanf() will return the scanned items number with this EOL.
In such case, the "equal to" condition is considered as false and the function mlx5_translate_port_name() will recognize the port type wrongly with UNKNOWN result.
The tailing carriage return character should be removed before calling the mlx5_translate_port_name(), this was already done in the NL message handling. In the meanwhile, the possible incorrect line feed character is also taken into consideration.
Fixes: 654810b56828 ("common/mlx5: share Netlink commands") Fixes: 420bbdae89f2 ("net/mlx5: fix host physical function representor naming") Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
|
Revision tags: v23.03-rc3, v23.03-rc2, v23.03-rc1 |
|
| #
9b31fc90 |
| 03-Jan-2023 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
net/mlx5: fix read device clock in real time mode
Since ConnectX-6DX the real time timestamp mode is supported. The rte_eth_read_clock() routine queries current timestamp value from the PMD.
The ml
net/mlx5: fix read device clock in real time mode
Since ConnectX-6DX the real time timestamp mode is supported. The rte_eth_read_clock() routine queries current timestamp value from the PMD.
The mlx5 PMD has special infrastructure to schedule packet sending in real time mode which can be engaged with tx_pp devarg. This infrastructure provides the timestamp reading from the special queue CEQs directly from the host memory in user space, without involving kernel calls.
The ConnectX-7 NIC has hardware capability to schedule packet sending without special infrastructure and tx_pp devarg can be omitted. If there is no tx_pp devarg specified the mlx5 uses kernel calls to query current timestamp value. The kernel can be completely unaware about engaged real time mode, also kernel might use its internal queue CQEs to get timestamps, that is neither precise nor reliable, inconsistent values might be returned, causing send scheduling malfunction.
The HCA PCI BAR provides the real time direct reading from hardware. This patch maps PCI resource to the process address space on demand and allows reading the real time timestamp values from the NIC directly.
Fixes: b94d93ca73803 ("net/mlx5: support reading device clock") Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2 |
|
| #
ccc6ea5d |
| 31-Oct-2022 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: fix build with recent compilers
With some higher GCC/CLANG version, it is not recommended to use a structure with a tailing flexible array inside another structure. Accessing this array ma
net/mlx5: fix build with recent compilers
With some higher GCC/CLANG version, it is not recommended to use a structure with a tailing flexible array inside another structure. Accessing this array may be considered as a risk to corrupt the following field even if it is by intention.
The error below was observed:
drivers/net/mlx5/linux/mlx5_ethdev_os.c: In function 'mlx5_get_flag_dropless_rq': drivers/net/mlx5/linux/mlx5_ethdev_os.c:1679:42: error: invalid use of structure with flexible array member [-Werror=pedantic] 1679 | struct ethtool_sset_info hdr; | ^~~
Changing it to memory dynamic allocation method will help to get rid of this complain.
Fixes: e848218741ea ("net/mlx5: check delay drop settings in kernel driver") Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
|
Revision tags: v22.11-rc1 |
|
| #
1f37cb2b |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
bus/pci: make driver-only headers private
The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list.
While at it, cleanup the code: - fix indentatio
bus/pci: make driver-only headers private
The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list.
While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion,
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Rosen Xu <rosen.xu@intel.com>
show more ...
|
|
Revision tags: v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2 |
|
| #
72d7efe4 |
| 16-Jun-2022 |
Spike Du <spiked@nvidia.com> |
common/mlx5: share interrupt management
There are many duplicate code of creating and initializing rte_intr_handle. Add a new mlx5_os API to do this, replace all PMD related code with this API.
Sig
common/mlx5: share interrupt management
There are many duplicate code of creating and initializing rte_intr_handle. Add a new mlx5_os API to do this, replace all PMD related code with this API.
Signed-off-by: Spike Du <spiked@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
|
Revision tags: v22.07-rc1 |
|
| #
bae645a2 |
| 11-May-2022 |
Ali Alnubani <alialnu@nvidia.com> |
net/mlx5: fix build with clang 14
Use fgets instead of fscanf to resolve the following warning reported by clang 14.0.0 in Fedora 37 (Rawhide):
drivers/net/mlx5/linux/mlx5_ethdev_os.c:1137:52: erro
net/mlx5: fix build with clang 14
Use fgets instead of fscanf to resolve the following warning reported by clang 14.0.0 in Fedora 37 (Rawhide):
drivers/net/mlx5/linux/mlx5_ethdev_os.c:1137:52: error: 'fscanf' may overflow; destination buffer in argument 3 has size 16, but the corresponding specifier may require size 17 [-Werror,-Wfortify-source] ret = fscanf(file, "%" RTE_STR(IF_NAMESIZE) "s", port_name);
Fixes: 63d1db710fbc ("net/mlx5: fix unlimited parsing of switch info") Cc: stable@dpdk.org
Signed-off-by: Ali Alnubani <alialnu@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
| #
eadc35df |
| 17-Mar-2022 |
Geoffrey Le Gourriérec <geoffrey.le_gourrierec@6wind.com> |
net/mlx5: fix statistics read on Linux
This patch encompasses a few fixes carried by a previous patch that aimed to support bonding device stats counting.
- If mlx5_os_read_dev_stat fails, it retur
net/mlx5: fix statistics read on Linux
This patch encompasses a few fixes carried by a previous patch that aimed to support bonding device stats counting.
- If mlx5_os_read_dev_stat fails, it returns 1 instead of a negative value, causing mlx5_xstats_get to return an invalid number of counters. Since this error is not blocking, do not mess ret value with mlx5_os_read_dev_stat returned value.
This allows avoiding the very annoying log: "n_xstats != n_xstats_names => skipping"
- Invert the check for mlx5_os_read_dev_stat(), currently leading us to store the result if the function failed, and use a backup value if it succeeded, which is the opposite of what we actually want. Revert to the original (correct) test.
- Add missing test on _mlx5_os_read_dev_counters() to prevent using trash stats values.
Fixes: 7ed15acdcd69 ("net/mlx5: improve xstats of bonding port") Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com> Signed-off-by: Geoffrey Le Gourriérec <geoffrey.le_gourrierec@6wind.com> Tested-by: Bassam Zaid AlKilani <bzalkilani@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
| #
2bd03a43 |
| 26-May-2022 |
Rongwei Liu <rongweil@nvidia.com> |
net/mlx5: add Rx drop counters to xstats
Add two kinds of Rx drop counters to DPDK xstats which are physical port scope.
1. rx_prio[0-7]_buf_discard The number of unicast packets dropped due to
net/mlx5: add Rx drop counters to xstats
Add two kinds of Rx drop counters to DPDK xstats which are physical port scope.
1. rx_prio[0-7]_buf_discard The number of unicast packets dropped due to lack of shared buffer resources. 2. rx_prio[0-7]_cong_discard The number of packets that is dropped by the Weighted Random Early Detection (WRED) function.
Prio[0-7] is determined by VLAN PCP value which is 0 by default. Both counters are retrieved from kernel ethtool API which calls PRM command finally.
Signed-off-by: Rongwei Liu <rongweil@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3 |
|
| #
17f95513 |
| 01-Mar-2022 |
Dmitry Kozlyuk <dkozlyuk@nvidia.com> |
net/mlx5: fix link status change detection
Sometimes net/mlx5 devices did not detect link status change to "up".
Each shared device was monitoring IBV_EVENT_PORT_{ACTIVE,ERR} and queried the link s
net/mlx5: fix link status change detection
Sometimes net/mlx5 devices did not detect link status change to "up".
Each shared device was monitoring IBV_EVENT_PORT_{ACTIVE,ERR} and queried the link status upon receiving the event. IBV_EVENT_PORT_ACTIVE is delivered when the logical link status (UP flag) is set, but the physical link status (RUNNING flag) may be down at that time, in which case the new link status would be erroneously considered down.
IBV interface is insufficient for the task. Monitor interface events using Netlink.
Fixes: 198a3c339a8f ("mlx5: handle link status interrupts") Cc: stable@dpdk.org
Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com> Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v22.03-rc2, v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2 |
|
| #
e8482187 |
| 05-Nov-2021 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: check delay drop settings in kernel driver
The delay drop is the common feature managed on per device basis and the kernel driver is responsible one for the initialization and rearming.
B
net/mlx5: check delay drop settings in kernel driver
The delay drop is the common feature managed on per device basis and the kernel driver is responsible one for the initialization and rearming.
By default, the timeout value is set to activate the delay drop when the driver is loaded.
A private flag "dropless_rq" is used to control the rearming. Only when it is on, the rearming will be handled once received a timeout event. Or else, the delay drop will be deactivated after the first timeout occurs and all the Rx queues won't have this feature.
The PMD is trying to query this flag and warn the application when some queues are created with delay drop but the flag is off.
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
|
Revision tags: v21.11-rc1 |
|
| #
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to have 'rte_eth' prefix.
All internal components switched to using new names.
Syntax fixed on lines that this patch touches.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Wisam Jaddo <wisamm@nvidia.com> Acked-by: Rosen Xu <rosen.xu@intel.com> Acked-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
| #
ca1418ce |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: share device context object
Create shared context device in common area and add it as a field of common device. Use this context device in all drivers and remove the ctx field from thei
common/mlx5: share device context object
Create shared context device in common area and add it as a field of common device. Use this context device in all drivers and remove the ctx field from their private structure.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2 |
|
| #
919488fb |
| 21-Jul-2021 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: support Sub-Function
Introduce SF support. Similar to VF, SF on auxiliary bus is a portion of hardware PF, no representor or bonding parameters for SF.
Devargs to support SF: -a auxiliary
net/mlx5: support Sub-Function
Introduce SF support. Similar to VF, SF on auxiliary bus is a portion of hardware PF, no representor or bonding parameters for SF.
Devargs to support SF: -a auxiliary:mlx5_core.sf.8,dv_flow_en=1
New global syntax to support SF: -a bus=auxiliary,name=mlx5_core.sf.8/class=eth/driver=mlx5,dv_flow_en=1
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
| #
56bb3c84 |
| 21-Jul-2021 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: reduce PCI dependency
To support more bus types, remove PCI dependency where possible.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.c
net/mlx5: reduce PCI dependency
To support more bus types, remove PCI dependency where possible.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|