From: Steffen Klassert <steffen.klassert@secunet.com>
To: David Laight <David.Laight@ACULAB.COM>
Cc: David Miller <davem@davemloft.net>,
yoshfuji@linux-ipv6.org, netdev@vger.kernel.org
Subject: Re: [PATCH net] neigh: Force garbage collection if an entry is deleted administratively
Date: Tue, 19 Nov 2013 13:41:02 +0100 [thread overview]
Message-ID: <20131119124102.GA31491@secunet.com> (raw)
In-Reply-To: <AE90C24D6B3A694183C094C60CF0A2F6026B7432@saturn3.aculab.com>
On Tue, Nov 19, 2013 at 12:08:06PM -0000, David Laight wrote:
> > > My conclusion is that the management of the state is the problem.
> > > Specifically, if we invalidate an entry then we should remove it's
> > > visisbility. This means the table should operate by unhashing the
> > > entry unconditionally during such operations.
> > >
> > > If some stray references exist, that's fine, the entity holding the
> > > reference will perform the final neigh cleanup at release time.
> > >
> > > Does this make sense to you?
> >
> > Yes, makes sense :-)
>
> Isn't it enough to act as if the entry were not in the hash tables.
> So an attempt to add such an entry wouldn't fail.
Hm, how you want to do that?
>
> I've not looked at these code paths, but it can easily be that when
> the entry is invalidated the hash table isn't (and can't easily be)
> locked - just having the entry locked may make it difficult.
>
We have the table locked in neigh_periodic_work() so we can unlink
invalidated entries there. This function could then periodically
check and remove the unlinked entries if they lost their references.
Unlinking with neigh_periodic_work() would have some seconds delay
of course, but I think this is acceptable.
> Whereas the code path to add an entry can easily delete old entries.
>
Well, it can not if the old entry is still referenced. That's why
we need to look periodically for stale entries and remove them
when they lost their references.
next prev parent reply other threads:[~2013-11-19 12:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-12 8:57 [PATCH net] neigh: Force garbage collection if an entry is deleted administratively Steffen Klassert
2013-11-14 7:23 ` David Miller
2013-11-18 10:08 ` Steffen Klassert
2013-11-18 21:21 ` David Miller
2013-11-19 11:54 ` Steffen Klassert
2013-11-19 12:08 ` David Laight
2013-11-19 12:41 ` Steffen Klassert [this message]
2013-11-21 19:18 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131119124102.GA31491@secunet.com \
--to=steffen.klassert@secunet.com \
--cc=David.Laight@ACULAB.COM \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).