From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v2] eal: add function to return number of detected sockets Date: Tue, 16 Jan 2018 18:34:53 +0100 Message-ID: <1810706.ItrCMZY2UQ@xps> References: <3f9df1ca17e97b2df560d5af5fa31a778af3263f.1513942728.git.anatoly.burakov@intel.com> <2134391.uA7JBUhxlf@xps> <58e15893-0f6e-7fed-d847-b128be26e483@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: "Burakov, Anatoly" Return-path: Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id 0F7A11B2C1 for ; Tue, 16 Jan 2018 18:35:26 +0100 (CET) In-Reply-To: <58e15893-0f6e-7fed-d847-b128be26e483@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 16/01/2018 16:05, Burakov, Anatoly: > On 16-Jan-18 12:20 PM, Thomas Monjalon wrote: > > 16/01/2018 12:56, Burakov, Anatoly: > >> On 12-Jan-18 11:50 AM, Thomas Monjalon wrote: > >>> 12/01/2018 12:44, Burakov, Anatoly: > >>>> On 11-Jan-18 10:20 PM, Thomas Monjalon wrote: > >>>>> 22/12/2017 13:41, Anatoly Burakov: > >>>>>> During lcore scan, find maximum socket ID and store it. > >>>>>> > >>>>>> Signed-off-by: Anatoly Burakov > >>>>>> --- > >>>>>> --- a/lib/librte_eal/common/include/rte_eal.h > >>>>>> +++ b/lib/librte_eal/common/include/rte_eal.h > >>>>>> @@ -83,6 +83,7 @@ enum rte_proc_type_t { > >>>>>> struct rte_config { > >>>>>> uint32_t master_lcore; /**< Id of the master lcore */ > >>>>>> uint32_t lcore_count; /**< Number of available logical cores. */ > >>>>>> + uint32_t numa_node_count; /**< Number of detected NUMA nodes. */ > >>>>>> uint32_t service_lcore_count;/**< Number of available service cores. */ > >>>>>> enum rte_lcore_role_t lcore_role[RTE_MAX_LCORE]; /**< State of cores. */ > >>>>> > >>>>> isn't it breaking the ABI? > >>>>> > >>>>> > >>>> > >>>> Yep, you're right, forgot to add that. I didn't expect this to get > >>>> merged in 18.02 anyway, so v2 will follow. > >>> > >>> Please write 18.05 in the subject to show your expectation. > >>> Thanks > >>> > >> > >> Does it have to be an ABI change though? We can put numa_node_count > >> after pointer to mem_config, in which case it won't be an ABI break. > >> Would that be better? > > > > Changing the size of a struct which is allocated by the app, > > is an ABI break. > > Is your solution changing the size? > > > > It's not really allocated as such. rte_config is a global static > variable, and we only ever get pointers to it from the user code. If we > add the new value at the end, all of the old data layout would be intact > and work as before, so nothing would change as far as old code is concerned. > > However, if that's still considered an ABI break, then OK, break it is. Maybe that assuming it is never allocated (not copied for instance) we could consider it is not an ABI break. > Some background for why this is needed - for the memory hotplug, we need > to know how many sockets we can allocate memory at, to distinguish > between socket that doesn't exist, and socket that exists but has no > memory allocated on it. I'm OK with trying other approaches (such as > storing numa nodes in a static variable somewhere) if breaking ABI for > this is too much to ask for such a minute change. Why is it important for 18.02? Memory hotplug will be integrated only in 18.05. I think it is better to just wait (and announce the deprecation).