From: "Serge E. Hallyn" <serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
To: "Eric W. Biederman" <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
Dilip Daya <dilip.daya-VXdhtT5mjnY@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Network namespace and bonding WARNING at fs/proc/generic.c remove_proc_entry
Date: Fri, 6 Jul 2012 17:05:38 +0000 [thread overview]
Message-ID: <20120706170538.GA31679@mail.hallyn.com> (raw)
In-Reply-To: <87ehopu3e5.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
Quoting Eric W. Biederman (ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org):
> "Serge E. Hallyn" <serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org> writes:
>
> > Quoting Dilip Daya (dilip.daya-VXdhtT5mjnY@public.gmane.org):
> >> Hi,
> >>
> >> I'd discussed the following with Serge Hallyn.
> >>
> >> => Environment based on 3.2.18 / x86_64 kernel.
> >> => WARNING: at fs/proc/generic.c:808 remove_proc_entry+0xdb/0x21f()
> >> => WARNING: at fs/proc/generic.c:849 remove_proc_entry+0x208/0x21f()
> >
> > Hi,
> >
> > thanks much for sending this. I'm still getting this error on
> > 3.5.0-2-generic (today's ubuntu quantal kernel)
> >
> >> network namespace and bonding
> >> -----------------------------
> >>
> >> * Migrate two phy nics from host to netns (netns0).
> >> - ip link set ethX netns netns0
> >>
> >> * In host environment:
> >> - load bonding module, /sbin/modprobe -v bonding mode=1 miimon=100
> >> - /sys/class/net/bond0 exists.
> >> - /proc/net/bonding/bond0 exists.
> >> - /sys/class/net/bonding_masters has bond0.
> >>
> >> * Migrate bond0 to netns (netns0):
> >> - ip link set bond0 netns netns0.
> >>
> >> * Within netns (netns0):
> >> - /sys/class/net/bonding_masters is empty.
> >> - /sys/class/net/bond0 exist.
> >> - configure bond0 and ifenslave with two phy nics.
> >> - /proc/net/bonding/bond0 does not exist within netns0, but does
> >> exist in the host environment.
> >> - /sys/class/net/bonding_masters is empty.
> >
> > mine is not empty, fwiw. However
> >
> >> - ping to remote end of bond0 works.
> >>
> >> * Within netns (netns0), flushing ethX and bondY:
> >> - down bond0 and its phy nic interfaces:
> >> - ip link set ... down
> >> - ip addr flush dev [bond0 | eth#]
> >> - deleting bond0, /sbin/ip link del dev bond0
> >
> > Yup I still get a remove_proc_entry WARNING at fs/proc/generic.c:808,
> > which is the warning when (!de)
>
> It looks like Dilip is running an old kernel. There should have been
> some version of /sys/class/net/bonding_masters in every network
> namespace since sometime in 2009.
>
> >From the warning it looks like the proc files are being added/removed
> to the wrong network namespace. So in one namespace we get an error
> when we delete the moved device and in the other network namespace
> we get an error when we remove the /proc/directory.
>
> An old kernel without proper network namespace support is the only
> reason I can imagine someone would be moving an existing bond device
> between network namespaces.
>
> If there are other reasons for wanting to move a bonding device between
> network namespaces it is possible to catch the NETDEV_UNREGISTER and
> NETDEV_REGISTER events to remove/add the per device proc files at the
> appropriate time.
>
> However since moving bonding devices appears to be an unneded operation
> let's just do things simply and forbid moving bonding devices between
> network namespaces. Serge, Dilip can you two test the patch below
> and see if it fixes the warnings.
>
> Eric
>
>
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 2ee8cf9..818ed64 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -4345,6 +4345,9 @@ static void bond_setup(struct net_device *bond_dev)
> bond_dev->priv_flags |= IFF_BONDING;
> bond_dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING);
>
> + /* Don't allow bond devices to change network namespaces. */
> + bond_dev->features |= NETIF_F_LOCAL;
I believe this needs to be NETIF_F_NETNS_LOCAL. Test build still going with
that change.
> +
> /* At first, we block adding VLANs. That's the only way to
> * prevent problems that occur when adding VLANs over an
> * empty bond. The block will be removed once non-challenged
next prev parent reply other threads:[~2012-07-06 17:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1340900320.3441.88.camel@pro6455b.example.com>
[not found] ` <20120705220749.GA11255@mail.hallyn.com>
2012-07-06 0:41 ` Network namespace and bonding WARNING at fs/proc/generic.c remove_proc_entry Eric W. Biederman
[not found] ` <87ehopu3e5.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2012-07-06 17:05 ` Serge E. Hallyn [this message]
[not found] ` <20120706170538.GA31679-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2012-07-06 18:01 ` Dilip Daya
2012-07-06 18:57 ` Eric W. Biederman
[not found] ` <87fw94g1kq.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2012-07-06 19:47 ` Serge E. Hallyn
[not found] ` <20120706194741.GA22113-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2012-07-09 20:51 ` [PATCH 1/2] bonding: Manage /proc/net/bonding/ entries from the netdev events Eric W. Biederman
[not found] ` <87y5ms3bfi.fsf_-_-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2012-07-09 20:52 ` [PATCH 2/2] bonding: debugfs and network namespaces are incompatible Eric W. Biederman
[not found] ` <87sjd03bdw.fsf_-_-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2012-07-09 21:49 ` David Miller
2012-07-10 17:36 ` Jay Vosburgh
[not found] ` <367b470c-c3f5-4555-be11-02223125b741@email.android.com>
2012-07-10 19:13 ` Jay Vosburgh
2012-07-12 0:18 ` Eric W. Biederman
2012-07-12 1:57 ` Jay Vosburgh
2012-07-09 21:49 ` [PATCH 1/2] bonding: Manage /proc/net/bonding/ entries from the netdev events David Miller
2012-07-06 18:01 ` Network namespace and bonding WARNING at fs/proc/generic.c remove_proc_entry Dilip Daya
2012-07-06 18:40 ` Eric W. Biederman
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=20120706170538.GA31679@mail.hallyn.com \
--to=serge-a9i7lubdfnhqt0dzr+alfa@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=dilip.daya-VXdhtT5mjnY@public.gmane.org \
--cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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;
as well as URLs for NNTP newsgroup(s).