[dpdk-dev] [PATCH v3 2/2] net/i40e: add hot plug monitor in i40e

Guo, Jia jia.guo at intel.com
Fri Jul 7 16:08:59 CEST 2017



On 7/7/2017 6:17 PM, Thomas Monjalon wrote:
> 07/07/2017 09:56, Thomas Monjalon:
>> 29/06/2017 07:01, Jeff Guo:
>>> --- a/drivers/net/i40e/i40e_ethdev.c
>>> +++ b/drivers/net/i40e/i40e_ethdev.c
>>> @@ -1283,6 +1283,7 @@ static inline void i40e_GLQF_reg_init(struct i40e_hw *hw)
>>>   
>>>   	/* enable uio intr after callback register */
>>>   	rte_intr_enable(intr_handle);
>>> +
>>>   	/*
>>>   	 * Add an ethertype filter to drop all flow control frames transmitted
>>>   	 * from VSIs. By doing so, we stop VF from sending out PAUSE or PFC
>>> @@ -5832,11 +5833,29 @@ struct i40e_vsi *
>>>   {
>>>   	struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
>>>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>>> +	struct rte_uevent event;
>>>   	uint32_t icr0;
>>> +	struct rte_pci_device *pci_dev;
>>> +	struct rte_intr_handle *intr_handle;
>>> +
>>> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>>> +	intr_handle = &pci_dev->intr_handle;
>>>   
>>>   	/* Disable interrupt */
>>>   	i40e_pf_disable_irq0(hw);
>>>   
>>> +	/* check device uevent */
>>> +	if (rte_uevent_get(intr_handle->uevent_fd, &event) == 0) {
>>> +		if (event.subsystem == RTE_UEVENT_SUBSYSTEM_UIO) {
>>> +			if (event.action == RTE_UEVENT_REMOVE) {
>>> +				_rte_eth_dev_callback_process(dev,
>>> +					RTE_ETH_EVENT_INTR_RMV, NULL);
>>> +				return;
>>> +			}
>>> +		}if
>>> +		goto done;
>>> +	}
>> There is nothing specific to i40e in this patch.
>> It seems wrong to add such generic code in every drivers.
> It should be managed at bus layer and not be specific to ethdev only.
  if all could managed at bus layer might also be what i want to see, 
but that would not so economical at currently. because of the event need 
to exposure to driver to use app's callback to handle it by 
detach/attach device. mlx driver also go through this path to show the 
rmv event usege. we just add uevent for pci uio device. Anyway, i think 
the uevent must be useful for future PF/VFIO live migration. if there 
are not other concern about the other patch that added uevent api in 
eal([PATCH v3 1/2] eal: add uevent api for hot plug), i suggest to merge 
it at first. Then we could go next to enhancement it with the 6wind hot 
plug feature.



More information about the dev mailing list