From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] eal: initialize alarms early Date: Wed, 27 Mar 2019 23:42:40 +0100 Message-ID: <1752426.1oQredii45@xps> References: <20190326184331.13850-1-dariusz.stojaczyk@intel.com> <2545420.xP4CxeWPSp@xps> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: "dev@dpdk.org" , "Zhang, Qi Z" , "Burakov, Anatoly" , "stable@dpdk.org" , bruce.richardson@intel.com To: "Stojaczyk, Dariusz" Return-path: 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" 27/03/2019 21:33, Stojaczyk, Dariusz: > From: Thomas Monjalon [mailto:thomas@monjalon.net] > > 26/03/2019 19:43, Darek Stojaczyk: > > > We currently initialize rte_alarms after starting > > > to listen for IPC hotplug requests, which gives > > > us a data race window. Upon receiving such hotplug > > > request we always try to set an alarm and this > > > obviously doesn't work if the alarms weren't > > > initialized yet. > > > > > > To fix it, we initialize alarms before starting > > > to listen for IPC hotplug messages. Specifically, > > > we move rte_eal_alarm_init() right after > > > rte_eal_intr_init() as it makes some sense to > > > keep those two close to each other. > > > > I wonder which regression it will bring :) > > The experience shows that we cannot touch this function > > without introducing a regression. Please check twice. > > Hah, ok - I'll check again the possible outcomes of this. > > > > > > Fixes: 244d5130719c ("eal: enable hotplug on multi-process") > > > Cc: Qi Zhang > > > Cc: Anatoly Burakov > > > Cc: stable@dpdk.org > > > > > > Signed-off-by: Darek Stojaczyk > > > --- > > > lib/librte_eal/linux/eal/eal.c | 12 ++++++------ > > > 1 file changed, 6 insertions(+), 6 deletions(-) > > > > You probably need to update the FreeBSD version too. > > > > Oh, that I cannot do. First of all, in bsd code I don't see > rte_mp_dev_hotplug_init() called anywhere, as if bsd > did not listen for IPC hotplug messages at all and hence did > not have any data race in this area. Second, I would be > afraid to touch any bsd code as I'm not running any bsd > system. The problem is the consistency between OSes. May you ask help here? Bruce is maintaining the FreeBSD side.