[dpdk-dev] [PATCH 37/41] net/enic: use contiguous allocation for DMA memory

John Daley (johndale) johndale at cisco.com
Mon Mar 5 20:45:07 CET 2018


Hi Anatoly,
Looks good, see inline for details.
Acked-by: John Daley <johndale at cisco.com>

Thanks,
John

> -----Original Message-----
> From: Anatoly Burakov [mailto:anatoly.burakov at intel.com]
> Sent: Saturday, March 03, 2018 5:46 AM
> To: dev at dpdk.org
> Cc: John Daley (johndale) <johndale at cisco.com>; Hyong Youb Kim (hyonkim)
> <hyonkim at cisco.com>; keith.wiles at intel.com; jianfeng.tan at intel.com;
> andras.kovacs at ericsson.com; laszlo.vadkeri at ericsson.com;
> benjamin.walker at intel.com; bruce.richardson at intel.com;
> thomas at monjalon.net; konstantin.ananyev at intel.com;
> kuralamudhan.ramakrishnan at intel.com; louise.m.daly at intel.com;
> nelio.laranjeiro at 6wind.com; yskoh at mellanox.com; pepperjo at japf.ch;
> jerin.jacob at caviumnetworks.com; hemant.agrawal at nxp.com;
> olivier.matz at 6wind.com
> Subject: [PATCH 37/41] net/enic: use contiguous allocation for DMA memory
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
> ---
> 
> Notes:
>     It is not 100% clear that second call to memzone_reserve
>     is allocating DMA memory. Corrections welcome.
The 2nd call is allocating DMA memory so I believe your patch is correct.
> 
>  drivers/net/enic/enic_main.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index
> ec9d343..cb2a7ba 100644
> --- a/drivers/net/enic/enic_main.c
> +++ b/drivers/net/enic/enic_main.c
> @@ -319,7 +319,7 @@ enic_alloc_consistent(void *priv, size_t size,
>  	struct enic *enic = (struct enic *)priv;
>  	struct enic_memzone_entry *mze;
> 
> -	rz = rte_memzone_reserve_aligned((const char *)name,
> +	rz = rte_memzone_reserve_aligned_contig((const char *)name,
>  					 size, SOCKET_ID_ANY, 0,
> ENIC_ALIGN);
>  	if (!rz) {
>  		pr_err("%s : Failed to allocate memory requested for %s\n",
> @@ -787,7 +787,7 @@ int enic_alloc_wq(struct enic *enic, uint16_t queue_idx,
>  		 "vnic_cqmsg-%s-%d-%d", enic->bdf_name, queue_idx,
>  		instance++);
> 
> -	wq->cqmsg_rz = rte_memzone_reserve_aligned((const char *)name,
> +	wq->cqmsg_rz = rte_memzone_reserve_aligned_contig((const char
> *)name,
>  						   sizeof(uint32_t),
>  						   SOCKET_ID_ANY, 0,
>  						   ENIC_ALIGN);
This is a send completion landing spot which is DMA'd to by the NIC so it does have to be contiguous. However the size is only 4 bytes so it might not matter.
> --
> 2.7.4


More information about the dev mailing list