[dpdk-dev] [PATCH v5 0/4] Memory corruption due to HW rings allocation

Ferruh Yigit ferruh.yigit at intel.com
Tue Jun 23 15:53:13 CEST 2020


On 6/23/2020 2:42 PM, Renata Saiakhova wrote:
> igb and ixgbe and some other drivers allocate HW rings using
> rte_eth_dma_zone_reserve(),
> which checks first if the memzone exists for a given name, consisting of port
> id, queue_id, rx/tx direction, but not for the size, alignment, and socket_id.
> If the memzone with a given name exists it is returned, otherwise it is
> allocated.
> Disconnecting dpdk port from one type of interface (igb) and connecting it
> to another type of interface (ixgbe) for the same port id, potentially creates
> memory overlap and corruption, because it may require memzone of bigger size.
> That's what is happening from switching from igb to ixgbe having the same port
> id.
> 
> v4->v5: rte_eth_dma_zone_free() marked as __rte_internal instead of
>         __rte_experimental
> v3->v4: Improve return code in rte_eth_dma_zone_free() in case mz is not found;
>         Release explicitly i40e Flow Director rx/tx rings by calling
>         rte_eth_dma_zone_free().
> v2->v3: Remove #undef ETH_DMA_MZONE_NAME and minor changes in code standard.
> v1->v2: Minor changes on code standard and additional fixes in i40e em and ice
>         drivers.
> 
> Renata Saiakhova (4):
>   ethdev: add function to release HW rings
>   drivers/net: fix in igb and ixgbe HW rings memory
>   drivers/net: fix in i40e HW rings memory overlap
>   drivers/net: fix in em and ice HW rings memory overlap

I think good to keep driver patches separate to help the review and acks, but we
can squash them into single patch while merging.


More information about the dev mailing list