Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Ken Chen

On 6/11/07, Adam Litke <[EMAIL PROTECTED]> wrote:

On 6/8/07, Eric W. Biederman <[EMAIL PROTECTED]> wrote:
> -struct file *hugetlb_zero_setup(size_t size)
> +struct file *hugetlb_file_setup(const char *name, size_t size)

The bulk of this patch seems to handle renaming this function.  Is
that really necessary?


It looks OK to me though, because the argument list to that function
is changed.  Avoid change the function name isn't going to reduce the
patch size either.  So we might just change the name as well to match
the function name shmem_file_setup().
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Badari Pulavarty
On Mon, 2007-06-11 at 11:11 -0700, Andrew Morton wrote:
> On Fri, 08 Jun 2007 17:43:34 -0600
> [EMAIL PROTECTED] (Eric W. Biederman) wrote:
> 
> > Some user space tools need to identify SYSV shared memory when
> > examining /proc//maps.  To do so they look for a block device
> > with major zero, a dentry named SYSV, and having the minor of
> > the internal sysv shared memory kernel mount.
> > 
> > To help these tools and to make it easier for people just browsing
> > /proc//maps this patch modifies hugetlb sysv shared memory to
> > use the SYSV dentry naming convention.
> > 
> > User space tools will still have to be aware that hugetlb sysv
> > shared memory lives on a different internal kernel mount and so
> > has a different block device minor number from the rest of sysv
> > shared memory.
> 
> So..  I am sitting here believing that this patch and Badari's
> restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage.patch are both
> needed in 2.6.22 and that they will fix all these issues up.
> 
> If that is untrue, someone please let us know..

Andrew,

My restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage.patch is
definitely needed for 2.6.22 to fix ABI issue.

Eric's patch goes beyond and provides same naming convention for
hugetlbfs backed shm segs (which we never did in the past). So,
its not absolutely need for 2.6.22. You can queue up for next 
release,  unless Albert really wants to extend proc-ps utils for
hugetlbfs segments too.

But, its very simple patch - you might as well push this too.

Thanks,
Badari

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Adam Litke

On 6/8/07, Eric W. Biederman <[EMAIL PROTECTED]> wrote:

-struct file *hugetlb_zero_setup(size_t size)
+struct file *hugetlb_file_setup(const char *name, size_t size)


The bulk of this patch seems to handle renaming this function.  Is
that really necessary?

--
Adam Litke ( agl at us.ibm.com )
IBM Linux Technology Center
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Andrew Morton
On Fri, 08 Jun 2007 17:43:34 -0600
[EMAIL PROTECTED] (Eric W. Biederman) wrote:

> Some user space tools need to identify SYSV shared memory when
> examining /proc//maps.  To do so they look for a block device
> with major zero, a dentry named SYSV, and having the minor of
> the internal sysv shared memory kernel mount.
> 
> To help these tools and to make it easier for people just browsing
> /proc//maps this patch modifies hugetlb sysv shared memory to
> use the SYSV dentry naming convention.
> 
> User space tools will still have to be aware that hugetlb sysv
> shared memory lives on a different internal kernel mount and so
> has a different block device minor number from the rest of sysv
> shared memory.

So..  I am sitting here believing that this patch and Badari's
restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage.patch are both
needed in 2.6.22 and that they will fix all these issues up.

If that is untrue, someone please let us know..
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Andrew Morton
On Fri, 08 Jun 2007 17:43:34 -0600
[EMAIL PROTECTED] (Eric W. Biederman) wrote:

 Some user space tools need to identify SYSV shared memory when
 examining /proc/pid/maps.  To do so they look for a block device
 with major zero, a dentry named SYSVsysv key, and having the minor of
 the internal sysv shared memory kernel mount.
 
 To help these tools and to make it easier for people just browsing
 /proc/pid/maps this patch modifies hugetlb sysv shared memory to
 use the SYSVkey dentry naming convention.
 
 User space tools will still have to be aware that hugetlb sysv
 shared memory lives on a different internal kernel mount and so
 has a different block device minor number from the rest of sysv
 shared memory.

So..  I am sitting here believing that this patch and Badari's
restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage.patch are both
needed in 2.6.22 and that they will fix all these issues up.

If that is untrue, someone please let us know..
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Adam Litke

On 6/8/07, Eric W. Biederman [EMAIL PROTECTED] wrote:

-struct file *hugetlb_zero_setup(size_t size)
+struct file *hugetlb_file_setup(const char *name, size_t size)


The bulk of this patch seems to handle renaming this function.  Is
that really necessary?

--
Adam Litke ( agl at us.ibm.com )
IBM Linux Technology Center
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Badari Pulavarty
On Mon, 2007-06-11 at 11:11 -0700, Andrew Morton wrote:
 On Fri, 08 Jun 2007 17:43:34 -0600
 [EMAIL PROTECTED] (Eric W. Biederman) wrote:
 
  Some user space tools need to identify SYSV shared memory when
  examining /proc/pid/maps.  To do so they look for a block device
  with major zero, a dentry named SYSVsysv key, and having the minor of
  the internal sysv shared memory kernel mount.
  
  To help these tools and to make it easier for people just browsing
  /proc/pid/maps this patch modifies hugetlb sysv shared memory to
  use the SYSVkey dentry naming convention.
  
  User space tools will still have to be aware that hugetlb sysv
  shared memory lives on a different internal kernel mount and so
  has a different block device minor number from the rest of sysv
  shared memory.
 
 So..  I am sitting here believing that this patch and Badari's
 restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage.patch are both
 needed in 2.6.22 and that they will fix all these issues up.
 
 If that is untrue, someone please let us know..

Andrew,

My restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage.patch is
definitely needed for 2.6.22 to fix ABI issue.

Eric's patch goes beyond and provides same naming convention for
hugetlbfs backed shm segs (which we never did in the past). So,
its not absolutely need for 2.6.22. You can queue up for next 
release,  unless Albert really wants to extend proc-ps utils for
hugetlbfs segments too.

But, its very simple patch - you might as well push this too.

Thanks,
Badari

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-11 Thread Ken Chen

On 6/11/07, Adam Litke [EMAIL PROTECTED] wrote:

On 6/8/07, Eric W. Biederman [EMAIL PROTECTED] wrote:
 -struct file *hugetlb_zero_setup(size_t size)
 +struct file *hugetlb_file_setup(const char *name, size_t size)

The bulk of this patch seems to handle renaming this function.  Is
that really necessary?


It looks OK to me though, because the argument list to that function
is changed.  Avoid change the function name isn't going to reduce the
patch size either.  So we might just change the name as well to match
the function name shmem_file_setup().
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-09 Thread Eric W. Biederman
Badari Pulavarty <[EMAIL PROTECTED]> writes:

> No. You still need my patch to fix the current breakage.

Agreed.

> This patch makes hugetlbfs also use same naming convention as regular shmem 
> for
> its
> name. This is not absolutely needed, its a nice to have. Currently, user space
> tools
> can't depend on the filename alone, since its not unique (based on kry).

Exactly.  My patch is an additional fix/cleanup to bring the hugetlbfs
shm segments as close to their normal counterparts as I can.

pmap still won't recognize them as shm segments (different block device
minor number) but otherwise they are now presented identically with
normal shm segments.

Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-09 Thread Eric W. Biederman
Badari Pulavarty [EMAIL PROTECTED] writes:

 No. You still need my patch to fix the current breakage.

Agreed.

 This patch makes hugetlbfs also use same naming convention as regular shmem 
 for
 its
 name. This is not absolutely needed, its a nice to have. Currently, user space
 tools
 can't depend on the filename alone, since its not unique (based on kry).

Exactly.  My patch is an additional fix/cleanup to bring the hugetlbfs
shm segments as close to their normal counterparts as I can.

pmap still won't recognize them as shm segments (different block device
minor number) but otherwise they are now presented identically with
normal shm segments.

Eric
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-08 Thread Badari Pulavarty



Andrew Morton wrote:


On Fri, 08 Jun 2007 17:43:34 -0600
[EMAIL PROTECTED] (Eric W. Biederman) wrote:


Some user space tools need to identify SYSV shared memory when
examining /proc//maps.  To do so they look for a block device
with major zero, a dentry named SYSV, and having the minor of
the internal sysv shared memory kernel mount.

To help these tools and to make it easier for people just browsing
/proc//maps this patch modifies hugetlb sysv shared memory to
use the SYSV dentry naming convention.

User space tools will still have to be aware that hugetlb sysv
shared memory lives on a different internal kernel mount and so
has a different block device minor number from the rest of sysv
shared memory.



I assume this fix is preferred over Badari's?  If so, why?


No. You still need my patch to fix the current breakage.

This patch makes hugetlbfs also use same naming convention as regular 
shmem for its
name. This is not absolutely needed, its a nice to have. Currently, user 
space tools

can't depend on the filename alone, since its not unique (based on kry).

Thanks,
Badari






-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-08 Thread Andrew Morton
On Fri, 08 Jun 2007 17:43:34 -0600
[EMAIL PROTECTED] (Eric W. Biederman) wrote:

> Some user space tools need to identify SYSV shared memory when
> examining /proc//maps.  To do so they look for a block device
> with major zero, a dentry named SYSV, and having the minor of
> the internal sysv shared memory kernel mount.
> 
> To help these tools and to make it easier for people just browsing
> /proc//maps this patch modifies hugetlb sysv shared memory to
> use the SYSV dentry naming convention.
> 
> User space tools will still have to be aware that hugetlb sysv
> shared memory lives on a different internal kernel mount and so
> has a different block device minor number from the rest of sysv
> shared memory.

I assume this fix is preferred over Badari's?  If so, why?



From: Badari Pulavarty <[EMAIL PROTECTED]>

shmid used to be stored as inode# for shared memory segments. Some of
the proc-ps tools use this from /proc/pid/maps.  Recent cleanups
to newseg() changed it.  This patch sets inode number back to shared
memory id to fix breakage.

Signed-off-by: Badari Pulavarty <[EMAIL PROTECTED]>
Cc: "Albert Cahalan" <[EMAIL PROTECTED]>
Cc: "Eric W. Biederman" <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 ipc/shm.c |5 +
 1 files changed, 5 insertions(+)

diff -puN ipc/shm.c~restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage 
ipc/shm.c
--- a/ipc/shm.c~restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage
+++ a/ipc/shm.c
@@ -397,6 +397,11 @@ static int newseg (struct ipc_namespace 
shp->shm_nattch = 0;
shp->id = shm_buildid(ns, id, shp->shm_perm.seq);
shp->shm_file = file;
+   /*
+* shmid gets reported as "inode#" in /proc/pid/maps.
+* proc-ps tools use this. Changing this will break them.
+*/
+   file->f_dentry->d_inode->i_ino = shp->id;
 
ns->shm_tot += numpages;
shm_unlock(shp);
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-08 Thread Eric W. Biederman

Some user space tools need to identify SYSV shared memory when
examining /proc//maps.  To do so they look for a block device
with major zero, a dentry named SYSV, and having the minor of
the internal sysv shared memory kernel mount.

To help these tools and to make it easier for people just browsing
/proc//maps this patch modifies hugetlb sysv shared memory to
use the SYSV dentry naming convention.

User space tools will still have to be aware that hugetlb sysv
shared memory lives on a different internal kernel mount and so
has a different block device minor number from the rest of sysv
shared memory.

Signed-off-by: Eric W. Biederman <[EMAIL PROTECTED]>
---
 fs/hugetlbfs/inode.c|7 ++-
 include/linux/hugetlb.h |4 ++--
 ipc/shm.c   |6 +++---
 3 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index aa083dd..e6b46b3 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -736,15 +736,13 @@ static int can_do_hugetlb_shm(void)
can_do_mlock());
 }
 
-struct file *hugetlb_zero_setup(size_t size)
+struct file *hugetlb_file_setup(const char *name, size_t size)
 {
int error = -ENOMEM;
struct file *file;
struct inode *inode;
struct dentry *dentry, *root;
struct qstr quick_string;
-   char buf[16];
-   static atomic_t counter;
 
if (!hugetlbfs_vfsmount)
return ERR_PTR(-ENOENT);
@@ -756,8 +754,7 @@ struct file *hugetlb_zero_setup(size_t size)
return ERR_PTR(-ENOMEM);
 
root = hugetlbfs_vfsmount->mnt_root;
-   snprintf(buf, 16, "%u", atomic_inc_return());
-   quick_string.name = buf;
+   quick_string.name = name;
quick_string.len = strlen(quick_string.name);
quick_string.hash = 0;
dentry = d_alloc(root, _string);
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index b4570b6..2c13715 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -163,7 +163,7 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct 
super_block *sb)
 
 extern const struct file_operations hugetlbfs_file_operations;
 extern struct vm_operations_struct hugetlb_vm_ops;
-struct file *hugetlb_zero_setup(size_t);
+struct file *hugetlb_file_setup(const char *name, size_t);
 int hugetlb_get_quota(struct address_space *mapping);
 void hugetlb_put_quota(struct address_space *mapping);
 
@@ -185,7 +185,7 @@ static inline void set_file_hugepages(struct file *file)
 
 #define is_file_hugepages(file)0
 #define set_file_hugepages(file)   BUG()
-#define hugetlb_zero_setup(size)   ERR_PTR(-ENOSYS)
+#define hugetlb_file_setup(name,size)  ERR_PTR(-ENOSYS)
 
 #endif /* !CONFIG_HUGETLBFS */
 
diff --git a/ipc/shm.c b/ipc/shm.c
index 4fefbad..c31f743 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -364,9 +364,10 @@ static int newseg (struct ipc_namespace *ns, key_t key, 
int shmflg, size_t size)
return error;
}
 
+   sprintf (name, "SYSV%08x", key);
if (shmflg & SHM_HUGETLB) {
-   /* hugetlb_zero_setup takes care of mlock user accounting */
-   file = hugetlb_zero_setup(size);
+   /* hugetlb_file_setup takes care of mlock user accounting */
+   file = hugetlb_file_setup(name, size);
shp->mlock_user = current->user;
} else {
int acctflag = VM_ACCOUNT;
@@ -377,7 +378,6 @@ static int newseg (struct ipc_namespace *ns, key_t key, int 
shmflg, size_t size)
if  ((shmflg & SHM_NORESERVE) &&
sysctl_overcommit_memory != OVERCOMMIT_NEVER)
acctflag = 0;
-   sprintf (name, "SYSV%08x", key);
file = shmem_file_setup(name, size, acctflag);
}
error = PTR_ERR(file);
-- 
1.5.1.1.181.g2de0

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-08 Thread Eric W. Biederman

Some user space tools need to identify SYSV shared memory when
examining /proc/pid/maps.  To do so they look for a block device
with major zero, a dentry named SYSVsysv key, and having the minor of
the internal sysv shared memory kernel mount.

To help these tools and to make it easier for people just browsing
/proc/pid/maps this patch modifies hugetlb sysv shared memory to
use the SYSVkey dentry naming convention.

User space tools will still have to be aware that hugetlb sysv
shared memory lives on a different internal kernel mount and so
has a different block device minor number from the rest of sysv
shared memory.

Signed-off-by: Eric W. Biederman [EMAIL PROTECTED]
---
 fs/hugetlbfs/inode.c|7 ++-
 include/linux/hugetlb.h |4 ++--
 ipc/shm.c   |6 +++---
 3 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index aa083dd..e6b46b3 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -736,15 +736,13 @@ static int can_do_hugetlb_shm(void)
can_do_mlock());
 }
 
-struct file *hugetlb_zero_setup(size_t size)
+struct file *hugetlb_file_setup(const char *name, size_t size)
 {
int error = -ENOMEM;
struct file *file;
struct inode *inode;
struct dentry *dentry, *root;
struct qstr quick_string;
-   char buf[16];
-   static atomic_t counter;
 
if (!hugetlbfs_vfsmount)
return ERR_PTR(-ENOENT);
@@ -756,8 +754,7 @@ struct file *hugetlb_zero_setup(size_t size)
return ERR_PTR(-ENOMEM);
 
root = hugetlbfs_vfsmount-mnt_root;
-   snprintf(buf, 16, %u, atomic_inc_return(counter));
-   quick_string.name = buf;
+   quick_string.name = name;
quick_string.len = strlen(quick_string.name);
quick_string.hash = 0;
dentry = d_alloc(root, quick_string);
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index b4570b6..2c13715 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -163,7 +163,7 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct 
super_block *sb)
 
 extern const struct file_operations hugetlbfs_file_operations;
 extern struct vm_operations_struct hugetlb_vm_ops;
-struct file *hugetlb_zero_setup(size_t);
+struct file *hugetlb_file_setup(const char *name, size_t);
 int hugetlb_get_quota(struct address_space *mapping);
 void hugetlb_put_quota(struct address_space *mapping);
 
@@ -185,7 +185,7 @@ static inline void set_file_hugepages(struct file *file)
 
 #define is_file_hugepages(file)0
 #define set_file_hugepages(file)   BUG()
-#define hugetlb_zero_setup(size)   ERR_PTR(-ENOSYS)
+#define hugetlb_file_setup(name,size)  ERR_PTR(-ENOSYS)
 
 #endif /* !CONFIG_HUGETLBFS */
 
diff --git a/ipc/shm.c b/ipc/shm.c
index 4fefbad..c31f743 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -364,9 +364,10 @@ static int newseg (struct ipc_namespace *ns, key_t key, 
int shmflg, size_t size)
return error;
}
 
+   sprintf (name, SYSV%08x, key);
if (shmflg  SHM_HUGETLB) {
-   /* hugetlb_zero_setup takes care of mlock user accounting */
-   file = hugetlb_zero_setup(size);
+   /* hugetlb_file_setup takes care of mlock user accounting */
+   file = hugetlb_file_setup(name, size);
shp-mlock_user = current-user;
} else {
int acctflag = VM_ACCOUNT;
@@ -377,7 +378,6 @@ static int newseg (struct ipc_namespace *ns, key_t key, int 
shmflg, size_t size)
if  ((shmflg  SHM_NORESERVE) 
sysctl_overcommit_memory != OVERCOMMIT_NEVER)
acctflag = 0;
-   sprintf (name, SYSV%08x, key);
file = shmem_file_setup(name, size, acctflag);
}
error = PTR_ERR(file);
-- 
1.5.1.1.181.g2de0

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-08 Thread Andrew Morton
On Fri, 08 Jun 2007 17:43:34 -0600
[EMAIL PROTECTED] (Eric W. Biederman) wrote:

 Some user space tools need to identify SYSV shared memory when
 examining /proc/pid/maps.  To do so they look for a block device
 with major zero, a dentry named SYSVsysv key, and having the minor of
 the internal sysv shared memory kernel mount.
 
 To help these tools and to make it easier for people just browsing
 /proc/pid/maps this patch modifies hugetlb sysv shared memory to
 use the SYSVkey dentry naming convention.
 
 User space tools will still have to be aware that hugetlb sysv
 shared memory lives on a different internal kernel mount and so
 has a different block device minor number from the rest of sysv
 shared memory.

I assume this fix is preferred over Badari's?  If so, why?



From: Badari Pulavarty [EMAIL PROTECTED]

shmid used to be stored as inode# for shared memory segments. Some of
the proc-ps tools use this from /proc/pid/maps.  Recent cleanups
to newseg() changed it.  This patch sets inode number back to shared
memory id to fix breakage.

Signed-off-by: Badari Pulavarty [EMAIL PROTECTED]
Cc: Albert Cahalan [EMAIL PROTECTED]
Cc: Eric W. Biederman [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 ipc/shm.c |5 +
 1 files changed, 5 insertions(+)

diff -puN ipc/shm.c~restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage 
ipc/shm.c
--- a/ipc/shm.c~restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage
+++ a/ipc/shm.c
@@ -397,6 +397,11 @@ static int newseg (struct ipc_namespace 
shp-shm_nattch = 0;
shp-id = shm_buildid(ns, id, shp-shm_perm.seq);
shp-shm_file = file;
+   /*
+* shmid gets reported as inode# in /proc/pid/maps.
+* proc-ps tools use this. Changing this will break them.
+*/
+   file-f_dentry-d_inode-i_ino = shp-id;
 
ns-shm_tot += numpages;
shm_unlock(shp);
_

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory

2007-06-08 Thread Badari Pulavarty



Andrew Morton wrote:


On Fri, 08 Jun 2007 17:43:34 -0600
[EMAIL PROTECTED] (Eric W. Biederman) wrote:


Some user space tools need to identify SYSV shared memory when
examining /proc/pid/maps.  To do so they look for a block device
with major zero, a dentry named SYSVsysv key, and having the minor of
the internal sysv shared memory kernel mount.

To help these tools and to make it easier for people just browsing
/proc/pid/maps this patch modifies hugetlb sysv shared memory to
use the SYSVkey dentry naming convention.

User space tools will still have to be aware that hugetlb sysv
shared memory lives on a different internal kernel mount and so
has a different block device minor number from the rest of sysv
shared memory.



I assume this fix is preferred over Badari's?  If so, why?


No. You still need my patch to fix the current breakage.

This patch makes hugetlbfs also use same naming convention as regular 
shmem for its
name. This is not absolutely needed, its a nice to have. Currently, user 
space tools

can't depend on the filename alone, since its not unique (based on kry).

Thanks,
Badari






-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/