All of lore.kernel.org
 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 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.