#
b8871a7e |
| 26-Oct-2021 |
Raja Zidane <rzidane@nvidia.com> |
compress/mlx5: fix compression level configuration
The mlx5 compress PMD uses HW acceleration for the compress operations. The mlx5 HW device has no level style mode, which does a tradeoff between t
compress/mlx5: fix compression level configuration
The mlx5 compress PMD uses HW acceleration for the compress operations. The mlx5 HW device has no level style mode, which does a tradeoff between throughput and compression ratio, unlike SW drivers where the CPU is doing the compress, and more CPU effort can cause a better compression ratio. The mlx5 driver wrongly defined the Huffman block size configuration according to the level that doesn't fill the level API requirement for the tradeoff.
Remove the effect of the level configuration in compress operation.
Fixes: 237aad88245b ("compress/mlx5: fix compression level translation") Fixes: 39a2c8715f8f ("compress/mlx5: add transformation operations") Cc: stable@dpdk.org
Signed-off-by: Raja Zidane <rzidane@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
2efd2654 |
| 15-Sep-2021 |
Raja Zidane <rzidane@nvidia.com> |
compress/mlx5: support partial transformation
Currently compress, decompress and dma are allowed only when all 3 capabilities are on. A case where the user wants decompress offload, if decompress ca
compress/mlx5: support partial transformation
Currently compress, decompress and dma are allowed only when all 3 capabilities are on. A case where the user wants decompress offload, if decompress capability is on but one of compress, dma is off, is not allowed. Split compress/decompress/dma support check to allow partial transformations.
Signed-off-by: Raja Zidane <rzidane@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
fc59a1ec |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: share MR mempool registration
Expand the use of mempool registration to MR management for other drivers.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan
common/mlx5: share MR mempool registration
Expand the use of mempool registration to MR management for other drivers.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
9f1d636f |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: share MR management
Add global shared MR cache as a field of common device structure. Move MR management to use this global cache for all drivers.
Signed-off-by: Michael Baum <michaelb
common/mlx5: share MR management
Add global shared MR cache as a field of common device structure. Move MR management to use this global cache for all drivers.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
fb690f71 |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: share MR top-half search function
Add function to search in local liniar cache and use it in the drivers instead of their functions.
Signed-off-by: Michael Baum <michaelba@nvidia.com>
common/mlx5: share MR top-half search function
Add function to search in local liniar cache and use it in the drivers instead of their functions.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
5fbc75ac |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: add global MR cache create function
Add function for global shared MR cache structure initialization. This function include: - btree initialization. - set callbacks for reg and dereg
common/mlx5: add global MR cache create function
Add function for global shared MR cache structure initialization. This function include: - btree initialization. - set callbacks for reg and dereg MR.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
85c7005e |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: add MR control initialization
Add function for MR control structure initialization. This function include: - btree initialization. - dev_gen_ptr initialization.
Signed-off-by: Michae
common/mlx5: add MR control initialization
Add function for MR control structure initialization. This function include: - btree initialization. - dev_gen_ptr initialization.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
fe46b20c |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: share HCA capabilities handle
Add HCA attributes structure as a field of device config structure. It query in common probing, and updates the timestamp format fields.
Each driver use H
common/mlx5: share HCA capabilities handle
Add HCA attributes structure as a field of device config structure. It query in common probing, and updates the timestamp format fields.
Each driver use HCA attributes from common device config structure, instead of query it for itself.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
e35ccf24 |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: share protection domain object
Create shared Protection Domain in common area and add it and its PDN as fields of common device structure.
Use this Protection Domain in all drivers and
common/mlx5: share protection domain object
Create shared Protection Domain in common area and add it and its PDN as fields of common device structure.
Use this Protection Domain in all drivers and remove the PD and PDN fields from their private structure.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.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 ...
|
#
7af08c8f |
| 19-Oct-2021 |
Michael Baum <michaelba@nvidia.com> |
common/mlx5: share basic probing with internal drivers
Create common probing structure that includes, for now, basic probing information detected by the common driver and share it with all the inter
common/mlx5: share basic probing with internal drivers
Create common probing structure that includes, for now, basic probing information detected by the common driver and share it with all the internal drivers.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
bab51810 |
| 05-Oct-2021 |
Raja Zidane <rzidane@nvidia.com> |
compress/mlx5: refactor HW queue object
The mlx5 PMD for compress class uses an MMO WQE operated by the GGA engine in BF devices. Currently, all the MMO WQEs are managed by the SQ object. Starting f
compress/mlx5: refactor HW queue object
The mlx5 PMD for compress class uses an MMO WQE operated by the GGA engine in BF devices. Currently, all the MMO WQEs are managed by the SQ object. Starting from BF3, the queue of the MMO WQEs should be connected to the GGA engine using a new configuration, MMO, that will be supported only in the QP object. The FW introduced new capabilities to define whether the MMO configuration should be configured for the GGA queue. Replace all the GGA queue objects to QP, set MMO configuration according to the new FW capabilities.
Signed-off-by: Raja Zidane <rzidane@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
cbc4c13a |
| 05-Oct-2021 |
Raja Zidane <rzidane@nvidia.com> |
common/mlx5: update MMO HCA capabilities
New MMO HCA capabilities were added and others were renamed. Align hca capabilities with new prm. Add support in DevX interface for changes in HCA capabiliti
common/mlx5: update MMO HCA capabilities
New MMO HCA capabilities were added and others were renamed. Align hca capabilities with new prm. Add support in DevX interface for changes in HCA capabilities.
Signed-off-by: Raja Zidane <rzidane@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
12b253ee |
| 31-Aug-2021 |
Michael Baum <michaelba@nvidia.com> |
compress/mlx5: fix leak on QP setup failure
The QP setup function allocates buffer for its opaque MR and register it into MR structure.
After buffer allocation and before MR registration, it tries
compress/mlx5: fix leak on QP setup failure
The QP setup function allocates buffer for its opaque MR and register it into MR structure.
After buffer allocation and before MR registration, it tries allocate MR Btree. When the MR Btree allocation fails, the buffer was not freed what caused a memory leak.
Allocate the MR Btree before buffer alloction.
Fixes: 0165bccdb45f ("compress/mlx5: add memory region management") Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
237aad88 |
| 29-Jul-2021 |
Raja Zidane <rzidane@nvidia.com> |
compress/mlx5: fix compression level translation
Compression Level is interpreted by each PMD differently. However, lower numbers give faster compression at the expense of compression ratio, while h
compress/mlx5: fix compression level translation
Compression Level is interpreted by each PMD differently. However, lower numbers give faster compression at the expense of compression ratio, while higher numbers may give better compression ratios but are likely slower. The level affects the block size, which affects performance, the bigger the block, the faster the compression is.
The problem was that higher levels caused bigger blocks: size = min_block_size - 1 + level.
the solution is to reverse the above: size = max_block_size + 1 - level.
Fixes: 39a2c8715f8f ("compress/mlx5: add transformation operations") Cc: stable@dpdk.org
Signed-off-by: Raja Zidane <rzidane@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
c87bc83a |
| 01-Jul-2021 |
Michael Baum <michaelba@nvidia.com> |
compress/mlx5: fix overflow in queue size
The mlx5_compress_qp_setup function makes shifting to the numeric constant 1, then sends it as a parameter to rte_calloc function.
The rte_calloc function
compress/mlx5: fix overflow in queue size
The mlx5_compress_qp_setup function makes shifting to the numeric constant 1, then sends it as a parameter to rte_calloc function.
The rte_calloc function expects to get size_t (might be 64 bit) and instead gets a 32-bit variable, because the numeric constant size is a 32-bit. In case the shift is greater than 32 bit and it 64-system, the variable will lose its value even though the function can get 64-bit argument.
Change the size of the numeric constant 1 to size_t.
Fixes: 8619fcd5161b ("compress/mlx5: support queue pair operations") Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
82242186 |
| 21-Jul-2021 |
Xueming Li <xuemingl@nvidia.com> |
compress/mlx5: migrate to bus-agnostic common interface
To support auxiliary bus, upgrade the driver to use mlx5 common driver structure.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: V
compress/mlx5: migrate to bus-agnostic common interface
To support auxiliary bus, upgrade the driver to use mlx5 common driver structure.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
8c090106 |
| 12-Jul-2021 |
Michael Baum <michaelba@nvidia.com> |
compress/mlx5: fix memory region unregistration
The issue can cause illegal physical address access while a huge-page A is released and huge-page B is allocated on the same virtual address. The old
compress/mlx5: fix memory region unregistration
The issue can cause illegal physical address access while a huge-page A is released and huge-page B is allocated on the same virtual address. The old MR can be matched using the virtual address of huge-page B but the HW will access the physical address of huge-page A which is no more part of the DPDK process.
Register a driver callback for memory event in order to free out all the MRs of memory that is going to be freed from the dpdk process.
Fixes: f8c97babc9f4 ("compress/mlx5: add data-path functions") Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
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 ...
|
#
10787aa2 |
| 14-Mar-2021 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
compress/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
compress/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: 8619fcd5161b ("compress/mlx5: support queue pair operations") 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 ...
|
#
1b9e9826 |
| 09-Mar-2021 |
Thomas Monjalon <thomas@monjalon.net> |
common/mlx5: remove extra line feed in log messages
The macro DRV_LOG already includes a terminating line feed character defined in PMD_DRV_LOG_. The extra line feeds added in some messages are remo
common/mlx5: remove extra line feed in log messages
The macro DRV_LOG already includes a terminating line feed character defined in PMD_DRV_LOG_. The extra line feeds added in some messages are removed.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
c0249919 |
| 04-Feb-2021 |
Matan Azrad <matan@nvidia.com> |
compress/mlx5: fix asserts
When ASSERT is enabled for compilation, the 2 usages of assert mechanism in the driver are failed due to typos.
Fix the typos.
Fixes: f8c97babc9f4 ("compress/mlx5: add d
compress/mlx5: fix asserts
When ASSERT is enabled for compilation, the 2 usages of assert mechanism in the driver are failed due to typos.
Fix the typos.
Fixes: f8c97babc9f4 ("compress/mlx5: add data-path functions") Fixes: 37862dafcbed ("compress/mlx5: support 32-bit systems")
Reported-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Signed-off-by: Matan Azrad <matan@nvidia.com> Tested-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
384bac8d |
| 20-Jan-2021 |
Matan Azrad <matan@nvidia.com> |
compress/mlx5: add supported capabilities
Add all the capabilities supported by the device.
Add the driver documentations.
Signed-off-by: Matan Azrad <matan@nvidia.com> Acked-by: Viacheslav Ovsiie
compress/mlx5: add supported capabilities
Add all the capabilities supported by the device.
Add the driver documentations.
Signed-off-by: Matan Azrad <matan@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
37862daf |
| 20-Jan-2021 |
Matan Azrad <matan@nvidia.com> |
compress/mlx5: support 32-bit systems
In order to support 32-bit systems, the 8B doorbell write should be done by 2 4B stores.
The order between the store is important, that's why memory barrier sh
compress/mlx5: support 32-bit systems
In order to support 32-bit systems, the 8B doorbell write should be done by 2 4B stores.
The order between the store is important, that's why memory barrier should be used between them.
The doorbell address is shared between all the queues, that's why a lock should wrap the 2 stores.
Signed-off-by: Matan Azrad <matan@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|