Linux Container Development
 help / color / mirror / Atom feed
From: "Serge E. Hallyn" <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org
Cc: kyle-hoO6YkzgTuCM0SS3m2neIg@public.gmane.org,
	"David C. Hansen"
	<haveblue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
	bastian-yyjItF7Rl6lg9hUCZPvPmw@public.gmane.org,
	ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
	hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org,
	containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org,
	xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org,
	alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org
Subject: Re: [PATCH 0/9] Multiple devpts instances
Date: Thu, 16 Oct 2008 10:19:58 -0500	[thread overview]
Message-ID: <20081016151958.GA19425@us.ibm.com> (raw)
In-Reply-To: <20081015053000.GA2039-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>

Quoting sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org (sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org):
> 
> Enable multiple instances of devpts filesystem so each container can allocate
> ptys independently.

Hey Suka,

I was playing with this a bit last night, trying to make it oops, i.e.
create an sshd in a child ptsns ssh to it, and umount -l /dev/pts out
from under me.  Etc.  Ran ltp.

All seemed fine.

Tested-by: Serge Hallyn <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Acked-by: Serge Hallyn <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>

thanks,
-serge

> User interface:
> 
> 	Since supporting multiple mounts of devpts can break user-space, this
> 	feature is enabled only if:
> 
> 		- CONFIG_DEVPTS_MULTIPLE_INSTANCES=y (new config token), and
> 		- new mount option, -o newinstance is specified
> 
> 	If CONFIG_DEVPTS_MULTIPLE_INSTANCES=n, there should be no change in
> 	behavior.
> 
> 	See [PATCH 9/9] - Documentation/filesystems/devpts.txt for detailed
> 	usage/compatibility information.
> 
> 		[PATCH 1/9] Remove devpts_root global
> 		[PATCH 2/9] Per-mount allocated_ptys
> 		[PATCH 3/9] Per-mount 'config' object
> 		[PATCH 4/9] Extract option parsing to new function
> 		[PATCH 5/9] Add DEVPTS_MULTIPLE_INSTANCES config token
> 		[PATCH 6/9] Define mknod_ptmx()
> 		[PATCH 7/9] Define get_init_pts_sb()
> 		[PATCH 8/9] Enable multiple instances of devpts
> 		[PATCH 9/9] Document usage of multiple-instances of devpts
> 	
> Implementation notes:
> 
> 	1. To enable multiple mounts of /dev/pts, (most) devpts interfaces
> 	   need to know which instance of devpts is being accessed. This
> 	   patchset uses the 'struct inode' or 'struct tty_struct' of the
> 	   device being accessed to identify the appropriate devpts instance.
> 	   Hence the need for the /dev/pts/ptmx bind-mount.
> 
> 	2. Mount options must be parsed twice during mount (once to determine
> 	   the mode of mount (single/multi-instance) and once to actually
> 	   save the options. There does not seem to be an easy way to parse
> 	   once and reuse (See 'safe_process_mount_opts()' in [PATCH 9/10])
> 
> 
> Changelog [v5]:
> 	- Merge all option-parsing (previously in patches 6,7) into patch 6.
> 	- Bugfixes (see changelog in patches 6 and 8)
> 	- Replace get_sb_ref() with devpts-specific get_init_pts_sb() (patch 7)
> 	- Minor update to devpts.txt documentation (patch 9)
> 
> 
> Changelog [v4]:
> 
> 	- Port to 2008-09-04 ttydev tree (and drop patches that were merged in)
> 	- Add DEVPTS_MULTIPLE_INSTANCES config token (patch 5) and move new
> 	  behavior under #ifdef CONFIG_DEVPTS_MULTIPLE_INSTANCES. 
> 	- Create ptmx node even in initial mount 
> 	- Change default permissions of pts/ptmx node to 0000 (patch 6)
> 	- Cache ptmx dentry and use to update permissions of ptmx node on
> 	  remount so legacy mode can use the node with a simpler change to
> 	  /etc/fstab (patch 7)
> 	- Move get_sb_ref() helper code to separate patch (patch 8)
> 	- Add Documentation/filesystems/devpts.txt and describe usage info
> 	  in that file.
> 	  
> Changelog [v3]:
> 
> 	- Port to 2008-08-28 ttydev tree
> 	- Rename new mount options to 'ptmxmode' and 'newinstance'.
> 	- [Alan Cox] Use tty driver data to identify devpts (this is used to
> 	  cleanup get_node() in devpts_pty_kill()).
> 	- [H. Peter Anvin] get_node() cleanup in devpts (which was enabled by
> 	  the inode/tty parameter to devpts interfaces)
> 	- Bugfix in multi-mount mode (see Patch 11/11).
> 	- Executed pty tests in LTP (in both single-instance and multi-instance
> 	  mode)
> 	- Should be bisect-safe :-)
> 
> Changelog [v2]:
> 
> 	- New mount option '-o newmnt' added (patch 8/8)
> 	- Support both single-mount and multi-mount semantics (patch 8/8)
> 	- Automatically create ptmx node when devpts is mounted (patch 7/8)
> 	- Extract option parsing code to new function (patch 6/8)
> 	- Make 'config' params per-mount variables (patch 5/8)
> 	- Slightly re-ordered existing patches in set (patches 1/8, 2/8)
> 
> TODO:
> 	- Do we need a '-o ptmxuid' and '-o ptmxgid' options as well ?
> 	- Update mount(8) man page
> 	- (Sometime in future) Remove even initial kernel mount of devpts 
> 	- Any other good test suites to test this (besides LTP, sshd).

  parent reply	other threads:[~2008-10-16 15:19 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-15  5:30 [PATCH 0/9] Multiple devpts instances sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
     [not found] ` <20081015053000.GA2039-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-10-15  5:33   ` [PATCH 1/9] Remove devpts_root global sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:33   ` [PATCH 2/9] Per-mount allocated_ptys sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:34   ` [PATCH 3/9] Per-mount 'config' object sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:35   ` [PATCH 4/9] Extract option parsing to new function sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:35   ` [PATCH 5/9] Add DEVPTS_MULTIPLE_INSTANCES config token sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:36   ` [PATCH 6/9] Define mknod_ptmx() sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:37   ` [PATCH 7/9] Define get_init_pts_sb() sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:37   ` [PATCH 8/9] Enable multiple instances of devpts sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-15  5:38   ` [PATCH 9/9] Document usage of multiple-instances " sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
     [not found]     ` <20081015053800.GI2215-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-10-15 18:57       ` Serge E. Hallyn
     [not found]         ` <20081015185722.GA30005-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-10-15 19:03           ` H. Peter Anvin
     [not found]             ` <48F63E76.3030907-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2008-10-15 19:48               ` Serge E. Hallyn
2008-10-16 15:19   ` Serge E. Hallyn [this message]
2009-02-19 15:43   ` [PATCH 0/9] Multiple devpts instances Daniel Lezcano
     [not found]     ` <499D7E13.10601-GANU6spQydw@public.gmane.org>
2009-02-19 17:32       ` H. Peter Anvin
     [not found]         ` <499D97B1.1090902-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2009-02-19 18:09           ` Daniel Lezcano
     [not found]             ` <499DA069.3040603-GANU6spQydw@public.gmane.org>
2009-02-19 19:58               ` H. Peter Anvin
     [not found]                 ` <499DB9DA.2070301-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2009-02-19 22:28                   ` Eric W. Biederman
     [not found]                     ` <m1vdr6xdqv.fsf-+imSwln9KH6u2/kzUuoCbdi2O/JbrIOy@public.gmane.org>
2009-02-20  4:22                       ` H. Peter Anvin
2009-02-19 22:42                   ` Daniel Lezcano
     [not found]                     ` <499DE06E.4030108-GANU6spQydw@public.gmane.org>
2009-02-19 22:46                       ` H. Peter Anvin
2009-02-19 23:59                       ` Eric W. Biederman
     [not found]                         ` <m1eixuvv00.fsf-+imSwln9KH6u2/kzUuoCbdi2O/JbrIOy@public.gmane.org>
2009-02-23 20:56                           ` Serge E. Hallyn
     [not found]                             ` <20090223205609.GA32351-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-02-23 21:18                               ` H. Peter Anvin
     [not found]                                 ` <49A31299.8040501-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2009-02-23 22:27                                   ` Serge E. Hallyn
2009-02-24  4:09                                   ` Eric W. Biederman
2009-02-23 21:19                               ` Daniel Lezcano
     [not found]                                 ` <49A312E6.9090900-GANU6spQydw@public.gmane.org>
2009-02-23 21:23                                   ` H. Peter Anvin

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=20081016151958.GA19425@us.ibm.com \
    --to=serue-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
    --cc=alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org \
    --cc=bastian-yyjItF7Rl6lg9hUCZPvPmw@public.gmane.org \
    --cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=haveblue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
    --cc=kyle-hoO6YkzgTuCM0SS3m2neIg@public.gmane.org \
    --cc=sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
    --cc=xemul-GEFAQzZX7r8dnm+yROfE0A@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