public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrey Savochkin <saw@swsoft.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: dlezcano@fr.ibm.com, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, serue@us.ibm.com, haveblue@us.ibm.com,
	clg@fr.ibm.com, Andrew Morton <akpm@osdl.org>,
	dev@sw.ru, herbert@13thfloor.at, devel@openvz.org,
	sam@vilain.net, viro@ftp.linux.org.uk,
	Alexey Kuznetsov <alexey@sw.ru>
Subject: Re: [patch 1/4] Network namespaces: cleanup of dev_base list use
Date: Mon, 26 Jun 2006 19:42:05 +0400	[thread overview]
Message-ID: <20060626194205.C989@castle.nmd.msu.ru> (raw)
In-Reply-To: <m1odwguez3.fsf@ebiederm.dsl.xmission.com>; from "Eric W. Biederman" on Mon, Jun 26, 2006 at 09:13:52AM

Hi Eric,

On Mon, Jun 26, 2006 at 09:13:52AM -0600, Eric W. Biederman wrote:
> Andrey Savochkin <saw@swsoft.com> writes:
> 
> > Cleanup of dev_base list use, with the aim to make device list per-namespace.
> > In almost every occasion, use of dev_base variable and dev->next pointer
> > could be easily replaced by for_each_netdev loop.
> > A few most complicated places were converted to using
> > first_netdev()/next_netdev().
> 
> As a proof of concept patch this is ok.
> 
> As a real world patch this is much too big, which prevents review.
> Plus it takes a few actions that are more than replace just
> iterators through the device list.

dev_base list is historically not the cleanest part of Linux networking.
I've still spotted a place where the first device in dev_base list is assumed
to be loopback.  In early days we had more, now only one place or two...

> 
> In addition I suspect several if not all of these iterators
> can be replaced with the an appropriate helper function.
> 
> The normal structure for a patch like this would be to
> introduce the new helper function.  for_each_netdev.
> And then to replace all of the users while cc'ing the
> maintainers of those drivers.  With each different
> driver being a different patch.
> 
> There is another topic for discussion in this patch as well.
> How much of the context should be implicit and how much
> should be explicit.
> 
> If the changes from netchannels had already been implemented, and all of
> the network processing was happening in a process context then I would
> trivially agree that implicit would be the way to go.

Why would we want all network processing happen in a process context?

> 
> However short of always having code always execute in the proper
> context I'm not comfortable with implicit parameters to functions.
> Not that this the contents of this patch should address this but the
> later patches should.

We just have too many layers in networking code, and FIB/routing
illustrates it well.

> 
> When I went through this, my patchset just added an explicit
> continue if the devices was not in the appropriate namespace.
> I actually prefer the multiple list implementation but at
> the same time I think it is harder to get a clean implementation
> out of it.

Certainly, dev_base list reorganization is not the crucial point in network
namespaces.  But it has to be done some way or other.
If people vote for a single list with skipping devices from a wrong
namespace, it's fine with me, I can re-make this patch.

I personally prefer per-namespace device list since we have too many places
in the kernel where this list is walked in a linear fashion,
and with many namespaces this list may become quite long.

Regards

Andrey

  reply	other threads:[~2006-06-26 15:42 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-26  9:49 [patch 1/4] Network namespaces: cleanup of dev_base list use Andrey Savochkin
2006-06-26  9:52 ` [patch 2/4] " Andrey Savochkin
2006-06-26  9:54   ` [patch 3/4] Network namespaces: IPv4 FIB/routing in namespaces Andrey Savochkin
2006-06-26  9:55     ` [patch 4/4] Network namespaces: playing and debugging Andrey Savochkin
2006-06-26 15:04       ` Daniel Lezcano
2006-06-26 15:43         ` Andrey Savochkin
2006-06-26 17:29           ` Daniel Lezcano
2006-06-26 19:34             ` Andrey Savochkin
2006-06-26 14:56     ` [patch 3/4] Network namespaces: IPv4 FIB/routing in namespaces Daniel Lezcano
2006-06-26 15:46       ` Andrey Savochkin
2006-06-26 15:57         ` Daniel Lezcano
2006-06-26 19:39           ` Andrey Savochkin
2006-06-26 20:05       ` Herbert Poetzl
2006-06-27  9:25         ` Andrey Savochkin
2006-06-28 13:51       ` Daniel Lezcano
2006-06-28 14:19         ` Herbert Poetzl
2006-06-28 14:30         ` Andrey Savochkin
2006-06-28 14:34           ` Kirill Korotaev
2006-06-28 16:56             ` Daniel Lezcano
2006-06-28 17:10               ` Ben Greear
2006-06-28 15:05         ` Eric W. Biederman
2006-06-26 15:13 ` [RFC][patch 1/4] Network namespaces: cleanup of dev_base list use Eric W. Biederman
2006-06-26 15:42   ` Andrey Savochkin [this message]
2006-06-26 16:26     ` [patch " Eric W. Biederman
2006-06-26 20:14       ` Andrey Savochkin
2006-06-26 21:02         ` Eric W. Biederman
2006-06-27  6:59   ` [RFC][patch " Kirill Korotaev
2006-06-27 11:13     ` Eric W. Biederman
2006-06-27 15:08       ` Kirill Korotaev
2006-06-27 15:26         ` Serge E. Hallyn
2006-06-27 16:54         ` Eric W. Biederman
2006-06-27 17:20 ` [RFC] Network namespaces a path to mergable code Eric W. Biederman
2006-06-27 17:58   ` Andrey Savochkin
2006-06-27 22:20     ` Sam Vilain
2006-06-28  4:33       ` Eric W. Biederman
2006-06-28  5:59         ` Abdallah Chatila
2006-06-28  6:19         ` Sam Vilain
2006-06-28  6:55           ` Eric W. Biederman
2006-06-28  9:54             ` Cedric Le Goater
2006-06-28 14:03               ` Eric W. Biederman
2006-06-28 14:15                 ` Serge E. Hallyn
2006-06-28 14:56                   ` Eric W. Biederman
2006-06-28  4:20     ` Eric W. Biederman
2006-06-28 11:06       ` Andrey Savochkin
2006-06-28 16:51         ` Eric W. Biederman
2006-06-28 17:22           ` Andrey Savochkin
2006-06-28 17:40             ` Herbert Poetzl
2006-06-28 17:50             ` Eric W. Biederman
2006-06-28 18:11             ` Eric W. Biederman
2006-06-28 18:14             ` Eric W. Biederman
2006-06-28 18:51               ` Andrey Savochkin
2006-06-28 21:53         ` Daniel Lezcano
2006-06-28 22:54           ` James Morris
2006-06-29  0:19             ` Eric W. Biederman
2006-06-29  0:25           ` Eric W. Biederman
2006-06-29  9:42             ` Daniel Lezcano
2006-06-28 10:20   ` [RFC] " Cedric Le Goater
2006-06-28 15:20     ` 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=20060626194205.C989@castle.nmd.msu.ru \
    --to=saw@swsoft.com \
    --cc=akpm@osdl.org \
    --cc=alexey@sw.ru \
    --cc=clg@fr.ibm.com \
    --cc=dev@sw.ru \
    --cc=devel@openvz.org \
    --cc=dlezcano@fr.ibm.com \
    --cc=ebiederm@xmission.com \
    --cc=haveblue@us.ibm.com \
    --cc=herbert@13thfloor.at \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=sam@vilain.net \
    --cc=serue@us.ibm.com \
    --cc=viro@ftp.linux.org.uk \
    /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