| #
7fc4c099 |
| 24-Mar-2022 |
Long Li <[email protected]> |
net/netvsc: fix hot adding multiple VF PCI devices
This patch fixes two issues with hot removing/adding a VF PCI device: 1. The original device argument is lost when it's hot added 2. If there are m
net/netvsc: fix hot adding multiple VF PCI devices
This patch fixes two issues with hot removing/adding a VF PCI device: 1. The original device argument is lost when it's hot added 2. If there are multiple VFs hot adding at the same time, some of the VFs may not get added successfully because only one single VF status is stored in the netvsc.
Fix these by storing the original device arguments and maintain a list of hot add contexts to deal with multiple VF devices.
Fixes: a2a23a794b ("net/netvsc: support VF device hot add/remove") Cc: [email protected]
Signed-off-by: Long Li <[email protected]>
show more ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1 |
|
| #
d61138d4 |
| 22-Oct-2021 |
Harman Kalra <[email protected]> |
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers acce
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers access the interrupt handle fields.
Signed-off-by: Harman Kalra <[email protected]> Acked-by: Hyong Youb Kim <[email protected]> Signed-off-by: David Marchand <[email protected]> Tested-by: Raslan Darawsheh <[email protected]>
show more ...
|
| #
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <[email protected]> |
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 <[email protected]> Acked-by: Tyler Retzlaff <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Wisam Jaddo <[email protected]> Acked-by: Rosen Xu <[email protected]> Acked-by: Chenbo Xia <[email protected]> Acked-by: Hemant Agrawal <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2 |
|
| #
eeded204 |
| 26-Apr-2021 |
David Marchand <[email protected]> |
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new macros: - RTE_LOG_REGISTER_DEFAULT can be used when a single logtype is used in a component. It is associated to the default name provided by the build system, - RTE_LOG_REGISTER_SUFFIX can be used when multiple logtypes are used, and then the passed name is appended to the default name,
RTE_LOG_REGISTER is left untouched for existing external users and for components that do not comply with the convention.
There is a new Meson variable log_prefix to adapt the default name for baseband (pmd.bb.), bus (no pmd.) and mempool (no pmd.) classes.
Note: achieved with below commands + reverted change on net/bonding + edits on crypto/virtio, compress/mlx5, regex/mlx5
$ git grep -l RTE_LOG_REGISTER drivers/ | while read file; do pattern=${file##drivers/}; class=${pattern%%/*}; pattern=${pattern#$class/}; drv=${pattern%%/*}; case "$class" in baseband) pattern=pmd.bb.$drv;; bus) pattern=bus.$drv;; mempool) pattern=mempool.$drv;; *) pattern=pmd.$class.$drv;; esac sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
$ git grep -l RTE_LOG_REGISTER lib/ | while read file; do pattern=${file##lib/}; pattern=lib.${pattern%%/*}; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
Signed-off-by: David Marchand <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v21.05-rc1 |
|
| #
bd063651 |
| 26-Mar-2021 |
Ferruh Yigit <[email protected]> |
drivers: add missing includes
These headers are used but not included explicitly, including them.
"arpa/inet.h" is included for 'htons' and friends. "netinet/in.h" is included for 'IPPROTO_IP'.
Si
drivers: add missing includes
These headers are used but not included explicitly, including them.
"arpa/inet.h" is included for 'htons' and friends. "netinet/in.h" is included for 'IPPROTO_IP'.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Hemant Agrawal <[email protected]> Acked-by: Rasesh Mody <[email protected]>
show more ...
|
| #
b797b049 |
| 08-Apr-2021 |
Stephen Hemminger <[email protected]> |
net/netvsc: fix log format
The PMD_DRV_LOG macro in netvsc (like other drivers) adds a newline to the log message as part of the macro expansion; therefore the message should not have its own newlin
net/netvsc: fix log format
The PMD_DRV_LOG macro in netvsc (like other drivers) adds a newline to the log message as part of the macro expansion; therefore the message should not have its own newline.
In a couple places, log messages were split across source lines which can make looking them up in the source tree harder.
Fixes: a2a23a794b3a ("net/netvsc: support VF device hot add/remove") Cc: [email protected]
Signed-off-by: Stephen Hemminger <[email protected]> Acked-by: Long Li <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <[email protected]> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]> Acked-by: Thomas Monjalon <[email protected]> Acked-by: Steven Webster <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1 |
|
| #
a2a23a79 |
| 21-Dec-2020 |
Long Li <[email protected]> |
net/netvsc: support VF device hot add/remove
When a VF device is present, netvsc can send or receive packets over the VF device. The VF device driver communicates directly with the PCI device via th
net/netvsc: support VF device hot add/remove
When a VF device is present, netvsc can send or receive packets over the VF device. The VF device driver communicates directly with the PCI device via the PF from the host hypervisor. This is faster than exchanging data with netvsp via vmbus, i.e. syntheic path.
In Azure and Hyper-v environments, VF device can be hot added or hot removed at anytime while guest VM is running. This patch improves netvsc to support VF device hot add/remove.
1. netvsc monitors all system hot add activities over the PCI bus. When it detects a VF device is added to the system and is managed under this netvsc device, it asks EAL to probe and start this VF device, then it attaches and switches data path to the VF device.
2. After a VF device is attached to netvsc, netvsc monitors this device on hot remove. When this VF device is hot removed, netvsc switches data path to synthetic, stops this VF device and removes it from EAL.
3. If any failure happens during a VF device hot remove or add, the netvsc falls back to synthetic path for all data traffic.
Signed-off-by: Long Li <[email protected]>
show more ...
|
|
Revision tags: v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2 |
|
| #
096b31fc |
| 31-Oct-2020 |
Long Li <[email protected]> |
net/netvsc: control use of external mbuf on Rx
When receiving packets, netvsp puts data in a buffer mapped through UIO. Depending on packet size, netvsc may attach the buffer as an external mbuf. Th
net/netvsc: control use of external mbuf on Rx
When receiving packets, netvsp puts data in a buffer mapped through UIO. Depending on packet size, netvsc may attach the buffer as an external mbuf. This is not a problem if this mbuf is consumed in the application, and the application can correctly read data out of an external mbuf.
However, there are two problems with data in an external mbuf. 1. Due to the limitation of the kernel UIO implementation, physical address of this external buffer is not exposed to the user-mode. If this mbuf is passed to another driver, the other driver is unable to map this buffer to iova. 2. Some DPDK applications are not aware of external mbuf, and may bug when they receive an mbuf with external buffer attached.
Introduce a driver parameter "rx_extmbuf_enable" to control if netvsc should use external mbuf for receiving packets. The default value is 0. (netvsc doesn't use external mbuf, it always allocates mbuf and copy data to mbuf) A non-zero value tells netvsc to attach external buffers to mbuf on receiving packets, thus avoid copying memory.
Signed-off-by: Long Li <[email protected]>
show more ...
|
| #
74a5a666 |
| 31-Oct-2020 |
Stephen Hemminger <[email protected]> |
net/netvsc: allow setting Rx and Tx copy break
The values for Rx and Tx copy break should be tunable rather than hard coded constants.
The rx_copybreak sets the threshold where the driver uses an e
net/netvsc: allow setting Rx and Tx copy break
The values for Rx and Tx copy break should be tunable rather than hard coded constants.
The rx_copybreak sets the threshold where the driver uses an external mbuf to avoid having to copy data. Setting 0 for copybreak will cause driver to always create an external mbuf. Setting a value greater than the MTU would prevent it from ever making an external mbuf and always copy. The default value is 256 (bytes).
Likewise the tx_copybreak sets the threshold where the driver aggregates multiple small packets into one request. If tx_copybreak is 0 then each packet goes as a VMBus request (no copying). If tx_copybreak is set larger than the MTU, then all packets smaller than the chunk size of the VMBus send buffer will be copied; larger packets always have to go as a single direct request. The default value is 512 (bytes).
Signed-off-by: Stephen Hemminger <[email protected]> Signed-off-by: Long Li <[email protected]>
show more ...
|
|
Revision tags: v20.11-rc1 |
|
| #
f30e69b4 |
| 14-Oct-2020 |
Ferruh Yigit <[email protected]> |
ethdev: add device flag to bypass auto-filled queue xstats
Queue stats are stored in 'struct rte_eth_stats' as array and array size is defined by 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag.
As
ethdev: add device flag to bypass auto-filled queue xstats
Queue stats are stored in 'struct rte_eth_stats' as array and array size is defined by 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag.
As a result of technical board discussion, decided to remove the queue statistics from 'struct rte_eth_stats' in the long term.
Instead PMDs should represent the queue statistics via xstats, this gives more flexibility on the number of the queues supported.
Currently queue stats in the xstats are filled by ethdev layer, using some basic stats, when queue stats removed from basic stats the responsibility to fill the relevant xstats will be pushed to the PMDs.
During the switch period, temporary 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' device flag is created. Initially all PMDs using xstats set this flag. The PMDs implemented queue stats in the xstats should clear the flag.
When all PMDs switch to the xstats for the queue stats, queue stats related fields from 'struct rte_eth_stats' will be removed, as well as 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' flag. Later 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag also can be removed.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Haiyue Wang <[email protected]> Acked-by: Xiao Wang <[email protected]> Acked-by: Thomas Monjalon <[email protected]>
show more ...
|
| #
62024eb8 |
| 15-Oct-2020 |
Ivan Ilchenko <[email protected]> |
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if ca
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if case of error conditions.
Signed-off-by: Ivan Ilchenko <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
8a5a0aad |
| 16-Oct-2020 |
Thomas Monjalon <[email protected]> |
ethdev: allow close function to return an error
The API function rte_eth_dev_close() was returning void. The return type is changed to int for notifying of errors.
If an error happens during a clos
ethdev: allow close function to return an error
The API function rte_eth_dev_close() was returning void. The return type is changed to int for notifying of errors.
If an error happens during a close operation, the status of the port is undefined, a maximum of resources having been freed.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Liron Himi <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
0607dadf |
| 16-Oct-2020 |
Thomas Monjalon <[email protected]> |
ethdev: reset all when releasing a port
The function rte_eth_dev_release_port() is partially resetting the struct rte_eth_dev. The drivers were completing this reset with more pointers set to NULL i
ethdev: reset all when releasing a port
The function rte_eth_dev_release_port() is partially resetting the struct rte_eth_dev. The drivers were completing this reset with more pointers set to NULL in the close or remove operations.
More pointers are reset at ethdev level, and some redundant assignments are removed from PMDs.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Ajit Khaparde <[email protected]>
show more ...
|
| #
b8f5d2ae |
| 16-Oct-2020 |
Thomas Monjalon <[email protected]> |
ethdev: remove forcing stopped state upon close
When closing a port, it is supposed to be already stopped, and marked as such with "dev_started" state zeroed by the stop API.
Resetting "dev_started
ethdev: remove forcing stopped state upon close
When closing a port, it is supposed to be already stopped, and marked as such with "dev_started" state zeroed by the stop API.
Resetting "dev_started" before calling the driver close operation was hiding the case of not properly stopped port being closed. The flag "dev_started" is not changed anymore in "rte_eth_dev_close()".
In case the "dev_stop" function is called from "dev_close", bypassing "rte_eth_dev_stop()" API, the "dev_started" state must be explicitly reset in the PMD in order to keep the same behaviour.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]>
show more ...
|
| #
30410493 |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
drivers/net: check process type in close operation
The secondary processes are not allowed to release shared resources. Only process-private resources should be freed in a secondary process. Most of
drivers/net: check process type in close operation
The secondary processes are not allowed to release shared resources. Only process-private resources should be freed in a secondary process. Most of the time, there is no process-private resource, so the close operation is just forbidden in a secondary process.
After adding proper check in the port close functions, some redundant checks in the device remove functions are dropped.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Reviewed-by: Sachin Saxena <[email protected]> Reviewed-by: Ajit Khaparde <[email protected]> Reviewed-by: Liron Himi <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
68f578bf |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
drivers/net: accept removing device without any port
The ports can be closed (i.e. completely released) before removing the whole device. Such case was wrongly considered an error by some drivers.
drivers/net: accept removing device without any port
The ports can be closed (i.e. completely released) before removing the whole device. Such case was wrongly considered an error by some drivers.
If the device supports only one port, there is nothing much to free after the port is closed.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Reviewed-by: Sachin Saxena <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
fbd19135 |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed. It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free o
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed. It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free only queues when closing a port. The new behaviour is calling rte_eth_dev_release_port() which does three more tasks: - trigger event callback - reset state and few pointers - free all generic port resources
The private port resources must be released in the .dev_close callback.
The .remove callback should: - call .dev_close callback - call rte_eth_dev_release_port() - free multi-port device shared resources
Despite waiting two years, some drivers have not migrated, so they may hit issues with the incompatible new behaviour. After sending emails, adding logs, and announcing the deprecation, the only last solution is to declare these drivers as unmaintained: ionic, liquidio, nfp Below is a summary of what to implement in those drivers.
* The freeing of private port resources must be moved from the ".remove(device)" function to the ".dev_close(port)" function.
* If a generic resource (.mac_addrs or .hash_mac_addrs) cannot be freed, it must be set to NULL in ".dev_close" function to protect from subsequent rte_eth_dev_release_port() freeing.
* Note 1: The generic resources are freed in rte_eth_dev_release_port(), after ".dev_close" is called in rte_eth_dev_close(), but not when calling ".dev_close" directly from the ".remove" PMD function. That's why rte_eth_dev_release_port() must still be called explicitly from ".remove(device)" after calling the ".dev_close" PMD function.
* Note 2: If a device can have multiple ports, the common resources must be freed only in the ".remove(device)" function.
* Note 3: The port is supposed to be in a stopped state when it is closed. If it is not the case, it is free to the PMD implementation how to react when trying to close a non-stopped port: either try to stop it automatically or just return an error.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Liron Himi <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
b142387b |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
ethdev: allow drivers to return error on close
The device operation .dev_close was returning void. This driver interface is changed to return an int.
Note that the API rte_eth_dev_close() is still
ethdev: allow drivers to return error on close
The device operation .dev_close was returning void. This driver interface is changed to return an int.
Note that the API rte_eth_dev_close() is still returning void, although a deprecation notice is pending to change it as well.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Reviewed-by: Sachin Saxena <[email protected]> Reviewed-by: Liron Himi <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
cbfc6111 |
| 09-Sep-2020 |
Ferruh Yigit <[email protected]> |
ethdev: move inline device operations
This patch is a preparation to hide the 'struct eth_dev_ops' from applications by moving some device operations from 'struct eth_dev_ops' to 'struct rte_eth_dev
ethdev: move inline device operations
This patch is a preparation to hide the 'struct eth_dev_ops' from applications by moving some device operations from 'struct eth_dev_ops' to 'struct rte_eth_dev'.
Mentioned ethdev APIs are in the data path and implemented as inline because of performance reasons.
Exposing 'struct eth_dev_ops' to applications is bad because it is a contract between ethdev and PMDs, not really needs to be known by applications, also changes in the struct causing ABI breakages which shouldn't.
To be able to both keep APIs inline and hide the 'struct eth_dev_ops', moving device operations used in ethdev inline APIs to 'struct rte_eth_dev' to the same level with Rx/Tx burst functions.
The list of dev_ops moved: eth_rx_queue_count_t rx_queue_count; eth_rx_descriptor_done_t rx_descriptor_done; eth_rx_descriptor_status_t rx_descriptor_status; eth_tx_descriptor_status_t tx_descriptor_status;
Signed-off-by: Ferruh Yigit <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: David Marchand <[email protected]> Acked-by: Sachin Saxena <[email protected]>
show more ...
|
|
Revision tags: v20.08, v20.08-rc4, v20.08-rc3, v20.08-rc2, v20.08-rc1 |
|
| #
9c99878a |
| 01-Jul-2020 |
Jerin Jacob <[email protected]> |
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, regist
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, registering it and setting its level in the constructor context.
Signed-off-by: Jerin Jacob <[email protected]> Acked-by: Adam Dybkowski <[email protected]> Acked-by: Sachin Saxena <[email protected]> Acked-by: Akhil Goyal <[email protected]>
show more ...
|
|
Revision tags: v20.05, v20.05-rc4, v20.05-rc3 |
|
| #
a4f53bec |
| 19-May-2020 |
Stephen Hemminger <[email protected]> |
net/netvsc: do not query VF link state
When the primary device link state is queried, there is no need to query the VF state as well. The application only sees the state of the synthetic device.
Fi
net/netvsc: do not query VF link state
When the primary device link state is queried, there is no need to query the VF state as well. The application only sees the state of the synthetic device.
Fixes: dc7680e8597c ("net/netvsc: support integrated VF") Cc: [email protected]
Signed-off-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
b757deb8 |
| 19-May-2020 |
Stephen Hemminger <[email protected]> |
net/netvsc: change datapath logging
The PMD_TX_LOG and PMD_RX_LOG can hide errors since this debug log is typically disabled. Change the code to use PMD_DRV_LOG for errors.
Under load, the ring buf
net/netvsc: change datapath logging
The PMD_TX_LOG and PMD_RX_LOG can hide errors since this debug log is typically disabled. Change the code to use PMD_DRV_LOG for errors.
Under load, the ring buffer to the host can fill. Add some statistics to estimate the impact and see other errors.
Signed-off-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
a41ef8ee |
| 19-May-2020 |
Stephen Hemminger <[email protected]> |
net/netvsc: implement descriptor status
These functions are useful for applications and debugging. The netvsc PMD also transparently handles the rx/tx descriptor functions for underlying VF device.
net/netvsc: implement descriptor status
These functions are useful for applications and debugging. The netvsc PMD also transparently handles the rx/tx descriptor functions for underlying VF device.
Signed-off-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
c7b82b14 |
| 19-May-2020 |
Stephen Hemminger <[email protected]> |
net/netvsc: support per-queue info requests
There is not a lot of info here from this driver. But worth supporting these additional info queries.
Signed-off-by: Stephen Hemminger <stephen@networkpl
net/netvsc: support per-queue info requests
There is not a lot of info here from this driver. But worth supporting these additional info queries.
Signed-off-by: Stephen Hemminger <[email protected]>
show more ...
|