[dpdk-dev] [PATCH] eal: initialize alarms early

Stojaczyk, Dariusz dariusz.stojaczyk at intel.com
Wed Mar 27 21:33:43 CET 2019



> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas at monjalon.net]
> Sent: Wednesday, March 27, 2019 7:12 PM
> To: Stojaczyk, Dariusz <dariusz.stojaczyk at intel.com>
> Cc: dev at dpdk.org; Zhang, Qi Z <qi.z.zhang at intel.com>; Burakov, Anatoly
> <anatoly.burakov at intel.com>; stable at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] eal: initialize alarms early
> 
> 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 <qi.z.zhang at intel.com>
> > Cc: Anatoly Burakov <anatoly.burakov at intel.com>
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk at intel.com>
> > ---
> >  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.

D.



More information about the dev mailing list