All of lore.kernel.org
 help / color / mirror / Atom feed
* CGroup Namespaces (v4)
@ 2015-11-16 19:51 ` serge
  0 siblings, 0 replies; 146+ messages in thread
From: serge-A9i7LUbDfNHQT0dZR+AlfA @ 2015-11-16 19:51 UTC (permalink / raw)
  To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
  Cc: linux-api-u79uwXL29TY76Z2rM5mHXA,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	ebiederm-aS9lmoZGLiVWk0Htik3J/w,
	lxc-devel-cunTk1MwBs9qMoObBWhMNEqPaTDuhLve2LY78lusg7I,
	tj-DgEjT+Ai2ygdnm+yROfE0A, cgroups-u79uwXL29TY76Z2rM5mHXA,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b

Hi,

following is a revised set of the CGroup Namespace patchset which Aditya
Kali has previously sent.  The code can also be found in the cgroupns.v4
branch of

https://git.kernel.org/cgit/linux/kernel/git/sergeh/linux-security.git/

To summarize the semantics:

1. CLONE_NEWCGROUP re-uses 0x02000000, which was previously CLONE_STOPPED

2. unsharing a cgroup namespace makes all your current cgroups your new
cgroup root.

3. /proc/pid/cgroup always shows cgroup paths relative to the reader's
cgroup namespce root.  A task outside of  your cgroup looks like

	8:memory:/../../..

4. when a task mounts a cgroupfs, the cgroup which shows up as root depends
on the mounting task's  cgroup namespace.

5. setns to a cgroup namespace switches your cgroup namespace but not
your cgroups.

With this, using github.com/hallyn/lxc #2015-11-09/cgns (and
github.com/hallyn/lxcfs #2015-11-10/cgns) we can start a container in a full
proper cgroup namespace, avoiding either cgmanager or lxcfs cgroup bind mounts.

This is completely backward compatible and will be completely invisible
to any existing cgroup users (except for those running inside a cgroup
namespace and looking at /proc/pid/cgroup of tasks outside their
namespace.)

Changes from V3:
1. Rebased onto latest cgroup changes.  In particular switch to
   css_set_lock and ns_common.
2. Support all hierarchies.

Changes from V2:
1. Added documentation in Documentation/cgroups/namespace.txt
2. Fixed a bug that caused crash
3. Incorporated some other suggestions from last patchset:
   - removed use of threadgroup_lock() while creating new cgroupns
   - use task_lock() instead of rcu_read_lock() while accessing
     task->nsproxy
   - optimized setns() to own cgroupns
   - simplified code around sane-behavior mount option parsing
4. Restored ACKs from Serge Hallyn from v1 on few patches that have
   not changed since then.

Changes from V1:
1. No pinning of processes within cgroupns. Tasks can be freely moved
   across cgroups even outside of their cgroupns-root. Usual DAC/MAC policies
   apply as before.
2. Path in /proc/<pid>/cgroup is now always shown and is relative to
   cgroupns-root. So path can contain '/..' strings depending on cgroupns-root
   of the reader and cgroup of <pid>.
3. setns() does not require the process to first move under target
   cgroupns-root.

Changes form RFC (V0):
1. setns support for cgroupns
2. 'mount -t cgroup cgroup <mntpt>' from inside a cgroupns now
   mounts the cgroup hierarcy with cgroupns-root as the filesystem root.
3. writes to cgroup files outside of cgroupns-root are not allowed
4. visibility of /proc/<pid>/cgroup is further restricted by not showing
   anything if the <pid> is in a sibling cgroupns and its cgroup falls outside
   your cgroupns-root.

^ permalink raw reply	[flat|nested] 146+ messages in thread

end of thread, other threads:[~2015-12-07 15:53 UTC | newest]

Thread overview: 146+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-16 19:51 CGroup Namespaces (v4) serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51 ` serge
2015-11-16 19:51 ` [PATCH 2/8] sched: new clone flag CLONE_NEWCGROUP for cgroup namespace serge
2015-11-16 19:51   ` serge-A9i7LUbDfNHQT0dZR+AlfA
     [not found] ` <1447703505-29672-1-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-16 19:51   ` [PATCH 1/8] kernfs: Add API to generate relative kernfs path serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51     ` serge
     [not found]     ` <1447703505-29672-2-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-24 16:16       ` Tejun Heo
2015-11-24 16:16     ` Tejun Heo
2015-11-24 16:16       ` Tejun Heo
2015-11-24 16:17       ` Tejun Heo
2015-11-24 16:17         ` Tejun Heo
2015-11-24 17:43         ` Serge E. Hallyn
2015-11-24 17:43           ` Serge E. Hallyn
     [not found]         ` <20151124161709.GM17033-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-11-24 17:43           ` Serge E. Hallyn
     [not found]       ` <20151124161630.GL17033-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-11-24 16:17         ` Tejun Heo
2015-11-27  5:25         ` Serge E. Hallyn
2015-11-27  5:25       ` Serge E. Hallyn
2015-11-27  5:25         ` Serge E. Hallyn
     [not found]         ` <20151127052511.GA25490-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-30 15:11           ` Tejun Heo
2015-11-30 15:11         ` Tejun Heo
2015-11-30 15:11           ` Tejun Heo
2015-11-30 18:37           ` Serge E. Hallyn
2015-11-30 18:37             ` Serge E. Hallyn
2015-11-30 22:53             ` Tejun Heo
     [not found]               ` <20151130225318.GD9039-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-01  2:08                 ` Serge E. Hallyn
2015-12-01  2:08               ` Serge E. Hallyn
2015-12-01  2:08                 ` Serge E. Hallyn
     [not found]             ` <20151130183758.GA25433-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-30 22:53               ` Tejun Heo
     [not found]           ` <20151130151147.GG3535-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-11-30 18:37             ` Serge E. Hallyn
2015-11-16 19:51   ` [PATCH 2/8] sched: new clone flag CLONE_NEWCGROUP for cgroup namespace serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51   ` [PATCH 3/8] cgroup: add function to get task's cgroup serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51     ` serge
     [not found]     ` <1447703505-29672-4-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-24 16:27       ` Tejun Heo
2015-11-24 16:27         ` Tejun Heo
     [not found]         ` <20151124162728.GN17033-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-11-24 16:54           ` Tejun Heo
2015-11-24 16:54         ` Tejun Heo
2015-11-24 16:54           ` Tejun Heo
2015-11-16 19:51   ` [PATCH 4/8] cgroup: export cgroup_get() and cgroup_put() serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51   ` [PATCH 5/8] cgroup: introduce cgroup namespaces serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51     ` serge
2015-11-24 16:49     ` Tejun Heo
2015-11-24 16:49       ` Tejun Heo
     [not found]     ` <1447703505-29672-6-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-24 16:49       ` Tejun Heo
2015-11-16 19:51   ` [PATCH 6/8] cgroup: cgroup namespace setns support serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51     ` serge
     [not found]     ` <1447703505-29672-7-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-24 16:52       ` Tejun Heo
2015-11-24 16:52     ` Tejun Heo
2015-11-24 16:52       ` Tejun Heo
2015-11-16 19:51   ` [PATCH 7/8] cgroup: mount cgroupns-root when inside non-init cgroupns serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51     ` serge
     [not found]     ` <1447703505-29672-8-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-24 17:16       ` Tejun Heo
2015-11-24 17:16     ` Tejun Heo
2015-11-24 17:16       ` Tejun Heo
2015-11-25  6:01       ` Serge E. Hallyn
     [not found]         ` <20151125060156.GA678-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-25 19:10           ` Tejun Heo
2015-11-25 19:10         ` Tejun Heo
2015-11-25 19:10           ` Tejun Heo
     [not found]           ` <20151125191041.GB14240-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2015-11-25 19:55             ` Serge Hallyn
2015-11-25 19:55           ` Serge Hallyn
2015-11-25 19:55             ` Serge Hallyn
2015-11-25 19:57             ` Tejun Heo
2015-11-25 19:57               ` Tejun Heo
2015-11-25 19:57             ` Tejun Heo
     [not found]       ` <20151124171610.GS17033-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-11-25  6:01         ` Serge E. Hallyn
2015-11-27  5:17         ` Serge E. Hallyn
2015-11-27  5:17       ` Serge E. Hallyn
2015-11-27  5:17         ` Serge E. Hallyn
     [not found]         ` <20151127051745.GA24521-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-30 15:09           ` Tejun Heo
2015-11-30 15:09         ` Tejun Heo
2015-11-30 15:09           ` Tejun Heo
     [not found]           ` <20151130150938.GF3535-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-01  4:07             ` Serge E. Hallyn
2015-12-01  4:07           ` Serge E. Hallyn
2015-12-01  4:07             ` Serge E. Hallyn
     [not found]             ` <20151201040704.GA31067-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-12-01 16:46               ` Tejun Heo
2015-12-01 16:46             ` Tejun Heo
2015-12-01 16:46               ` Tejun Heo
2015-12-01 21:58               ` Serge E. Hallyn
2015-12-01 21:58                 ` Serge E. Hallyn
2015-12-02 16:53                 ` Tejun Heo
2015-12-02 16:53                   ` Tejun Heo
     [not found]                   ` <20151202165312.GB19878-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-02 16:56                     ` Serge E. Hallyn
2015-12-02 16:56                   ` Serge E. Hallyn
2015-12-02 16:56                     ` Serge E. Hallyn
2015-12-02 16:58                     ` Tejun Heo
2015-12-02 16:58                       ` Tejun Heo
     [not found]                       ` <20151202165839.GD19878-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-02 17:02                         ` Serge E. Hallyn
2015-12-02 17:02                       ` Serge E. Hallyn
2015-12-02 17:02                         ` Serge E. Hallyn
     [not found]                         ` <20151202170239.GA21009-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-12-02 17:05                           ` Tejun Heo
2015-12-02 17:05                             ` Tejun Heo
2015-12-03 22:47                             ` Serge E. Hallyn
2015-12-03 22:47                               ` Serge E. Hallyn
2015-12-07 15:39                               ` Tejun Heo
2015-12-07 15:39                                 ` Tejun Heo
     [not found]                                 ` <20151207153911.GF9175-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-07 15:53                                   ` Serge Hallyn
2015-12-07 15:53                                     ` Serge Hallyn
     [not found]                               ` <20151203224706.GA19971-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-12-07 15:39                                 ` Tejun Heo
     [not found]                             ` <20151202170551.GE19878-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-03 22:47                               ` Serge E. Hallyn
     [not found]                     ` <20151202165637.GA20840-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-12-02 16:58                       ` Tejun Heo
     [not found]                 ` <20151201215853.GA9153-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-12-02 16:53                   ` Tejun Heo
     [not found]               ` <20151201164649.GD12922-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-01 21:58                 ` Serge E. Hallyn
2015-11-16 19:51   ` [PATCH 8/8] cgroup: Add documentation for cgroup namespaces serge-A9i7LUbDfNHQT0dZR+AlfA
2015-11-16 19:51     ` serge
2015-11-24 17:16     ` Tejun Heo
2015-11-24 17:16       ` Tejun Heo
     [not found]     ` <1447703505-29672-9-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-24 17:16       ` Tejun Heo
2015-11-16 20:41   ` CGroup Namespaces (v4) Richard Weinberger
2015-11-16 19:51 ` [PATCH 4/8] cgroup: export cgroup_get() and cgroup_put() serge
2015-11-16 19:51   ` serge-A9i7LUbDfNHQT0dZR+AlfA
     [not found]   ` <1447703505-29672-5-git-send-email-serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2015-11-24 16:30     ` Tejun Heo
2015-11-24 16:30       ` Tejun Heo
2015-11-24 22:35       ` Serge E. Hallyn
2015-11-24 22:35         ` Serge E. Hallyn
     [not found]       ` <20151124163056.GO17033-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-11-24 22:35         ` Serge E. Hallyn
2015-11-16 20:41 ` CGroup Namespaces (v4) Richard Weinberger
2015-11-16 20:41   ` Richard Weinberger
2015-11-16 20:46   ` Serge E. Hallyn
2015-11-16 20:46     ` Serge E. Hallyn
2015-11-16 20:50     ` Richard Weinberger
2015-11-16 20:50       ` Richard Weinberger
2015-11-16 20:54       ` Serge E. Hallyn
2015-11-16 20:54         ` Serge E. Hallyn
2015-11-16 22:24         ` Eric W. Biederman
2015-11-16 22:24           ` Eric W. Biederman
2015-11-16 22:37           ` Tejun Heo
2015-11-16 22:37             ` Tejun Heo
     [not found]           ` <87y4dxh9b8.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2015-11-16 22:37             ` Tejun Heo
2015-11-17  1:13             ` Serge E. Hallyn
2015-11-17  1:13               ` Serge E. Hallyn
2015-11-17  1:13               ` Serge E. Hallyn
2015-11-17  1:40               ` Serge E. Hallyn
2015-11-17  1:40                 ` Serge E. Hallyn
2015-11-17  3:54                 ` Serge E. Hallyn
2015-11-17  3:54                   ` Serge E. Hallyn
     [not found]                 ` <20151117014026.GA2331-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-17  3:54                   ` Serge E. Hallyn
     [not found]               ` <20151117011349.GA1958-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-17  1:40                 ` Serge E. Hallyn
2015-11-18  2:30             ` Serge E. Hallyn
2015-11-18  2:30               ` Serge E. Hallyn
     [not found]               ` <20151118023022.GA17501-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-18  9:18                 ` Eric W. Biederman
2015-11-18  9:18                   ` Eric W. Biederman
     [not found]                   ` <87r3jnfyx7.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2015-11-18 15:43                     ` Serge E. Hallyn
2015-11-18 15:43                       ` Serge E. Hallyn
     [not found]         ` <20151116205452.GA30975-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-16 22:24           ` Eric W. Biederman
     [not found]       ` <564A41AF.4040208-/L3Ra7n9ekc@public.gmane.org>
2015-11-16 20:54         ` Serge E. Hallyn
     [not found]     ` <20151116204606.GA30681-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2015-11-16 20:50       ` Richard Weinberger
     [not found]   ` <CAFLxGvzVmbZHrpaTmXUAK03hsnVPwEs3SJGNFNXfthh3NL8EDg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-11-16 20:46     ` Serge E. Hallyn

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.