public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: "Albert Cahalan" <acahalan@gmail.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: Thu, 07 Jun 2007 23:55:53 -0600	[thread overview]
Message-ID: <m1ejknrnva.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <787b0d920706072141s5a34ecb3n97007ad857ba4dc9@mail.gmail.com> (Albert Cahalan's message of "Fri, 8 Jun 2007 00:41:45 -0400")

"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.

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.

> 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.

> I have some concern about the device minor number.
> This should be the same for all shm mappings; I do not
> know if the behavior changed.

So I haven't changed anything here.  But I haven't really
looked either.

I don't have a clue if hugetlbfs files use the same device minor
number as tmpfs files.

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.

Eric

  reply	other threads:[~2007-06-08  5:57 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-07  3:27 [RFC][PATCH] /proc/pid/maps doesn't match "ipcs -m" shmid 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 [this message]
2007-06-08  6:51             ` Albert Cahalan
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=m1ejknrnva.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=acahalan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --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