linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Albert Cahalan" <acahalan@gmail.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: "Serge E. Hallyn" <serge@hallyn.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	pbadari@us.ibm.com, torvalds@linux-foundation.org
Subject: Re: [RFC][PATCH] /proc/pid/maps doesn't match "ipcs -m" shmid
Date: Fri, 8 Jun 2007 02:51:56 -0400	[thread overview]
Message-ID: <787b0d920706072351s6917ad77oe0bf381a5d5817d0@mail.gmail.com> (raw)
In-Reply-To: <m1ejknrnva.fsf@ebiederm.dsl.xmission.com>

On 6/8/07, Eric W. Biederman <ebiederm@xmission.com> wrote:
> "Albert Cahalan" <acahalan@gmail.com> writes:
> > On 6/7/07, Eric W. Biederman <ebiederm@xmission.com> wrote:

> >> So it looks to me like we need to do three things:
> >> - Fix the inode number
> >> - Fix the name on the hugetlbfs dentry to hold the key
> >> - Add a big fat comment that user space programs depend on this
> >>   behavior of both the dentry name and the inode number.
> >
> > Assuming that this proposed fix goes in:
> >
> > Since the inode number is the shmid, and this is a number
> > that the kernel randomly chooses AFAIK, there should be
> > no need to have different shm segments sharing the same
> > inode number.
>
> Where we run into inode number confusion is that all of
> these shm segments are actually files on a tmpfs filesystem
> somewhere, and by making the inode number the shmid we loose
> the tmpfs inode number.  So it is possible we get tmpfs inode
> number conflicts.  However the inode number is not used for
> anything, and the files are not visible in any other way except
> as shm segments so it doesn't matter.

Eh, the kernel choses both shmid and tmpfs inode number.
You could set a high bit in one or the other.

> There is another case with ipc namespaces where we ultimately need
> to support duplicate shmids on the same machine (so migration
> is a possibility).  However by and large the user space
> processes with duplicate ids should be invisible to each other.

On the bright side, this only screws up people who get the
crazy idea that processes can be migrated.

> > The situation with the key is a bit more disturbing, though
> > we already hit that anyway when IPC_PRIVATE is used.
> > (why anybody would NOT use IPC_PRIVATE is a mystery)
> > So having the key in the name doesn't make things worse.
>
> Having "SYSV" in the name appears mandatory.  Otherwise you
> don't even know it is a shm file. Although I may be confused.

It's mandatory for a different reason: to satisfy parsers.

It is nearly useless for identifying shm files. Look what I can do:
    touch /SYSV00000000
    touch '/SYSV00000000 (deleted)'

(so pmap creates a shm, looks for the address in /proc/self/maps,
determines the device major/minor in use, and then uses that)

> Hmm.  Thinking about this I have just realized that we may want
> to approach this a little differently.  Currently I am reusing
> the dentry and inode structure that hugetlbfs and tmpfs return
> me, and simply have a distinct struct file for each shm mapping.
>
> There is a little more cost but it may actually make sense to have
> a dentry and inode that is specific to shm.c so we can do whatever
> we need to without adding requirements to the normal tmpfs or hugtlb
> code.

Piggybacking on tmpfs has always seemed a bit dirty to me.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2007-06-08  6:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-07  3:27 Albert Cahalan
2007-06-07  3:44 ` Andrew Morton
2007-06-07  4:53   ` Albert Cahalan
2007-06-07 16:20     ` Serge E. Hallyn
2007-06-08  3:45       ` Eric W. Biederman
2007-06-08  4:41         ` Albert Cahalan
2007-06-08  5:55           ` Eric W. Biederman
2007-06-08  6:51             ` Albert Cahalan [this message]
2007-06-08 22:31               ` [PATCH] Restore shmid as inode# to fix /proc/pid/maps ABI breakage Badari Pulavarty
2007-06-08 16:07         ` [RFC][PATCH] /proc/pid/maps doesn't match "ipcs -m" shmid Badari Pulavarty
2007-06-08 23:43           ` [PATCH] shm: Fix the filename of hugetlb sysv shared memory Eric W. Biederman
2007-06-08 23:55             ` Andrew Morton
2007-06-09  4:32               ` Badari Pulavarty
2007-06-09  8:01                 ` Eric W. Biederman
2007-06-11 18:11             ` Andrew Morton
2007-06-11 19:55               ` Badari Pulavarty
2007-06-11 19:00             ` Adam Litke
2007-06-11 20:53               ` Ken Chen
2007-06-07 16:23     ` [RFC][PATCH] /proc/pid/maps doesn't match "ipcs -m" shmid Badari Pulavarty
2007-06-07 16:43       ` Albert Cahalan
2007-06-07 17:06         ` Badari Pulavarty
2007-06-07 19:48           ` Andrew Morton
2007-06-07 19:59             ` Badari Pulavarty
2007-06-07 20:37               ` Serge E. Hallyn
2007-06-07 20:51                 ` Serge E. Hallyn
2007-06-07 21:16                 ` Badari Pulavarty
2007-06-07 22:08                   ` Serge E. Hallyn
2007-06-07 22:21                     ` Badari Pulavarty
2007-06-07 22:22                     ` Serge E. Hallyn
2007-06-07 23:57                       ` Badari Pulavarty
  -- strict thread matches above, loose matches on Subject: below --
2007-06-06 16:07 Badari Pulavarty
2007-06-06 17:02 ` Eric W. Biederman
2007-06-06 17:37   ` Badari Pulavarty
2007-06-06 18:24     ` Eric W. Biederman

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=787b0d920706072351s6917ad77oe0bf381a5d5817d0@mail.gmail.com \
    --to=acahalan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=pbadari@us.ibm.com \
    --cc=serge@hallyn.com \
    --cc=torvalds@linux-foundation.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