Subject: Re: [PATCH net] neigh: Force garbage collection if an entry is deleted administratively

From: Steffen Klassert <[email-masked]>
Date: Tue, 19 Nov 2013 12:54:14 +0100

On Mon, Nov 18, 2013 at 04:21:15PM -0500, David Miller wrote:
> 
> I think the main issue is that after this patch, the problem is really
> still there.
> 
> Let's say some device holds onto the neigh for a long time, then during
> this time an administrative replacement will still get that -EEXIST
> failure.

Well, I think we had this problem even before we stopped to do
cyclic garbage collecting. This patch would just restore the
behaviour we had before this change.

> 
> 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 :-)

I'm not sure how invasive this will be, so maybe we should do
one patch to restore the old behaviour (for net) and one on
top of this to improve the situation as you described
(for net-next).