Messages in this thread | | | Date | Fri, 16 Jan 2009 20:02:48 -0600 | From | "Serge E. Hallyn" <> | Subject | [Patch 0/3] posix mqueue namespace (v14) |
| |
IPC namespaces are completely disjoint id->object mappings. A task can pass CLONE_NEWIPC to unshare and clone to get a new, empty, IPC namespace. Until now this has supported SYSV IPC.
Most Posix IPC is done in userspace. The posix mqueue support, however, is implemented on top of the mqueue fs.
This patchset implements multiple mqueue fs instances, one per IPC namespace to be precise.
To create a new ipc namespace with posix mq support, you should now:
unshare(CLONE_NEWIPC|CLONE_NEWNS); umount /dev/mqueue mount -t mqueue mqueue /dev/mqueue
It's perfectly valid to do vfs operations on files in another ipc_namespace's /dev/mqueue, but any use of mq_open(3) and friends will act in your own ipc_ns. After the ipc namespace has exited, you can still unlink but no longer create files in that fs (since accounting is carried.
Changelog: v14: (Jan 16 2009) port to linux-next v13: (Dec 28 2009) 1. addressed comments by Dave and Suka 2. ported Cedric's patch to make posix mq sysctls per-namespace
When convenient, it would be great to see this tested in -mm.
thanks, -serge
| |