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: 22+ 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-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox