07/07/2017 16:08, Guo, Jia:
> 
> 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.

Sorry it looks wrong to apply half of this patchset, given we are not
sure how the remaining part should be implemented.
Let's take time for a better solution and try to gather more opinions.
It will be highlighted as one of the next priorities, after the bus rework
in progress.

Reply via email to