From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v7 1/2] eal: add uevent monitor for hot plug Date: Tue, 09 Jan 2018 14:40:01 +0100 Message-ID: <4048320.sz8XtuZNvT@xps> References: <1509567405-27439-3-git-send-email-jia.guo@intel.com> <1930193.dgY3bQfKM7@xps> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org, stephen@networkplumber.org, bruce.richardson@intel.com, ferruh.yigit@intel.com, gaetan.rivet@6wind.com, konstantin.ananyev@intel.com, shreyansh.jain@nxp.com, jingjing.wu@intel.com, helin.zhang@intel.com, motih@mellanox.com, harry.van.haaren@intel.com To: "Guo, Jia" Return-path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 744261B1D4 for ; Tue, 9 Jan 2018 14:40:26 +0100 (CET) In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > >>>> --- a/lib/librte_eal/common/include/rte_bus.h > >>>> +++ b/lib/librte_eal/common/include/rte_bus.h > >>>> /** > >>>> + * Device iterator to find a device on a bus. > >>>> + * > >>>> + * This function returns an rte_device if one of those held by the bus > >>>> + * matches the data passed as parameter. > >>>> + * > >>>> + * If the comparison function returns zero this function should stop iterating > >>>> + * over any more devices. To continue a search the device of a previous search > >>>> + * can be passed via the start parameter. > >>>> + * > >>>> + * @param cmp > >>>> + * the device name comparison function. > >>>> + * > >>>> + * @param data > >>>> + * Data to compare each device against. > >>>> + * > >>>> + * @param start > >>>> + * starting point for the iteration > >>>> + * > >>>> + * @return > >>>> + * The first device matching the data, NULL if none exists. > >>>> + */ > >>>> +typedef struct rte_device * > >>>> +(*rte_bus_find_device_by_name_t)(const struct rte_device *start, > >>>> + rte_dev_cmp_name_t cmp, > >>>> + const void *data); > >>> Why is it needed? There is already rte_bus_find_device_t. > >> because the rte_bus_find_device_t just find a device structure in the > >> device list, but here need to find a device structure by device name > >> which come from uevent info. > > I don't understand how it is different? > > Looking at the code, it is a copy/paste except it is dedicated > > to name comparison. > > You can remove rte_bus_find_device_by_name_t and provide a > > comparison function which looks at name. > i mean that if the device have been remove and then insertion, the > device have not construct when just got the device name from the uevent > massage, so this case could i use the original find device function? The device won't be in the list if it is not yet scanned. Anyway your function checks the same list. Let's stop this discussion for now and continue when the need for this function is better explained in a separate patch. You really need to introduce things one patch at a time and explain why you introduce them in the message of each patch. Thanks