My overnight testing has not shown any problems with this patch set.
JT

On Thu, Feb 23, 2017 at 1:29 AM, Jon Maloy <jon.ma...@ericsson.com> wrote:

> Ok. So go for it to net-next.
> Reviewed-by: Jon
> ///jon
>
> > -----Original Message-----
> > From: Ying Xue [mailto:ying....@windriver.com]
> > Sent: Wednesday, February 22, 2017 06:47 AM
> > To: Jon Maloy <jon.ma...@ericsson.com>; Parthasarathy Bhuvaragan
> > <parthasarathy.bhuvara...@ericsson.com>; thompa....@gmail.com
> > Cc: tipc-discussion@lists.sourceforge.net
> > Subject: Re: [tipc-discussion] [net 0/5] solve two deadlock issues
> >
> > At least, net-next tree is still open as David is reviewing patches
> submitted to
> > net-next.
> >
> > Hope we have a window to submit the series to net-next.
> >
> > Thanks,
> > Ying
> >
> > On 02/22/2017 07:42 PM, Xue, Ying wrote:
> > > Hi Jon,
> > >
> > > I understood your concern.
> > >
> > > I have checked the possibility of merging patch #1, #4 and #5 as one.
> > However, just merging the three patch is insufficient, and at least #2
> seems
> > necessary too, otherwise, another deadlock still exists due to two
> premature
> > 'return's in subcsrb_report_overlap(). Even if we merged them as one, it
> will
> > lose my initial purpose of dividing the series as so small patches.
> Although
> > each patch is made a small change, it's often related to a policy
> adjustment of
> > locking or holding refcount. Moreover, as our locking policy associated
> with
> > topserver becomes complex, I want to use the comments in each patch
> > header to record what policy has been adjusted. In the future, the
> > information can guide whether our changes comply with the adjusted policy
> > or not.
> > >
> > > In fact, all changes contained in the series is not big. But if we
> merged them
> > as one, all useful messages will be lost forever.
> > >
> > > Additionally, "net-next" tree reaches 4.10-rc8, and "net" tree is
> 4.10-rc7
> > now. I saw today there was one developer who submitted a patch to net-
> > next and David also accepted it. However, if John's testing proved the
> series
> > is okay tomorrow, probably I can send the series to net-next tomorrow.
> Even
> > for the worst case, we cannot submit the series until net-next is open
> again.
> > But I have checked nobody would maintain 4.10 as a stable version. So
> even
> > if there is a big long time gap, it seems not to cause a series issue.
> > >
> > > Regards,
> > > Ying
> > >
> > > -----Original Message-----
> > > From: Jon Maloy [mailto:jon.ma...@ericsson.com]
> > > Sent: Tuesday, February 21, 2017 7:12 PM
> > > To: Xue, Ying; Parthasarathy Bhuvaragan; thompa....@gmail.com
> > > Cc: tipc-discussion@lists.sourceforge.net
> > > Subject: RE: [net 0/5] solve two deadlock issues
> > >
> > > Hi Ying,
> > > These are good design changes, that definitely should go in asap.
> However,
> > I feel deeply uncomfortable with such a big change going into 'net',
> especially
> > since our previous, exceptionally large, contribution now has turned out
> to
> > have problems. I wonder if we could not get away with something simpler
> > for 'net'.
> > >
> > > Looking closer at your series, it seems to me that only patches ## 1,
> 4, and
> > the lock removal part of #5 are really needed to solve the problem we
> have
> > at hand now. Why not merge those into one patch and deliver this to
> 'net',
> > while reference count redesign parts can go into net-next ?
> > >
> > > Regards
> > > ///jon
> > >
> > >
> > >> -----Original Message-----
> > >> From: Ying Xue [mailto:ying....@windriver.com]
> > >> Sent: Monday, February 20, 2017 06:39 AM
> > >> To: Jon Maloy <jon.ma...@ericsson.com>; Parthasarathy Bhuvaragan
> > >> <parthasarathy.bhuvara...@ericsson.com>; thompa....@gmail.com
> > >> Cc: tipc-discussion@lists.sourceforge.net
> > >> Subject: [net 0/5] solve two deadlock issues
> > >>
> > >> Commit d094c4d5f5 ("tipc: add subscription refcount to avoid invalid
> > >> delete") accidently introduce the following deadlock scenarios:
> > >>
> > >>    CPU1:                             CPU2:
> > >> ----------                     ----------------
> > >> tipc_nametbl_publish
> > >> spin_lock_bh(&tn->nametbl_lock)
> > >> tipc_nametbl_insert_publ
> > >> tipc_nameseq_insert_publ
> > >> tipc_subscrp_report_overlap
> > >> tipc_subscrp_get
> > >> tipc_subscrp_send_event
> > >>                             tipc_close_conn
> > >>                             tipc_subscrb_release_cb
> > >>                             tipc_subscrb_delete
> > >>                             tipc_subscrp_put
> > >> tipc_subscrp_put
> > >> tipc_subscrp_kref_release
> > >> tipc_nametbl_unsubscribe
> > >> spin_lock_bh(&tn->nametbl_lock)
> > >> <<grab nametbl_lock again>>
> > >>
> > >>    CPU1:                              CPU2:
> > >> ----------                     ----------------
> > >> tipc_nametbl_stop
> > >> spin_lock_bh(&tn->nametbl_lock)
> > >> tipc_purge_publications
> > >> tipc_nameseq_remove_publ
> > >> tipc_subscrp_report_overlap
> > >> tipc_subscrp_get
> > >> tipc_subscrp_send_event
> > >>                             tipc_close_conn
> > >>                             tipc_subscrb_release_cb
> > >>                             tipc_subscrb_delete
> > >>                             tipc_subscrp_put
> > >> tipc_subscrp_put
> > >> tipc_subscrp_kref_release
> > >> tipc_nametbl_unsubscribe
> > >> spin_lock_bh(&tn->nametbl_lock)
> > >> <<grab nametbl_lock again>>
> > >>
> > >> The root cause of two deadlocks is that we have to hold nametbl lock
> > >> when subscription is freed in tipc_subscrp_kref_release(). In order
> > >> to eliminate the need of taking nametbl lock in
> > >> tipc_subscrp_kref_release(), the functions protected by nametbl lock
> > >> in tipc_subscrp_kref_release() are moved to other places step by step
> in
> > the series.
> > >>
> > >> Ying Xue (5):
> > >>   tipc: advance the time of deleting subscription from
> > >>     subscriber->subscrp_list
> > >>   tipc: adjust the policy of holding subscription kref
> > >>   tipc: adjust policy that sub->timer holds subscription kref
> > >>   tipc: advance the time of calling tipc_nametbl_unsubscribe
> > >>   tipc: remove unnecessary increasement of subscription refcount
> > >>
> > >>  net/tipc/name_table.c |  2 ++
> > >>  net/tipc/subscr.c     | 32 ++++++++++++++------------------
> > >>  net/tipc/subscr.h     |  3 +++
> > >>  3 files changed, 19 insertions(+), 18 deletions(-)
> > >>
> > >> --
> > >> 2.7.4
> > >
> > >
> > > ----------------------------------------------------------------------
> > > -------- Check out the vibrant tech community on one of the world's
> > > most engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> > > _______________________________________________
> > > tipc-discussion mailing list
> > > tipc-discussion@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/tipc-discussion
> > >
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to