[dpdk-dev] [PATCH v1 1/2] net/af_xdp: remove resources when port is closed

Ye Xiaolong xiaolong.ye at intel.com
Tue Apr 30 10:37:31 CEST 2019


On 04/30, Ferruh Yigit wrote:
>On 4/30/2019 3:06 AM, Ye Xiaolong wrote:
>> Hi, Ferruh
>> 
>> On 04/29, Ferruh Yigit wrote:
>>> On 4/26/2019 6:09 AM, Xiaolong Ye wrote:
>>>> Since 18.11, it is suggested that driver should release all its private
>>>> resources at the dev_close routine. So all resources previously released
>>>> in remove routine are now released at the dev_close routine, and the
>>>> dev_close routine will be called in driver remove routine in order to
>>>> support removing a device without closing its ports.
>>>>
>>>> Above behavior changes are supported by setting RTE_ETH_DEV_CLOSE_REMOVE
>>>> flag during probe stage.
>>>>
>>>> Signed-off-by: Xiaolong Ye <xiaolong.ye at intel.com>
>>>
>>> <...>
>>>
>>>> @@ -936,14 +940,7 @@ rte_pmd_af_xdp_remove(struct rte_vdev_device *dev)
>>>>  	if (eth_dev == NULL)
>>>>  		return -1;
>>>>  
>>>> -	internals = eth_dev->data->dev_private;
>>>> -
>>>> -	rte_ring_free(internals->umem->buf_ring);
>>>> -	rte_memzone_free(internals->umem->mz);
>>>> -	rte_free(internals->umem);
>>>> -
>>>> -	rte_eth_dev_release_port(eth_dev);
>>>
>>> I thinks we should keep 'rte_eth_dev_release_port()' in '.remove()' path,
>>> the 'RTE_ETH_DEV_CLOSE_REMOVE' flag will take care of this in
>>> 'rte_eth_dev_close()' but still needed in  '.remove()' path.
>>>
>> 
>> remove() would call eth_dev_close which includes the rte_eth_dev_release_port().
>
>'eth_dev_close()' doesn't call the 'rte_eth_dev_release_port()', and it
>shouldn't really, am I missing something?

Sorry, it's the rte_eth_dev_close that calls rte_eth_dev_release_port, here in 
.remove we do need to call rte_eth_dev_release_port explicitly. 

will send a new version. 

Thanks,
Xiaolong

>
>> 
>> Thanks,
>> Xiaolong
>> 
>>>> -
>>>> +	eth_dev_close(eth_dev);
>>>>  
>>>>  	return 0;
>>>>  }
>>>>
>>>
>


More information about the dev mailing list