All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Westphal <fw@strlen.de>
To: Ben Greear <greearb@candelatech.com>
Cc: netdev <netdev@vger.kernel.org>,
	kent.overstreet@linux.dev, surenb@google.com,
	pablo@netfilter.org
Subject: Re: nf-nat-core: allocated memory at module unload.
Date: Tue, 1 Oct 2024 21:36:06 +0200	[thread overview]
Message-ID: <20241001193606.GA10530@breakpoint.cc> (raw)
In-Reply-To: <bdaaef9d-4364-4171-b82b-bcfc12e207eb@candelatech.com>

Ben Greear <greearb@candelatech.com> wrote:

[ CCing codetag folks ]

> Hello,
> 
> I see this splat in 6.11.0 (plus a single patch to fix vrf xmit deadlock).
> 
> Is this a known issue?  Is it a serious problem?

Not known to me.  Looks like an mm (rcu)+codetag problem.

> ------------[ cut here ]------------
> net/netfilter/nf_nat_core.c:1114 module nf_nat func:nf_nat_register_fn has 256 allocated at module unload
> WARNING: CPU: 1 PID: 10421 at lib/alloc_tag.c:168 alloc_tag_module_unload+0x22b/0x3f0
> Modules linked in: nf_nat(-) btrfs ufs qnx4 hfsplus hfs minix vfat msdos fat
...
> Hardware name: Default string Default string/SKYBAY, BIOS 5.12 08/04/2020
> RIP: 0010:alloc_tag_module_unload+0x22b/0x3f0
>  codetag_unload_module+0x19b/0x2a0
>  ? codetag_load_module+0x80/0x80
>  ? up_write+0x4f0/0x4f0

"Well, yes, but actually no."

At this time, kfree_rcu() has been called on all 4 objects.

Looks like kfree_rcu no longer cares even about rcu_barrier(), and
there is no kvfree_rcu_barrier() in 6.11.

The warning goes away when I replace kfree_rcu with call_rcu+kfree
plus rcu_barrier in module exit path.

But I don't think its the right thing to do.

(referring to nf_nat_unregister_fn(), kfree_rcu(priv, rcu_head);).

Reproducer:
unshare -n iptables-nft -t nat -A PREROUTING -p tcp
grep nf_nat /proc/allocinfo # will list 4 allocations
rmmod nft_chain_nat
rmmod nf_nat		    # will WARN.

Without rmmod, the 4 allocations go away after a few seconds,
grep will no longer list them and then rmmod won't splat.


  reply	other threads:[~2024-10-01 19:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-01 13:06 nf-nat-core: allocated memory at module unload Ben Greear
2024-10-01 19:36 ` Florian Westphal [this message]
2024-10-04 23:13   ` Suren Baghdasaryan
2024-10-07 11:29     ` Florian Westphal
2024-10-07 15:10       ` Suren Baghdasaryan
2024-10-09 18:20         ` Ben Greear
2024-10-09 18:23           ` Suren Baghdasaryan
2024-10-09 18:28             ` Ben Greear

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=20241001193606.GA10530@breakpoint.cc \
    --to=fw@strlen.de \
    --cc=greearb@candelatech.com \
    --cc=kent.overstreet@linux.dev \
    --cc=netdev@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=surenb@google.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.