hi, thomas


On 7/4/2018 6:44 AM, Thomas Monjalon wrote:
03/07/2018 11:35, Guo, Jia:
On 7/1/2018 3:46 PM, Matan Azrad wrote:
From: Jeff Guo
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2206,9 +2209,12 @@ eth_dev_event_callback(char *device_name, enum
rte_dev_event_type type,
        case RTE_DEV_EVENT_REMOVE:
                RTE_LOG(ERR, EAL, "The device: %s has been removed!\n",
                        device_name);
-               /* TODO: After finish failure handle, begin to stop
-                * packet forward, stop port, close port, detach port.
-                */
+               ret = rte_eth_dev_get_port_by_name(device_name, &port_id);
As you probably know, 1 rte_device may be associated to more than one ethdev 
ports, so the ethdev port name can be different from rte_device name.
Looks like we need a new ethdev API to get all the ports associated to one 
rte_device.
agree, seems that the the old ethdev API have some issue when got all
port by device name. we could check with ethdev maintainer and fix it by
specific ethdev patch later.
This ethdev function could return an error if several ports match.

Ideally, we should not use this function at all.
If you want to manage an ethdev port, why are you using an EAL event?
There is an ethdev callback mechanism for port removal.



i think the problem is that how to manage all ethdev port associated with one rte_device. So the easy way is let device event callback to check these ports. I will modify it in next version.


Reply via email to