#
eeded204 |
| 26-Apr-2021 |
David Marchand <david.marchand@redhat.com> |
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 <david.marchand@redhat.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
c31f3f7f |
| 04-May-2021 |
Shiri Kuzin <shirik@nvidia.com> |
common/mlx5: share Verbs device match function
The get_ib_device_match function iterates over the list of ib devices returned by the get_device_list glue function and returns the ib device matching
common/mlx5: share Verbs device match function
The get_ib_device_match function iterates over the list of ib devices returned by the get_device_list glue function and returns the ib device matching the provided address.
Since this function is in use by several drivers, in this patch we share the function in common part.
Signed-off-by: Shiri Kuzin <shirik@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
330a70b7 |
| 07-Apr-2021 |
Suanming Mou <suanmingm@nvidia.com> |
regex/mlx5: add data path scattered mbuf process
UMR (User-Mode Memory Registration) WQE can present data buffers scattered within multiple mbufs with single indirect mkey. Take advantage of the UMR
regex/mlx5: add data path scattered mbuf process
UMR (User-Mode Memory Registration) WQE can present data buffers scattered within multiple mbufs with single indirect mkey. Take advantage of the UMR WQE, scattered mbuf in one operation can be presented to an indirect mkey. The RegEx which only accepts one mkey can now process the whole scattered mbuf in one operation.
The maximum scattered mbuf can be supported in one UMR WQE is now defined as 64. The mbufs from multiple operations can be combined into one UMR WQE as well if there is enough space in the KLM array, since the operations can address their own mbuf's content by the mkey's address and length. However, one operation's scattered mbuf's can't be placed in two different UMR WQE's KLM array, if the UMR WQE's KLM does not has enough free space for one operation, the extra UMR WQE will be engaged.
In case the UMR WQE's indirect mkey will be over wrapped by the SQ's WQE move, the mkey's index used by the UMR WQE should be the index of last the RegEX WQE in the operations. As one operation consumes one WQE set, build the RegEx WQE by reverse helps address the mkey more efficiently. Once the operations in one burst consumes multiple mkeys, when the mkey KLM array is full, the reverse WQE set index will always be the last of the new mkey's for the new UMR WQE.
In GGA mode, the SQ WQE's memory layout becomes UMR/NOP and RegEx WQE by interleave. The UMR and RegEx WQE can be called as WQE set. The SQ's pi and ci will also be increased as WQE set not as WQE.
For operations don't have scattered mbuf, uses the mbuf's mkey directly, the WQE set combination is NOP + RegEx. For operations have scattered mbuf but share the UMR WQE with others, the WQE set combination is NOP + RegEx. For operations complete the UMR WQE, the WQE set combination is UMR + RegEx.
Signed-off-by: John Hurley <jhurley@nvidia.com> Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
dd25bd20 |
| 14-Mar-2021 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
regex/mlx5: support timestamp format
This patch adds support for the timestamp format settings for the receive and send queues. If the firmware version x.30.1000 or above is installed and the NIC ti
regex/mlx5: support timestamp format
This patch adds support for the timestamp format settings for the receive and send queues. If the firmware version x.30.1000 or above is installed and the NIC timestamps are configured with the real-time format, the default zero values for newly added fields cause the queue creation to fail.
The patch queries the timestamp formats supported by the hardware and sets the configuration values in queue context accordingly.
Fixes: 92f2c6a30fe0 ("regex/mlx5: add send queue") Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
f324162e |
| 07-Jan-2021 |
Ori Kam <orika@nvidia.com> |
regex/mlx5: support combined rule file
The rof file holds programming instructions for a given HW version. In order to support future generation of HW it was decided that the rof file will hold numb
regex/mlx5: support combined rule file
The rof file holds programming instructions for a given HW version. In order to support future generation of HW it was decided that the rof file will hold number of rule configurations, and the driver will use the one that matches the HW version.
In current code we force sync after each write block. This has impact on performance.
The solution is to move the sync to the end of the entire programming sequence.
Signed-off-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
3ddf5706 |
| 06-Jan-2021 |
Michael Baum <michaelba@nvidia.com> |
regex/mlx5: move DevX CQ creation to common
Using common function for DevX CQ creation.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
|
#
3423d02b |
| 18-Nov-2020 |
Michael Baum <michaelba@nvidia.com> |
regex/mlx5: fix crash on probe failure
The mlx5_regex_pci_probe function allocates a mlx5_regex_priv structure using rte_zmalloc.
If the allocation fails, the function jumps to the dev_error label
regex/mlx5: fix crash on probe failure
The mlx5_regex_pci_probe function allocates a mlx5_regex_priv structure using rte_zmalloc.
If the allocation fails, the function jumps to the dev_error label in order to release previously allocated resources in the function. However, in the dev_error label it attempts to refer to the internal fields of the priv structure and if its allocation fails (as in this case) it is actually dereferencing to NULL.
Replace the jump with an error label.
Fixes: 1db6ebd4ef58 ("regex/mlx5: fix crash on initialization failure") Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
e8f05161 |
| 10-Nov-2020 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
regex/mlx5: fix UAR allocation
This patch provides the UAR allocation workaround for the hosts where UAR allocation with Write-Combining memory mapping type fails.
Fixes: b34d816363b5 ("regex/mlx5:
regex/mlx5: fix UAR allocation
This patch provides the UAR allocation workaround for the hosts where UAR allocation with Write-Combining memory mapping type fails.
Fixes: b34d816363b5 ("regex/mlx5: support rules import") Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
6ca37b06 |
| 26-Oct-2020 |
Raslan Darawsheh <rasland@nvidia.com> |
common/mlx5: add ConnectX-7 and Bluefield-3 device IDs
This adds the ConnectX-7 and Bluefield-3 device ids to the list of supported Mellanox devices that run the MLX5 PMDs. The devices is still in d
common/mlx5: add ConnectX-7 and Bluefield-3 device IDs
This adds the ConnectX-7 and Bluefield-3 device ids to the list of supported Mellanox devices that run the MLX5 PMDs. The devices is still in development stage.
Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
cda883bb |
| 05-Oct-2020 |
Yuval Avnery <yuvalav@nvidia.com> |
regex/mlx5: add dynamic memory registration to datapath
Currently job data is being copied to pre-registered buffer. To avoid memcpy on the datapath, use dynamic memory registration.
This change wi
regex/mlx5: add dynamic memory registration to datapath
Currently job data is being copied to pre-registered buffer. To avoid memcpy on the datapath, use dynamic memory registration.
This change will reduce latency when sending regex jobs. The first few jobs may have high latency due to registration, but assuming all following mbufs will arrive from the same mempool/hugepage, there will be no further memory registration.
Signed-off-by: Yuval Avnery <yuvalav@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
50458c9d |
| 05-Aug-2020 |
Thomas Monjalon <thomas@monjalon.net> |
regex/mlx5: fix registered driver name
The driver name was registered as "net_mlx5_regex". It is renamed as "regex_mlx5". The same name is used in mlx5_regex_driver.pci_driver.driver.name, instead o
regex/mlx5: fix registered driver name
The driver name was registered as "net_mlx5_regex". It is renamed as "regex_mlx5". The same name is used in mlx5_regex_driver.pci_driver.driver.name, instead of "mlx5_regex", for consistency.
The string used for log registration (pmd.regex.mlx5) could be derived from the driver name. A macro is created so name definitions are close.
Fixes: cfc672a90b74 ("regex/mlx5: support probing")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ori Kam <orika@mellanox.com>
show more ...
|
#
392bf908 |
| 27-Jul-2020 |
Parav Pandit <parav@mellanox.com> |
common/mlx5: register class drivers through common layer
Migrate mlx5 net, vdpa and regex PMD to start using mlx5 common class driver.
Signed-off-by: Parav Pandit <parav@mellanox.com> Acked-by: Mat
common/mlx5: register class drivers through common layer
Migrate mlx5 net, vdpa and regex PMD to start using mlx5 common class driver.
Signed-off-by: Parav Pandit <parav@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
82088001 |
| 27-Jul-2020 |
Parav Pandit <parav@mellanox.com> |
common/mlx5: avoid class constructor priority
mlx5_common is shared library between mlx5 net, VDPA and regex PMD. It is better to use common initialization helper instead of using RTE_PRIORITY_CLASS
common/mlx5: avoid class constructor priority
mlx5_common is shared library between mlx5 net, VDPA and regex PMD. It is better to use common initialization helper instead of using RTE_PRIORITY_CLASS priority.
Suggested-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Parav Pandit <parav@mellanox.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
1db6ebd4 |
| 27-Jul-2020 |
Parav Pandit <parav@mellanox.com> |
regex/mlx5: fix crash on initialization failure
When fail to initialize the device, avoid segmentation fault while accessing uninitialized priv.
Fixes: cfc672a90b74 ("regex/mlx5: support probing")
regex/mlx5: fix crash on initialization failure
When fail to initialize the device, avoid segmentation fault while accessing uninitialized priv.
Fixes: cfc672a90b74 ("regex/mlx5: support probing")
Signed-off-by: Parav Pandit <parav@mellanox.com>
show more ...
|
#
aea75c5a |
| 20-Jul-2020 |
Ori Kam <orika@mellanox.com> |
regex/mlx5: add empty start/stop/close
Add the start, stop and close functions. In current implementation they are empty functions and are only exists in order that when called from rte level, the f
regex/mlx5: add empty start/stop/close
Add the start, stop and close functions. In current implementation they are empty functions and are only exists in order that when called from rte level, the function will return with success code.
Signed-off-by: Ori Kam <orika@mellanox.com>
show more ...
|
#
0db041e7 |
| 20-Jul-2020 |
Yuval Avnery <yuvalav@mellanox.com> |
regex/mlx5: support dequeue
Implement dequeue function for the regex API.
Signed-off-by: Yuval Avnery <yuvalav@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
|
#
4d4e245a |
| 20-Jul-2020 |
Yuval Avnery <yuvalav@mellanox.com> |
regex/mlx5: support enqueue
Will look for a free SQ to send the job on. doorbell will be given when sq is full, or no more jobs on the burst.
Signed-off-by: Yuval Avnery <yuvalav@mellanox.com> Acke
regex/mlx5: support enqueue
Will look for a free SQ to send the job on. doorbell will be given when sq is full, or no more jobs on the burst.
Signed-off-by: Yuval Avnery <yuvalav@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
show more ...
|
#
fbc8c700 |
| 20-Jul-2020 |
Ori Kam <orika@mellanox.com> |
regex/mlx5: add completion queue creation
This commit adds the creation of CQ
Signed-off-by: Ori Kam <orika@mellanox.com>
|
#
b34d8163 |
| 20-Jul-2020 |
Francis Kelly <fkelly@mellanox.com> |
regex/mlx5: support rules import
This commit introduce the ability to program rules to the RegEx engine.
Signed-off-by: Francis Kelly <fkelly@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
|
#
e3dbbf71 |
| 20-Jul-2020 |
Ori Kam <orika@mellanox.com> |
regex/mlx5: support configuration
This commit implements the configure function. This function is responsible to configure the RegEx engine.
Signed-off-by: Ori Kam <orika@mellanox.com>
|
#
9428310a |
| 20-Jul-2020 |
Ori Kam <orika@mellanox.com> |
regex/mlx5: add engine status check
This commit checks the engine status.
Signed-off-by: Ori Kam <orika@mellanox.com>
|
#
c126512b |
| 20-Jul-2020 |
Ori Kam <orika@mellanox.com> |
regex/mlx5: support info query
This commit adds the get info function.
Signed-off-by: Ori Kam <orika@mellanox.com>
|
#
cfc672a9 |
| 20-Jul-2020 |
Ori Kam <orika@mellanox.com> |
regex/mlx5: support probing
This commit adds the probe function to the RegEx PMD.
Signed-off-by: Parav Pandit <parav@mellanox.com> Signed-off-by: Ori Kam <orika@mellanox.com>
|
#
215b1223 |
| 20-Jul-2020 |
Yuval Avnery <yuvalav@mellanox.com> |
regex/mlx5: add log macros
Add the MLX5_REGEX_LOG macro which should be used for error prints.
Signed-off-by: Yuval Avnery <yuvalav@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
|
#
cf9b3c36 |
| 20-Jul-2020 |
Yuval Avnery <yuvalav@mellanox.com> |
regex/mlx5: introduce driver for BlueField 2
This commit introduce the RegEx poll mode drivers class, and adds Mellanox RegEx PMD.
Signed-off-by: Yuval Avnery <yuvalav@mellanox.com> Signed-off-by:
regex/mlx5: introduce driver for BlueField 2
This commit introduce the RegEx poll mode drivers class, and adds Mellanox RegEx PMD.
Signed-off-by: Yuval Avnery <yuvalav@mellanox.com> Signed-off-by: Ori Kam <orika@mellanox.com>
show more ...
|