> -----Original Message----- > From: dev [mailto:[email protected]] On Behalf Of David Marchand > Sent: Monday, August 12, 2019 11:04 AM > To: Burakov, Anatoly <[email protected]> > Cc: dev <[email protected]>; Richardson, Bruce <[email protected]>; > Stephen Hemminger <[email protected]>; dpdk stable <[email protected]> > Subject: Re: [dpdk-dev] [PATCH v4] eal: fix proc type auto detection > > On Wed, Jul 24, 2019 at 6:08 PM Anatoly Burakov > <[email protected]> wrote: > > > > Currently, primary process holds an exclusive lock on the config > > file, thereby preventing other primaries from spinning up. However, > > when the primary dies, the lock is no longer being held, even though > > there might be other secondary processes still running. > > > > The fix is two-fold. First of all, downgrade the primary process's > > exclusive lock to a shared lock once we have it. Second of all, > > also take out shared locks on the config from the secondaries. We > > are using fcntl() locks, which get dropped when the file handle is > > closed, so also remove the closure of config file handle. > > > > Fixes: af75078fece3 ("first public release") > > Cc: [email protected] > > > > Signed-off-by: Anatoly Burakov <[email protected]>
Apologies I'm late to the conversation. Will the rte_eal_primary_proc_alive() function still detect the primary as alive, and not confuse secondaries with primaries in this new method? Currently, the pri_proc_alive() code uses lockf(fd, F_TEST, 0); to detect if a primary is alive. I'm not familiar enough with shared locks to know if the new behavior would be consistent with the old. -H

