Re: [PATCH v4 net-next] net: neigh: avoid calling neigh_forced_gc on every alloc when table is full

Vimal Agrawal <[email protected]>
Newsgroups gmane.linux.network
Message-ID <CALkUMdQY+i6yQYLb2VqVeN2fFTWMpRa8Vufr4gGGUxSQh5dhyg@mail.gmail.com>
Hi Kuniyuki,

Can you please check if this is fine with you or if you have any more comments?

Thanks,
Vimal

On Sat, Jul 25, 2026 at 4:48 AM Jakub Kicinski <[email protected]> wrote:
>
> On Tue, 21 Jul 2026 14:09:11 -0700 Jakub Kicinski wrote:
> > On Wed, 15 Jul 2026 05:53:11 +0000 Vimal Agrawal wrote:
> > > Once the neighbour table exceeds gc_thresh3, neigh_forced_gc() is called
> > > on every allocation attempt with no rate limiting. In workloads with mostly
> > > active/reachable entries, the GC walk traverses a large portion of the
> > > neighbour table without reclaiming entries, holding tbl->lock for an
> > > extended period. This causes severe lock contention and allocation
> > > latencies exceeding 16ms under sustained neighbour creation.
> > >
> > > Add a pre-lock check in neigh_forced_gc() to skip the GC run if one was
> > > performed within the last 50 ms, but only when the table actually contains
> > > NEIGH_FORCED_GC_LARGE_TABLE_THRESH (16384) or more entries. This avoids
> > > repeated full table scans and lock acquisitions on the hot allocation path
> > > while leaving tables with few entries completely unaffected regardless of
> > > how gc_thresh3 is configured.
> >
> > Hi Kuniyuki, are you still unconvinced by this?
>
> Looks like Kuniyuki is AFK, please repost this in a week (Aug 2nd?)
> This patch is the oldest in our queue and it's getting close to
> the auto-discard threshold of 2 weeks.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.