Re: [RFC][PATCH 1/5] uts namespaces: Implement utsname namespaces

From: Serge E. Hallyn
Date: Sat Apr 08 2006 - 16:34:41 EST


Quoting Andi Kleen (ak@xxxxxxx):
> "Serge E. Hallyn" <serue@xxxxxxxxxx> writes:
>
> > This patch defines the uts namespace and some manipulators.
> > Adds the uts namespace to task_struct, and initializes a
> > system-wide init namespace which will continue to be used when
> > it makes sense.
>
> So to get this straight - you want to add a new pointer to
> task_struct for each possible virtualized entity?
>
> After you're doing by how many bytes will task_struct be bloated?
> I don't think that's a very good approach because you'll crank
> up the per thread memory overhead which is already far too big
> in Linux. Also it adds cache foot print and generally makes
> things slower.
>
> If anything I would request using a proxy data structure
> that contains all the virtualized namespaces for a set
> of processes. And give each task only has a single pointer
> to one of these.

This is something we've been discussing - whether to use a single
"container" structure pointing to all the namespaces, or put everything
into the task_struct. Using container structs means more cache misses
and refcounting issues, but keeps task_struct smaller as you point out.

The consensus so far has been to start putting things into task_struct
and move if needed. At least the performance numbers show that so far
there is no impact.

iirc container patches have been sent before. Should those be resent,
then, and perhaps this patchset rebased on those?

thanks,
-serge
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/