From: Stanislav Fomichev <sdf.kernel@gmail.com>
To: Paolo Abeni <pabeni@redhat.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org
Subject: Re: [PATCH net v8 03/15] net: cache snapshot entries for ndo_set_rx_mode_async
Date: Wed, 22 Apr 2026 12:48:00 -0700 [thread overview]
Message-ID: <aekldWazLVNzh9cd@devvm17672.vll0.facebook.com> (raw)
In-Reply-To: <27946411-c226-426c-9307-d2cf76b88b1f@redhat.com>
On 04/22, Paolo Abeni wrote:
> On 4/22/26 12:19 AM, Stanislav Fomichev wrote:
> > On 04/21, Paolo Abeni wrote:
> >> On 4/21/26 11:52 AM, Paolo Abeni wrote:
> >>> On 4/16/26 8:57 PM, Stanislav Fomichev wrote:
> >>>> Add a per-device netdev_hw_addr_list cache (rx_mode_addr_cache) that
> >>>> allows __hw_addr_list_snapshot() and __hw_addr_list_reconcile() to
> >>>> reuse previously allocated entries instead of hitting GFP_ATOMIC on
> >>>> every snapshot cycle.
> >>>>
> >>>> snapshot pops entries from the cache when available, falling back to
> >>>> __hw_addr_create(). reconcile splices both snapshot lists back into
> >>>> the cache via __hw_addr_splice(). The cache is flushed in
> >>>> free_netdev().
> >>>>
> >>>> Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
> >>>> (cherry picked from commit ba3ab1832a511f660fdc6231245b14bf610c05bd)
> >>>
> >>> Are you backporting from 7.2 via time machine??? :-P
> >>>
> >>>> @@ -611,8 +633,8 @@ void __hw_addr_list_reconcile(struct netdev_hw_addr_list *real_list,
> >>>> }
> >>>> }
> >>>>
> >>>> - __hw_addr_flush(work);
> >>>> - __hw_addr_flush(ref);
> >>>> + __hw_addr_splice(cache, work);
> >>>> + __hw_addr_splice(cache, ref);
> >>>
> >>> I think here sashiko has a point, with the cache size being unbounded. I
> >>> guess syzkaller or the like will find a way to make it grow too much.
> >>>
> >>> What about hard-limit it to some reasonable value?!?
> >>
> >> There are a few more remarks from sashiko at the driver level, but
> >> AFAICS are all pre-existing issues.
> >>
> >> I think even the above one it's better handled as a follow-up, so I'm
> >> applying the series as-is (I'll just drop the cherry-pick statement above).
> >
> > I have a follow-up series to add retries here, but not sure it's the
> > right direction. I can send it once net-next opens just to opinions.
>
> I'm not sure how you are going to use retries with cache access?!?
> Likely some code could clarify.
>
> I was wondering about a dumb limit for such cache, possibly netns-wide,
> possibly with a paired sysctl.
Ah, you're more concerned about the cache growth. I'm more worried about
the failed allocations and failed sync :-/ Let me look into cache grown,
should be relatively easy to have some test that keeps adding mc
addresses..
next prev parent reply other threads:[~2026-04-22 19:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-16 18:56 [PATCH net v8 00/15] net: sleepable ndo_set_rx_mode Stanislav Fomichev
2026-04-16 18:56 ` [PATCH net v8 01/15] net: add address list snapshot and reconciliation infrastructure Stanislav Fomichev
2026-04-16 18:56 ` [PATCH net v8 02/15] net: introduce ndo_set_rx_mode_async and netdev_rx_mode_work Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 03/15] net: cache snapshot entries for ndo_set_rx_mode_async Stanislav Fomichev
2026-04-21 9:52 ` Paolo Abeni
2026-04-21 10:48 ` Paolo Abeni
2026-04-21 22:19 ` Stanislav Fomichev
2026-04-22 7:27 ` Paolo Abeni
2026-04-22 19:48 ` Stanislav Fomichev [this message]
2026-04-16 18:57 ` [PATCH net v8 04/15] net: move promiscuity handling into netdev_rx_mode_work Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 05/15] fbnic: convert to ndo_set_rx_mode_async Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 06/15] mlx5: " Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 07/15] bnxt: " Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 08/15] bnxt: use snapshot in bnxt_cfg_rx_mode Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 09/15] iavf: convert to ndo_set_rx_mode_async Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 10/15] netdevsim: " Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 11/15] dummy: " Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 12/15] netkit: " Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 13/15] net: warn ops-locked drivers still using ndo_set_rx_mode Stanislav Fomichev
2026-05-11 7:51 ` Dragos Tatulea
2026-04-16 18:57 ` [PATCH net v8 14/15] selftests: net: add team_bridge_macvlan rx_mode test Stanislav Fomichev
2026-04-16 18:57 ` [PATCH net v8 15/15] selftests: net: use ip commands instead of teamd in team " Stanislav Fomichev
2026-04-21 11:00 ` [PATCH net v8 00/15] net: sleepable ndo_set_rx_mode patchwork-bot+netdevbpf
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=aekldWazLVNzh9cd@devvm17672.vll0.facebook.com \
--to=sdf.kernel@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.