[dpdk-dev,v5,15/70] net/bnx2x: use contiguous allocation for DMA memory
Checks
Commit Message
All hardware drivers should allocate IOVA-contiguous
memzones for their hardware resources.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Santosh Shukla <Santosh.Shukla@caviumnetworks.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
Notes:
v4:
- Use new memzone flag instead of new API
- Remove experimental API from build files
v3:
- Add experimental API to build files
- Moved patch earlier in the patchset
drivers/net/bnx2x/bnx2x.c | 2 +-
drivers/net/bnx2x/bnx2x_rxtx.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
Comments
Compilation error with clang:
09/04/2018 20:00, Anatoly Burakov:
> --- a/drivers/net/bnx2x/bnx2x.c
> +++ b/drivers/net/bnx2x/bnx2x.c
> - z = rte_memzone_reserve_aligned(mz_name, (uint64_t) (size),
> + z = rte_memzone_reserve_aligned_contig(mz_name, (uint64_t)size,
drivers/net/bnx2x/bnx2x.c:180:6: fatal error:
implicit declaration of function 'rte_memzone_reserve_aligned_contig'
is invalid in C99
On 11-Apr-18 10:12 AM, Thomas Monjalon wrote:
> Compilation error with clang:
>
> 09/04/2018 20:00, Anatoly Burakov:
>> --- a/drivers/net/bnx2x/bnx2x.c
>> +++ b/drivers/net/bnx2x/bnx2x.c
>> - z = rte_memzone_reserve_aligned(mz_name, (uint64_t) (size),
>> + z = rte_memzone_reserve_aligned_contig(mz_name, (uint64_t)size,
>
> drivers/net/bnx2x/bnx2x.c:180:6: fatal error:
> implicit declaration of function 'rte_memzone_reserve_aligned_contig'
> is invalid in C99
>
>
>
>
Apologies, missed the rename. This API call doesn't exist any more.
@@ -177,7 +177,7 @@ bnx2x_dma_alloc(struct bnx2x_softc *sc, size_t size, struct bnx2x_dma *dma,
rte_get_timer_cycles());
/* Caller must take care that strlen(mz_name) < RTE_MEMZONE_NAMESIZE */
- z = rte_memzone_reserve_aligned(mz_name, (uint64_t) (size),
+ z = rte_memzone_reserve_aligned_contig(mz_name, (uint64_t)size,
SOCKET_ID_ANY,
0, align);
if (z == NULL) {
@@ -26,7 +26,8 @@ ring_dma_zone_reserve(struct rte_eth_dev *dev, const char *ring_name,
if (mz)
return mz;
- return rte_memzone_reserve_aligned(z_name, ring_size, socket_id, 0, BNX2X_PAGE_SIZE);
+ return rte_memzone_reserve_aligned(z_name, ring_size, socket_id,
+ RTE_MEMZONE_IOVA_CONTIG, BNX2X_PAGE_SIZE);
}
static void