All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuniyuki Iwashima <kuniyu@amazon.com>
To: <jlayton@kernel.org>
Cc: <airlied@gmail.com>, <akpm@linux-foundation.org>,
	<andrew@lunn.ch>, <davem@davemloft.net>,
	<dri-devel@lists.freedesktop.org>, <edumazet@google.com>,
	<horms@kernel.org>, <intel-gfx@lists.freedesktop.org>,
	 <jani.nikula@linux.intel.com>, <joonas.lahtinen@linux.intel.com>,
	<kuba@kernel.org>, <kuniyu@amazon.com>,
	<linux-kernel@vger.kernel.org>,
	<maarten.lankhorst@linux.intel.com>, <mripard@kernel.org>,
	<nathan@kernel.org>, <netdev@vger.kernel.org>,
	<pabeni@redhat.com>, <qasdev00@gmail.com>,
	<rodrigo.vivi@intel.com>, <simona@ffwll.ch>,
	<tursulin@ursulin.net>, <tzimmermann@suse.de>
Subject: Re: [PATCH v6 08/10] net: add symlinks to ref_tracker_dir for netns
Date: Wed, 30 Apr 2025 20:50:49 -0700	[thread overview]
Message-ID: <20250501035115.76182-1-kuniyu@amazon.com> (raw)
In-Reply-To: <cf11e228dfa247476a498a37f88a96d8e0e2585c.camel@kernel.org>

From: Jeff Layton <jlayton@kernel.org>
Date: Wed, 30 Apr 2025 20:42:40 -0700
> On Wed, 2025-04-30 at 20:07 -0700, Kuniyuki Iwashima wrote:
> > From: Jeff Layton <jlayton@kernel.org>
> > Date: Wed, 30 Apr 2025 19:59:23 -0700
> > > On Wed, 2025-04-30 at 14:29 -0700, Kuniyuki Iwashima wrote:
> > > > From: Jeff Layton <jlayton@kernel.org>
> > > > Date: Wed, 30 Apr 2025 08:06:54 -0700
> > > > > After assigning the inode number to the namespace, use it to create a
> > > > > unique name for each netns refcount tracker with the ns.inum value in
> > > > > it, and register a symlink to the debugfs file for it.
> > > > > 
> > > > > init_net is registered before the ref_tracker dir is created, so add a
> > > > > late_initcall() to register its files and symlinks.
> > > > > 
> > > > > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > > > > ---
> > > > >  net/core/net_namespace.c | 28 +++++++++++++++++++++++++++-
> > > > >  1 file changed, 27 insertions(+), 1 deletion(-)
> > > > > 
> > > > > diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
> > > > > index 008de9675ea98fa8c18628b2f1c3aee7f3ebc9c6..6cbc8eabb8e56c847fc34fa8ec9994e8b275b0af 100644
> > > > > --- a/net/core/net_namespace.c
> > > > > +++ b/net/core/net_namespace.c
> > > > > @@ -763,12 +763,38 @@ struct net *get_net_ns_by_pid(pid_t pid)
> > > > >  }
> > > > >  EXPORT_SYMBOL_GPL(get_net_ns_by_pid);
> > > > >  
> > > > > +#ifdef CONFIG_NET_NS_REFCNT_TRACKER
> > > > > +static void net_ns_net_debugfs(struct net *net)
> > > > > +{
> > > > > +	ref_tracker_dir_symlink(&net->refcnt_tracker, "netns-%u-refcnt", net->ns.inum);
> > > > > +	ref_tracker_dir_symlink(&net->notrefcnt_tracker, "netns-%u-notrefcnt", net->ns.inum);
> > > > 
> > > > Could you use net->net_cookie ?
> > > > 
> > > > net->ns.inum is always 1 when CONFIG_PROC_FS=n.
> > > 
> > > My main use-case for this is to be able to match the inode number in
> > > the /proc/<pid>/ns/net symlink with the correct ref_tracker debugfs
> > > file. Is there a way to use the net_cookie to make that association?
> > 
> > It's roundabout, but  net_cookie can be retrieved by creating a
> > random socket in the netns and calling setsockopt(SO_NETNS_COOKIE).
> > 
> > Ido proposed a handy ip-netns subcommand here, and I guess it will
> > be implemented soon(?)
> > https://lore.kernel.org/netdev/1d99d7ccfc3a7a18840948ab6ba1c0b5fad90901.camel@fejes.dev/
> 
> For the cases where I was looking at netns leaks, there were no more
> processes in the container, so there was no way to enter the container
> and spawn a socket at that point.

Then how do you get net->ns.inum ?


> 
> The point of the symlinks is to have a way to easily identify what
> you're tracking. NAME_MAX is 255. We could do something like this
> instead:
> 
>    snprintf(..., "netns-%u-%llx-refcnt", net->ns.inum, net->net_cookie);
> 
> Obviously the inums would all be 1 when PROC_FS=n, but the cookies
> would be unique. Would that work?

This works, but depending on the question above, there's no point in
using inum ?

  reply	other threads:[~2025-05-02 12:52 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-30 15:06 [PATCH v6 00/10] ref_tracker: add ability to register a debugfs file for a ref_tracker_dir Jeff Layton
2025-04-30 15:06 ` [PATCH v6 01/10] ref_tracker: don't use %pK in pr_ostream() output Jeff Layton
2025-04-30 15:06 ` [PATCH v6 02/10] ref_tracker: add a top level debugfs directory for ref_tracker Jeff Layton
2025-04-30 15:06 ` [PATCH v6 03/10] ref_tracker: have callers pass output function to pr_ostream() Jeff Layton
2025-04-30 15:06 ` [PATCH v6 04/10] ref_tracker: add a static classname string to each ref_tracker_dir Jeff Layton
2025-04-30 15:06 ` [PATCH v6 05/10] ref_tracker: allow pr_ostream() to print directly to a seq_file Jeff Layton
2025-04-30 15:06 ` [PATCH v6 06/10] ref_tracker: automatically register a file in debugfs for a ref_tracker_dir Jeff Layton
2025-05-05  8:05   ` Jani Nikula
2025-04-30 15:06 ` [PATCH v6 07/10] ref_tracker: add a way to create a symlink to the ref_tracker_dir debugfs file Jeff Layton
2025-05-01 10:43   ` kernel test robot
2025-04-30 15:06 ` [PATCH v6 08/10] net: add symlinks to ref_tracker_dir for netns Jeff Layton
2025-04-30 21:29   ` Kuniyuki Iwashima
2025-05-01  2:59     ` Jeff Layton
2025-05-01  3:07       ` Kuniyuki Iwashima
2025-05-01  3:42         ` Jeff Layton
2025-05-01  3:50           ` Kuniyuki Iwashima [this message]
2025-05-01  4:07             ` Jeff Layton
2025-05-01  4:26               ` Kuniyuki Iwashima
2025-04-30 15:06 ` [PATCH v6 09/10] i915: add ref_tracker_dir symlinks for each tracker Jeff Layton
2025-04-30 15:06 ` [PATCH v6 10/10] ref_tracker: eliminate the ref_tracker_dir name field Jeff Layton
2025-04-30 16:02 ` ✗ Fi.CI.CHECKPATCH: warning for ref_tracker: add ability to register a debugfs file for a ref_tracker_dir (rev2) Patchwork
2025-04-30 16:02 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-04-30 16:23 ` ✗ i915.CI.BAT: failure " Patchwork

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=20250501035115.76182-1-kuniyu@amazon.com \
    --to=kuniyu@amazon.com \
    --cc=airlied@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=jlayton@kernel.org \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=nathan@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=qasdev00@gmail.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=simona@ffwll.ch \
    --cc=tursulin@ursulin.net \
    --cc=tzimmermann@suse.de \
    /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.