* Cannot use SHM_HUGETLB as a regular user @ 2009-02-04 22:04 Ravikiran G Thirumalai 2009-02-04 22:11 ` wli 0 siblings, 1 reply; 10+ messages in thread From: Ravikiran G Thirumalai @ 2009-02-04 22:04 UTC (permalink / raw) To: linux-kernel, linux-mm Looks like a regular user cannot shmget more than 64k of memory using hugetlb!! Atleast if we go by Documentation/vm/hugetlbpage.txt Quote Documentation/vm/hugetlbpage.txt: "Users who wish to use hugetlb page via shared memory segment should be a member of a supplementary group and system admin needs to configure that gid into /proc/sys/vm/hugetlb_shm_group." However, setting up hugetlb_shm_group with the right gid does not work! Looks like hugetlb uses mlock based rlimits which cause shmget with SHM_HUGETLB to fail with -ENOMEM. Setting up right rlimits for mlock through /etc/security/limits.conf works though (regardless of hugetlb_shm_group). I understand most oracle users use this rlimit to use largepages. But why does this need to be based on mlock!? We do have shmmax and shmall to restrict this resource. As I see it we have the following options to fix this inconsistency: 1. Do not depend on RLIMIT_MEMLOCK for hugetlb shm mappings. If a user has CAP_IPC_LOCK or if user belongs to /proc/sys/vm/hugetlb_shm_group, he should be able to use shm memory according to shmmax and shmall OR 2. Update the hugetlbpage documentation to mention the resource limit based limitation, and remove the useless /proc/sys/vm/hugetlb_shm_group sysctl Which one is better? I am leaning towards 1. and have a patch ready for 1. but I might be missing some historical reason for using RLIMIT_MEMLOCK with SHM_HUGETLB. Thanks, Kiran -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Cannot use SHM_HUGETLB as a regular user 2009-02-04 22:04 Cannot use SHM_HUGETLB as a regular user Ravikiran G Thirumalai @ 2009-02-04 22:11 ` wli 2009-02-05 0:41 ` [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group Ravikiran G Thirumalai 0 siblings, 1 reply; 10+ messages in thread From: wli @ 2009-02-04 22:11 UTC (permalink / raw) To: Ravikiran G Thirumalai; +Cc: linux-kernel, linux-mm On Wed, Feb 04, 2009 at 02:04:28PM -0800, Ravikiran G Thirumalai wrote: [..] > However, setting up hugetlb_shm_group with the right gid does not work! > Looks like hugetlb uses mlock based rlimits which cause shmget > with SHM_HUGETLB to fail with -ENOMEM. Setting up right rlimits for mlock > through /etc/security/limits.conf works though (regardless of > hugetlb_shm_group). > I understand most oracle users use this rlimit to use largepages. > But why does this need to be based on mlock!? We do have shmmax and shmall > to restrict this resource. > As I see it we have the following options to fix this inconsistency: > 1. Do not depend on RLIMIT_MEMLOCK for hugetlb shm mappings. If a user > has CAP_IPC_LOCK or if user belongs to /proc/sys/vm/hugetlb_shm_group, > he should be able to use shm memory according to shmmax and shmall OR > 2. Update the hugetlbpage documentation to mention the resource limit based > limitation, and remove the useless /proc/sys/vm/hugetlb_shm_group sysctl > Which one is better? I am leaning towards 1. and have a patch ready for 1. > but I might be missing some historical reason for using RLIMIT_MEMLOCK with > SHM_HUGETLB. We should do (1) because the hugetlb_shm_group and CAP_IPC_LOCK bits should both continue to work as they did prior to RLIMIT_MEMLOCK -based management of hugetlb. Please make sure the new RLIMIT_MEMLOCK -based management still enables hugetlb shm when hugetlb_shm_group and CAP_IPC_LOCK don't apply. -- wli -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-04 22:11 ` wli @ 2009-02-05 0:41 ` Ravikiran G Thirumalai 2009-02-05 2:03 ` KOSAKI Motohiro 2009-02-05 13:25 ` Mel Gorman 0 siblings, 2 replies; 10+ messages in thread From: Ravikiran G Thirumalai @ 2009-02-05 0:41 UTC (permalink / raw) To: wli, Andrew Morton; +Cc: linux-kernel, linux-mm, shai On Wed, Feb 04, 2009 at 05:11:21PM -0500, wli@movementarian.org wrote: >On Wed, Feb 04, 2009 at 02:04:28PM -0800, Ravikiran G Thirumalai wrote: >> ... >> As I see it we have the following options to fix this inconsistency: >> 1. Do not depend on RLIMIT_MEMLOCK for hugetlb shm mappings. If a user >> has CAP_IPC_LOCK or if user belongs to /proc/sys/vm/hugetlb_shm_group, >> he should be able to use shm memory according to shmmax and shmall OR >> 2. Update the hugetlbpage documentation to mention the resource limit based >> limitation, and remove the useless /proc/sys/vm/hugetlb_shm_group sysctl >> Which one is better? I am leaning towards 1. and have a patch ready for 1. >> but I might be missing some historical reason for using RLIMIT_MEMLOCK with >> SHM_HUGETLB. > >We should do (1) because the hugetlb_shm_group and CAP_IPC_LOCK bits >should both continue to work as they did prior to RLIMIT_MEMLOCK -based >management of hugetlb. Please make sure the new RLIMIT_MEMLOCK -based >management still enables hugetlb shm when hugetlb_shm_group and >CAP_IPC_LOCK don't apply. > OK, here's the patch. Thanks, Kiran Fix hugetlb subsystem so that non root users belonging to hugetlb_shm_group can actually allocate hugetlb backed shm. Currently non root users cannot even map one large page using SHM_HUGETLB when they belong to the gid in /proc/sys/vm/hugetlb_shm_group. This is because allocation size is verified against RLIMIT_MEMLOCK resource limit even if the user belongs to hugetlb_shm_group. This patch 1. Fixes hugetlb subsystem so that users with CAP_IPC_LOCK and users belonging to hugetlb_shm_group don't need to be restricted with RLIMIT_MEMLOCK resource limits 2. If a user has sufficient memlock limit he can still allocate the hugetlb shm segment. Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> --- Documentation/vm/hugetlbpage.txt | 11 ++++++----- fs/hugetlbfs/inode.c | 18 ++++++++++++------ include/linux/mm.h | 2 ++ mm/mlock.c | 11 ++++++++--- 4 files changed, 28 insertions(+), 14 deletions(-) Index: linux-2.6-tip/fs/hugetlbfs/inode.c =================================================================== --- linux-2.6-tip.orig/fs/hugetlbfs/inode.c 2009-02-04 15:21:45.000000000 -0800 +++ linux-2.6-tip/fs/hugetlbfs/inode.c 2009-02-04 15:23:19.000000000 -0800 @@ -943,8 +943,15 @@ static struct vfsmount *hugetlbfs_vfsmou static int can_do_hugetlb_shm(void) { return likely(capable(CAP_IPC_LOCK) || - in_group_p(sysctl_hugetlb_shm_group) || - can_do_mlock()); + in_group_p(sysctl_hugetlb_shm_group)); +} + +static void acct_huge_shm_lock(size_t size, struct user_struct *user) +{ + unsigned long pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; + spin_lock(&shmlock_user_lock); + acct_shm_lock(pages, user); + spin_unlock(&shmlock_user_lock); } struct file *hugetlb_file_setup(const char *name, size_t size) @@ -959,12 +966,11 @@ struct file *hugetlb_file_setup(const ch if (!hugetlbfs_vfsmount) return ERR_PTR(-ENOENT); - if (!can_do_hugetlb_shm()) + if (can_do_hugetlb_shm()) + acct_huge_shm_lock(size, user); + else if (!user_shm_lock(size, user)) return ERR_PTR(-EPERM); - if (!user_shm_lock(size, user)) - return ERR_PTR(-ENOMEM); - root = hugetlbfs_vfsmount->mnt_root; quick_string.name = name; quick_string.len = strlen(quick_string.name); Index: linux-2.6-tip/include/linux/mm.h =================================================================== --- linux-2.6-tip.orig/include/linux/mm.h 2009-02-04 15:21:45.000000000 -0800 +++ linux-2.6-tip/include/linux/mm.h 2009-02-04 15:23:19.000000000 -0800 @@ -737,8 +737,10 @@ extern unsigned long shmem_get_unmapped_ #endif extern int can_do_mlock(void); +extern void acct_shm_lock(unsigned long, struct user_struct *); extern int user_shm_lock(size_t, struct user_struct *); extern void user_shm_unlock(size_t, struct user_struct *); +extern spinlock_t shmlock_user_lock; /* * Parameter block passed down to zap_pte_range in exceptional cases. Index: linux-2.6-tip/mm/mlock.c =================================================================== --- linux-2.6-tip.orig/mm/mlock.c 2009-02-04 15:21:45.000000000 -0800 +++ linux-2.6-tip/mm/mlock.c 2009-02-04 15:23:19.000000000 -0800 @@ -637,7 +637,13 @@ SYSCALL_DEFINE0(munlockall) * Objects with different lifetime than processes (SHM_LOCK and SHM_HUGETLB * shm segments) get accounted against the user_struct instead. */ -static DEFINE_SPINLOCK(shmlock_user_lock); +DEFINE_SPINLOCK(shmlock_user_lock); + +void acct_shm_lock(unsigned long pages, struct user_struct *user) +{ + get_uid(user); + user->locked_shm += pages; +} int user_shm_lock(size_t size, struct user_struct *user) { @@ -653,8 +659,7 @@ int user_shm_lock(size_t size, struct us if (!allowed && locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK)) goto out; - get_uid(user); - user->locked_shm += locked; + acct_shm_lock(locked, user); allowed = 1; out: spin_unlock(&shmlock_user_lock); Index: linux-2.6-tip/Documentation/vm/hugetlbpage.txt =================================================================== --- linux-2.6-tip.orig/Documentation/vm/hugetlbpage.txt 2009-02-04 15:21:45.000000000 -0800 +++ linux-2.6-tip/Documentation/vm/hugetlbpage.txt 2009-02-04 15:23:19.000000000 -0800 @@ -147,11 +147,12 @@ used to change the file attributes on hu Also, it is important to note that no such mount command is required if the applications are going to use only shmat/shmget system calls. Users who -wish to use hugetlb page via shared memory segment should be a member of -a supplementary group and system admin needs to configure that gid into -/proc/sys/vm/hugetlb_shm_group. It is possible for same or different -applications to use any combination of mmaps and shm* calls, though the -mount of filesystem will be required for using mmap calls. +wish to use hugetlb page via shared memory segment should either have +sufficient memlock resource limits or, they need to be a member of +a supplementary group, and system admin needs to configure that gid into +/proc/sys/vm/hugetlb_shm_group. It is possible for same or different +applications to use any combination of mmaps and shm* calls, though +the mount of filesystem will be required for using mmap calls. ******************************************************************* -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-05 0:41 ` [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group Ravikiran G Thirumalai @ 2009-02-05 2:03 ` KOSAKI Motohiro 2009-02-05 17:06 ` Nishanth Aravamudan 2009-02-05 13:25 ` Mel Gorman 1 sibling, 1 reply; 10+ messages in thread From: KOSAKI Motohiro @ 2009-02-05 2:03 UTC (permalink / raw) To: Ravikiran G Thirumalai Cc: kosaki.motohiro, wli, Andrew Morton, linux-kernel, linux-mm, shai, Mel Gorman, Nishanth Aravamudan (cc to Mel and Nishanth) I think this requirement is reasonable. but I also hope Mel or Nishanth review this. <<intentionally full quote>> > On Wed, Feb 04, 2009 at 05:11:21PM -0500, wli@movementarian.org wrote: > >On Wed, Feb 04, 2009 at 02:04:28PM -0800, Ravikiran G Thirumalai wrote: > >> ... > >> As I see it we have the following options to fix this inconsistency: > >> 1. Do not depend on RLIMIT_MEMLOCK for hugetlb shm mappings. If a user > >> has CAP_IPC_LOCK or if user belongs to /proc/sys/vm/hugetlb_shm_group, > >> he should be able to use shm memory according to shmmax and shmall OR > >> 2. Update the hugetlbpage documentation to mention the resource limit based > >> limitation, and remove the useless /proc/sys/vm/hugetlb_shm_group sysctl > >> Which one is better? I am leaning towards 1. and have a patch ready for 1. > >> but I might be missing some historical reason for using RLIMIT_MEMLOCK with > >> SHM_HUGETLB. > > > >We should do (1) because the hugetlb_shm_group and CAP_IPC_LOCK bits > >should both continue to work as they did prior to RLIMIT_MEMLOCK -based > >management of hugetlb. Please make sure the new RLIMIT_MEMLOCK -based > >management still enables hugetlb shm when hugetlb_shm_group and > >CAP_IPC_LOCK don't apply. > > > > OK, here's the patch. > > Thanks, > Kiran > > > Fix hugetlb subsystem so that non root users belonging to hugetlb_shm_group > can actually allocate hugetlb backed shm. > > Currently non root users cannot even map one large page using SHM_HUGETLB > when they belong to the gid in /proc/sys/vm/hugetlb_shm_group. > This is because allocation size is verified against RLIMIT_MEMLOCK resource > limit even if the user belongs to hugetlb_shm_group. > > This patch > 1. Fixes hugetlb subsystem so that users with CAP_IPC_LOCK and users > belonging to hugetlb_shm_group don't need to be restricted with > RLIMIT_MEMLOCK resource limits > 2. If a user has sufficient memlock limit he can still allocate the hugetlb > shm segment. > > Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> > > --- > > Documentation/vm/hugetlbpage.txt | 11 ++++++----- > fs/hugetlbfs/inode.c | 18 ++++++++++++------ > include/linux/mm.h | 2 ++ > mm/mlock.c | 11 ++++++++--- > 4 files changed, 28 insertions(+), 14 deletions(-) > > Index: linux-2.6-tip/fs/hugetlbfs/inode.c > =================================================================== > --- linux-2.6-tip.orig/fs/hugetlbfs/inode.c 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/fs/hugetlbfs/inode.c 2009-02-04 15:23:19.000000000 -0800 > @@ -943,8 +943,15 @@ static struct vfsmount *hugetlbfs_vfsmou > static int can_do_hugetlb_shm(void) > { > return likely(capable(CAP_IPC_LOCK) || > - in_group_p(sysctl_hugetlb_shm_group) || > - can_do_mlock()); > + in_group_p(sysctl_hugetlb_shm_group)); > +} > + > +static void acct_huge_shm_lock(size_t size, struct user_struct *user) > +{ > + unsigned long pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; > + spin_lock(&shmlock_user_lock); > + acct_shm_lock(pages, user); > + spin_unlock(&shmlock_user_lock); > } > > struct file *hugetlb_file_setup(const char *name, size_t size) > @@ -959,12 +966,11 @@ struct file *hugetlb_file_setup(const ch > if (!hugetlbfs_vfsmount) > return ERR_PTR(-ENOENT); > > - if (!can_do_hugetlb_shm()) > + if (can_do_hugetlb_shm()) > + acct_huge_shm_lock(size, user); > + else if (!user_shm_lock(size, user)) > return ERR_PTR(-EPERM); > > - if (!user_shm_lock(size, user)) > - return ERR_PTR(-ENOMEM); > - > root = hugetlbfs_vfsmount->mnt_root; > quick_string.name = name; > quick_string.len = strlen(quick_string.name); > Index: linux-2.6-tip/include/linux/mm.h > =================================================================== > --- linux-2.6-tip.orig/include/linux/mm.h 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/include/linux/mm.h 2009-02-04 15:23:19.000000000 -0800 > @@ -737,8 +737,10 @@ extern unsigned long shmem_get_unmapped_ > #endif > > extern int can_do_mlock(void); > +extern void acct_shm_lock(unsigned long, struct user_struct *); > extern int user_shm_lock(size_t, struct user_struct *); > extern void user_shm_unlock(size_t, struct user_struct *); > +extern spinlock_t shmlock_user_lock; > > /* > * Parameter block passed down to zap_pte_range in exceptional cases. > Index: linux-2.6-tip/mm/mlock.c > =================================================================== > --- linux-2.6-tip.orig/mm/mlock.c 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/mm/mlock.c 2009-02-04 15:23:19.000000000 -0800 > @@ -637,7 +637,13 @@ SYSCALL_DEFINE0(munlockall) > * Objects with different lifetime than processes (SHM_LOCK and SHM_HUGETLB > * shm segments) get accounted against the user_struct instead. > */ > -static DEFINE_SPINLOCK(shmlock_user_lock); > +DEFINE_SPINLOCK(shmlock_user_lock); > + > +void acct_shm_lock(unsigned long pages, struct user_struct *user) > +{ > + get_uid(user); > + user->locked_shm += pages; > +} > > int user_shm_lock(size_t size, struct user_struct *user) > { > @@ -653,8 +659,7 @@ int user_shm_lock(size_t size, struct us > if (!allowed && > locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK)) > goto out; > - get_uid(user); > - user->locked_shm += locked; > + acct_shm_lock(locked, user); > allowed = 1; > out: > spin_unlock(&shmlock_user_lock); > Index: linux-2.6-tip/Documentation/vm/hugetlbpage.txt > =================================================================== > --- linux-2.6-tip.orig/Documentation/vm/hugetlbpage.txt 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/Documentation/vm/hugetlbpage.txt 2009-02-04 15:23:19.000000000 -0800 > @@ -147,11 +147,12 @@ used to change the file attributes on hu > > Also, it is important to note that no such mount command is required if the > applications are going to use only shmat/shmget system calls. Users who > -wish to use hugetlb page via shared memory segment should be a member of > -a supplementary group and system admin needs to configure that gid into > -/proc/sys/vm/hugetlb_shm_group. It is possible for same or different > -applications to use any combination of mmaps and shm* calls, though the > -mount of filesystem will be required for using mmap calls. > +wish to use hugetlb page via shared memory segment should either have > +sufficient memlock resource limits or, they need to be a member of > +a supplementary group, and system admin needs to configure that gid into > +/proc/sys/vm/hugetlb_shm_group. It is possible for same or different > +applications to use any combination of mmaps and shm* calls, though > +the mount of filesystem will be required for using mmap calls. > > ******************************************************************* > > > -- > 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> -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-05 2:03 ` KOSAKI Motohiro @ 2009-02-05 17:06 ` Nishanth Aravamudan 0 siblings, 0 replies; 10+ messages in thread From: Nishanth Aravamudan @ 2009-02-05 17:06 UTC (permalink / raw) To: KOSAKI Motohiro Cc: Ravikiran G Thirumalai, wli, Andrew Morton, linux-kernel, linux-mm, shai, Mel Gorman On 05.02.2009 [11:03:09 +0900], KOSAKI Motohiro wrote: > (cc to Mel and Nishanth) > > I think this requirement is reasonable. but I also hope Mel or Nishanth > review this. > > > <<intentionally full quote>> > > > On Wed, Feb 04, 2009 at 05:11:21PM -0500, wli@movementarian.org wrote: > > >On Wed, Feb 04, 2009 at 02:04:28PM -0800, Ravikiran G Thirumalai wrote: > > >> ... > > >> As I see it we have the following options to fix this inconsistency: > > >> 1. Do not depend on RLIMIT_MEMLOCK for hugetlb shm mappings. If a user > > >> has CAP_IPC_LOCK or if user belongs to /proc/sys/vm/hugetlb_shm_group, > > >> he should be able to use shm memory according to shmmax and shmall OR > > >> 2. Update the hugetlbpage documentation to mention the resource limit based > > >> limitation, and remove the useless /proc/sys/vm/hugetlb_shm_group sysctl > > >> Which one is better? I am leaning towards 1. and have a patch ready for 1. > > >> but I might be missing some historical reason for using RLIMIT_MEMLOCK with > > >> SHM_HUGETLB. > > > > > >We should do (1) because the hugetlb_shm_group and CAP_IPC_LOCK bits > > >should both continue to work as they did prior to RLIMIT_MEMLOCK -based > > >management of hugetlb. Please make sure the new RLIMIT_MEMLOCK -based > > >management still enables hugetlb shm when hugetlb_shm_group and > > >CAP_IPC_LOCK don't apply. > > > > > > > OK, here's the patch. > > > > Thanks, > > Kiran > > > > > > Fix hugetlb subsystem so that non root users belonging to hugetlb_shm_group > > can actually allocate hugetlb backed shm. > > > > Currently non root users cannot even map one large page using SHM_HUGETLB > > when they belong to the gid in /proc/sys/vm/hugetlb_shm_group. > > This is because allocation size is verified against RLIMIT_MEMLOCK resource > > limit even if the user belongs to hugetlb_shm_group. > > > > This patch > > 1. Fixes hugetlb subsystem so that users with CAP_IPC_LOCK and users > > belonging to hugetlb_shm_group don't need to be restricted with > > RLIMIT_MEMLOCK resource limits > > 2. If a user has sufficient memlock limit he can still allocate the hugetlb > > shm segment. > > > > Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> Seems reasonable. Acked-by: Nishanth Aravamudan <nacc@us.ibm.com> Thanks, Nish -- Nishanth Aravamudan <nacc@us.ibm.com> IBM Linux Technology Center -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-05 0:41 ` [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group Ravikiran G Thirumalai 2009-02-05 2:03 ` KOSAKI Motohiro @ 2009-02-05 13:25 ` Mel Gorman 2009-02-05 19:08 ` Ravikiran G Thirumalai 1 sibling, 1 reply; 10+ messages in thread From: Mel Gorman @ 2009-02-05 13:25 UTC (permalink / raw) To: Ravikiran G Thirumalai; +Cc: wli, Andrew Morton, linux-kernel, linux-mm, shai On Wed, Feb 04, 2009 at 04:41:57PM -0800, Ravikiran G Thirumalai wrote: > On Wed, Feb 04, 2009 at 05:11:21PM -0500, wli@movementarian.org wrote: > >On Wed, Feb 04, 2009 at 02:04:28PM -0800, Ravikiran G Thirumalai wrote: > >> ... > >> As I see it we have the following options to fix this inconsistency: > >> 1. Do not depend on RLIMIT_MEMLOCK for hugetlb shm mappings. If a user > >> has CAP_IPC_LOCK or if user belongs to /proc/sys/vm/hugetlb_shm_group, > >> he should be able to use shm memory according to shmmax and shmall OR > >> 2. Update the hugetlbpage documentation to mention the resource limit based > >> limitation, and remove the useless /proc/sys/vm/hugetlb_shm_group sysctl > >> Which one is better? I am leaning towards 1. and have a patch ready for 1. > >> but I might be missing some historical reason for using RLIMIT_MEMLOCK with > >> SHM_HUGETLB. > > > >We should do (1) because the hugetlb_shm_group and CAP_IPC_LOCK bits > >should both continue to work as they did prior to RLIMIT_MEMLOCK -based > >management of hugetlb. Please make sure the new RLIMIT_MEMLOCK -based > >management still enables hugetlb shm when hugetlb_shm_group and > >CAP_IPC_LOCK don't apply. > > This highlights an inconsistency that has existed for a *long* time. You need sufficient lock rlimits to shmget(SHM_HUGETLB) but you can mmap a file on hugetlbfs without lock limits as long as you have write permissions to the filesystem. > > OK, here's the patch. > > Thanks, > Kiran > ======== > Fix hugetlb subsystem so that non root users belonging to hugetlb_shm_group > can actually allocate hugetlb backed shm. > > Currently non root users cannot even map one large page using SHM_HUGETLB > when they belong to the gid in /proc/sys/vm/hugetlb_shm_group. > This is because allocation size is verified against RLIMIT_MEMLOCK resource > limit even if the user belongs to hugetlb_shm_group. > > This patch > 1. Fixes hugetlb subsystem so that users with CAP_IPC_LOCK and users > belonging to hugetlb_shm_group don't need to be restricted with > RLIMIT_MEMLOCK resource limits > 2. If a user has sufficient memlock limit he can still allocate the hugetlb > shm segment. > Point 1 I'm happy with, point 2 less so. It alters the semantics of the locked rlimit beyond what is necessary to fix the problem - i.e. a user in the group should be allowed to use hugepages with shmget(). Minimally, there should be two separate patches. > Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> > > --- > > Documentation/vm/hugetlbpage.txt | 11 ++++++----- > fs/hugetlbfs/inode.c | 18 ++++++++++++------ > include/linux/mm.h | 2 ++ > mm/mlock.c | 11 ++++++++--- > 4 files changed, 28 insertions(+), 14 deletions(-) > > Index: linux-2.6-tip/fs/hugetlbfs/inode.c > =================================================================== > --- linux-2.6-tip.orig/fs/hugetlbfs/inode.c 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/fs/hugetlbfs/inode.c 2009-02-04 15:23:19.000000000 -0800 > @@ -943,8 +943,15 @@ static struct vfsmount *hugetlbfs_vfsmou > static int can_do_hugetlb_shm(void) > { > return likely(capable(CAP_IPC_LOCK) || > - in_group_p(sysctl_hugetlb_shm_group) || > - can_do_mlock()); > + in_group_p(sysctl_hugetlb_shm_group)); > +} > + > +static void acct_huge_shm_lock(size_t size, struct user_struct *user) > +{ > + unsigned long pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; > + spin_lock(&shmlock_user_lock); > + acct_shm_lock(pages, user); > + spin_unlock(&shmlock_user_lock); > } This should be split into another patch (i.e. three in all). The first patch allows users in thh shm_group to use huge pages. The second that accounts for locked_shm properly. The third allows users with a high enough locked rlimit to use shmget() with hugepages. However, my feeling right now would be to ack 1, re-reread 2 and nak 3. Other comments on this hunk; The accounting for locked shm should be kept in mlock.c to avoid spreading the locking call sites and rules further than they need. size is a misleading name. size of what in what unit? bytes, pages, huge pages, bananas? Move the account function to mlock and split it into static void __acct_locked_shm(size_t locked_bytes, struct user_struct *user) { ... } void acct_locked_shm(size_t locked_bytes, struct user_struct *user) { spin_lock(...); __acct_locked_shm(locked_bytes, user); spin_unlock(...); } i.e. have a locked and unlocked version with the unlocked version prefixed with __. Callers outside the file can then call the locked version without having to know what the locking rules are where as callers in the file already holding the lock can call the correct function directly. At the very least, this will avoid creating a new globally visible lock. That said, is the accounting even correct? What decrements the locked count? This alone makes me want to see the accounting stuff in a separate patch so it can be thought about on its own. > > struct file *hugetlb_file_setup(const char *name, size_t size) > @@ -959,12 +966,11 @@ struct file *hugetlb_file_setup(const ch > if (!hugetlbfs_vfsmount) > return ERR_PTR(-ENOENT); > > - if (!can_do_hugetlb_shm()) > + if (can_do_hugetlb_shm()) > + acct_huge_shm_lock(size, user); > + else if (!user_shm_lock(size, user)) > return ERR_PTR(-EPERM); > Move the accounting fix to a separate patch. I don't think a user having the necessary lock rlimit should automatically allow them to access huge pages. I'd prefer to see this hunk dropped. Minimally, it should be moved to a third patch as it's introducing a change beyond what is needed to fix the bug. > - if (!user_shm_lock(size, user)) > - return ERR_PTR(-ENOMEM); > - > root = hugetlbfs_vfsmount->mnt_root; > quick_string.name = name; > quick_string.len = strlen(quick_string.name); > Index: linux-2.6-tip/include/linux/mm.h > =================================================================== > --- linux-2.6-tip.orig/include/linux/mm.h 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/include/linux/mm.h 2009-02-04 15:23:19.000000000 -0800 > @@ -737,8 +737,10 @@ extern unsigned long shmem_get_unmapped_ > #endif > > extern int can_do_mlock(void); > +extern void acct_shm_lock(unsigned long, struct user_struct *); > extern int user_shm_lock(size_t, struct user_struct *); > extern void user_shm_unlock(size_t, struct user_struct *); > +extern spinlock_t shmlock_user_lock; > > /* > * Parameter block passed down to zap_pte_range in exceptional cases. > Index: linux-2.6-tip/mm/mlock.c > =================================================================== > --- linux-2.6-tip.orig/mm/mlock.c 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/mm/mlock.c 2009-02-04 15:23:19.000000000 -0800 > @@ -637,7 +637,13 @@ SYSCALL_DEFINE0(munlockall) > * Objects with different lifetime than processes (SHM_LOCK and SHM_HUGETLB > * shm segments) get accounted against the user_struct instead. > */ > -static DEFINE_SPINLOCK(shmlock_user_lock); > +DEFINE_SPINLOCK(shmlock_user_lock); > + > +void acct_shm_lock(unsigned long pages, struct user_struct *user) > +{ > + get_uid(user); > + user->locked_shm += pages; > +} > > int user_shm_lock(size_t size, struct user_struct *user) > { > @@ -653,8 +659,7 @@ int user_shm_lock(size_t size, struct us > if (!allowed && > locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK)) > goto out; > - get_uid(user); > - user->locked_shm += locked; > + acct_shm_lock(locked, user); > allowed = 1; > out: > spin_unlock(&shmlock_user_lock); > Index: linux-2.6-tip/Documentation/vm/hugetlbpage.txt > =================================================================== > --- linux-2.6-tip.orig/Documentation/vm/hugetlbpage.txt 2009-02-04 15:21:45.000000000 -0800 > +++ linux-2.6-tip/Documentation/vm/hugetlbpage.txt 2009-02-04 15:23:19.000000000 -0800 > @@ -147,11 +147,12 @@ used to change the file attributes on hu > > Also, it is important to note that no such mount command is required if the > applications are going to use only shmat/shmget system calls. Users who > -wish to use hugetlb page via shared memory segment should be a member of > -a supplementary group and system admin needs to configure that gid into > -/proc/sys/vm/hugetlb_shm_group. It is possible for same or different > -applications to use any combination of mmaps and shm* calls, though the > -mount of filesystem will be required for using mmap calls. > +wish to use hugetlb page via shared memory segment should either have > +sufficient memlock resource limits or, they need to be a member of > +a supplementary group, and system admin needs to configure that gid into > +/proc/sys/vm/hugetlb_shm_group. It is possible for same or different > +applications to use any combination of mmaps and shm* calls, though > +the mount of filesystem will be required for using mmap calls. > The patch has potential, particularly the group fix but needs to be split into 3 so the group fix can be merged in isolation. Then we can re-examine patch 2 to see how the accounting should be fixed and patch 3 to see if we even want to allow users with a locked limit to automatically be able to use huge pages and shmget. Thanks -- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-05 13:25 ` Mel Gorman @ 2009-02-05 19:08 ` Ravikiran G Thirumalai 2009-02-05 23:32 ` wli 2009-02-10 11:09 ` Mel Gorman 0 siblings, 2 replies; 10+ messages in thread From: Ravikiran G Thirumalai @ 2009-02-05 19:08 UTC (permalink / raw) To: Mel Gorman; +Cc: wli, Andrew Morton, linux-kernel, linux-mm, shai Thanks for your comments Mel. On Thu, Feb 05, 2009 at 01:25:29PM +0000, Mel Gorman wrote: >On Wed, Feb 04, 2009 at 04:41:57PM -0800, Ravikiran G Thirumalai wrote: > >======== >> Fix hugetlb subsystem so that non root users belonging to hugetlb_shm_group >> can actually allocate hugetlb backed shm. >> >> Currently non root users cannot even map one large page using SHM_HUGETLB >> when they belong to the gid in /proc/sys/vm/hugetlb_shm_group. >> This is because allocation size is verified against RLIMIT_MEMLOCK resource >> limit even if the user belongs to hugetlb_shm_group. >> >> This patch >> 1. Fixes hugetlb subsystem so that users with CAP_IPC_LOCK and users >> belonging to hugetlb_shm_group don't need to be restricted with >> RLIMIT_MEMLOCK resource limits >> 2. If a user has sufficient memlock limit he can still allocate the hugetlb >> shm segment. >> > >Point 1 I'm happy with, point 2 less so. It alters the semantics of the >locked rlimit beyond what is necessary to fix the problem - i.e. a user >in the group should be allowed to use hugepages with shmget(). Minimally, >there should be two separate patches. I see your point, and I was initially leaning towards 1. only -- that is not validate against memlock rlimit at all. But, I kinda understand Bill's comments about still honoring the rlimit because this is the only way to map SHM_HUGETLB currently, and seems like all oracle users currently do that. This is a compatibility issue and sysadmins will have to change from using /etc/security/limits.conf to a gid based sysctl in /etc/sysctl.conf (both based on distros) to let users use hugetlb backed shm. I agree this still keeps some inconsistency around, so how about letting people still use rlimit based checks, but marking it deprecated by adding this to feature-removal-schedule.txt? > >> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> >> >> --- >> >> Documentation/vm/hugetlbpage.txt | 11 ++++++----- >> fs/hugetlbfs/inode.c | 18 ++++++++++++------ >> include/linux/mm.h | 2 ++ >> mm/mlock.c | 11 ++++++++--- >> 4 files changed, 28 insertions(+), 14 deletions(-) >> >> Index: linux-2.6-tip/fs/hugetlbfs/inode.c >> =================================================================== >> --- linux-2.6-tip.orig/fs/hugetlbfs/inode.c 2009-02-04 15:21:45.000000000 -0800 >> +++ linux-2.6-tip/fs/hugetlbfs/inode.c 2009-02-04 15:23:19.000000000 -0800 >> @@ -943,8 +943,15 @@ static struct vfsmount *hugetlbfs_vfsmou >> static int can_do_hugetlb_shm(void) >> { >> return likely(capable(CAP_IPC_LOCK) || >> - in_group_p(sysctl_hugetlb_shm_group) || >> - can_do_mlock()); >> + in_group_p(sysctl_hugetlb_shm_group)); >> +} >> + >> +static void acct_huge_shm_lock(size_t size, struct user_struct *user) >> +{ >> + unsigned long pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; >> + spin_lock(&shmlock_user_lock); >> + acct_shm_lock(pages, user); >> + spin_unlock(&shmlock_user_lock); >> } > >This should be split into another patch (i.e. three in all). The first patch >allows users in thh shm_group to use huge pages. The second that accounts >for locked_shm properly. The third allows users with a high enough locked >rlimit to use shmget() with hugepages. However, my feeling right now would >be to ack 1, re-reread 2 and nak 3. I totally agree. In fact yesterday I was thinking of resending this patch to not account for shm memory when a user is not validated against rlimits (when he has CAP_IPC_LOCK or if he belongs to the sysctl_hugetlb_shm_group). As I see it there must be two parts: 1. Free ticket to CAP_IPC_LOCK and users belonging to sysctl_hugetlb_shm_group 2. Patch to have users not having CAP_IPC_LOCK or sysctl_hugetlb_shm_group to check against memlock rlimits, and account it. Also mark this deprecated in feature-removal-schedule.txt Would this be OK? Thanks, Kiran -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-05 19:08 ` Ravikiran G Thirumalai @ 2009-02-05 23:32 ` wli 2009-02-06 1:28 ` Ravikiran G Thirumalai 2009-02-10 11:09 ` Mel Gorman 1 sibling, 1 reply; 10+ messages in thread From: wli @ 2009-02-05 23:32 UTC (permalink / raw) To: Ravikiran G Thirumalai Cc: Mel Gorman, Andrew Morton, linux-kernel, linux-mm, shai On Thu, Feb 05, 2009 at 01:25:29PM +0000, Mel Gorman wrote: >> This should be split into another patch (i.e. three in all). The >> first patch allows users in thh shm_group to use huge pages. The >> second that accounts for locked_shm properly. The third allows >> users with a high enough locked rlimit to use shmget() with >> hugepages. However, my feeling right now would be to ack 1, >> re-reread 2 and nak 3. I'm saying to ack all 3 for backward compatibility reasons, once they're fixed up according to your other commentary. On Thu, Feb 05, 2009 at 11:08:51AM -0800, Ravikiran G Thirumalai wrote: > I totally agree. In fact yesterday I was thinking of resending > this patch to not account for shm memory when a user is not > validated against rlimits (when he has CAP_IPC_LOCK or if he > belongs to the sysctl_hugetlb_shm_group). > As I see it there must be two parts: > 1. Free ticket to CAP_IPC_LOCK and users belonging to > sysctl_hugetlb_shm_group > 2. Patch to have users not having CAP_IPC_LOCK or > sysctl_hugetlb_shm_group to check against memlock > rlimits, and account it. Also mark this deprecated in > feature-removal-schedule.txt > Would this be OK? This is the ideal scenario, except I thought the rlimit was destined to replace the other methods, not vice-versa. I don't really mind going this way, but maybe we should check in with the rlimit authors. -- wli -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-05 23:32 ` wli @ 2009-02-06 1:28 ` Ravikiran G Thirumalai 0 siblings, 0 replies; 10+ messages in thread From: Ravikiran G Thirumalai @ 2009-02-06 1:28 UTC (permalink / raw) To: wli; +Cc: Mel Gorman, Andrew Morton, linux-kernel, linux-mm, shai On Thu, Feb 05, 2009 at 06:32:57PM -0500, wli@movementarian.org wrote: >On Thu, Feb 05, 2009 at 11:08:51AM -0800, Ravikiran G Thirumalai wrote: >> I totally agree. In fact yesterday I was thinking of resending >> this patch to not account for shm memory when a user is not >> validated against rlimits (when he has CAP_IPC_LOCK or if he >> belongs to the sysctl_hugetlb_shm_group). >> As I see it there must be two parts: >> 1. Free ticket to CAP_IPC_LOCK and users belonging to >> sysctl_hugetlb_shm_group >> 2. Patch to have users not having CAP_IPC_LOCK or >> sysctl_hugetlb_shm_group to check against memlock >> rlimits, and account it. Also mark this deprecated in >> feature-removal-schedule.txt >> Would this be OK? > >This is the ideal scenario, except I thought the rlimit was destined >to replace the other methods, not vice-versa. I don't really mind >going this way, but maybe we should check in with the rlimit authors. RLIMIT_MEMLOCK for SHM_HUGETLB seems bad and unrelated! And as Mel rightly pointed out, currently rlimits are checked for hugetlb shm but not for hugetlb mmaps. Unless whoever authored the rlimit limitation comes forward with a good explanation, I think it should be deprecated. -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group 2009-02-05 19:08 ` Ravikiran G Thirumalai 2009-02-05 23:32 ` wli @ 2009-02-10 11:09 ` Mel Gorman 1 sibling, 0 replies; 10+ messages in thread From: Mel Gorman @ 2009-02-10 11:09 UTC (permalink / raw) To: Ravikiran G Thirumalai; +Cc: wli, Andrew Morton, linux-kernel, linux-mm, shai On Thu, Feb 05, 2009 at 11:08:51AM -0800, Ravikiran G Thirumalai wrote: > Thanks for your comments Mel. > > On Thu, Feb 05, 2009 at 01:25:29PM +0000, Mel Gorman wrote: > >On Wed, Feb 04, 2009 at 04:41:57PM -0800, Ravikiran G Thirumalai wrote: > > > >======== > >> Fix hugetlb subsystem so that non root users belonging to hugetlb_shm_group > >> can actually allocate hugetlb backed shm. > >> > >> Currently non root users cannot even map one large page using SHM_HUGETLB > >> when they belong to the gid in /proc/sys/vm/hugetlb_shm_group. > >> This is because allocation size is verified against RLIMIT_MEMLOCK resource > >> limit even if the user belongs to hugetlb_shm_group. > >> > >> This patch > >> 1. Fixes hugetlb subsystem so that users with CAP_IPC_LOCK and users > >> belonging to hugetlb_shm_group don't need to be restricted with > >> RLIMIT_MEMLOCK resource limits > >> 2. If a user has sufficient memlock limit he can still allocate the hugetlb > >> shm segment. > >> > > > >Point 1 I'm happy with, point 2 less so. It alters the semantics of the > >locked rlimit beyond what is necessary to fix the problem - i.e. a user > >in the group should be allowed to use hugepages with shmget(). Minimally, > >there should be two separate patches. > > I see your point, and I was initially leaning towards 1. only -- that is not > validate against memlock rlimit at all. But, I kinda understand Bill's > comments about still honoring the rlimit because this is the only way to map > SHM_HUGETLB currently, and seems like all oracle users currently do that. Yeah, Bill convinced me of same. I'm not happy that applications will basically be depending on weird behaviour but breaking them because it's "cleaner" is a bit rude and I wanted to move away from hugepages being a root-only thing. > This is a compatibility issue and sysadmins will have to change from using > /etc/security/limits.conf to a gid based sysctl in /etc/sysctl.conf > (both based on distros) to let users use hugetlb backed shm. I agree this > still keeps some inconsistency around, so how about letting people still use > rlimit based checks, but marking it deprecated by adding this to > feature-removal-schedule.txt? > I'm ok with that. Should we print a KERN_INFO message once when someone is depending on rlimits without being part of the group warning that this behaviour will not be allowed in a future release? > > > >> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> > >> > >> --- > >> > >> Documentation/vm/hugetlbpage.txt | 11 ++++++----- > >> fs/hugetlbfs/inode.c | 18 ++++++++++++------ > >> include/linux/mm.h | 2 ++ > >> mm/mlock.c | 11 ++++++++--- > >> 4 files changed, 28 insertions(+), 14 deletions(-) > >> > >> Index: linux-2.6-tip/fs/hugetlbfs/inode.c > >> =================================================================== > >> --- linux-2.6-tip.orig/fs/hugetlbfs/inode.c 2009-02-04 15:21:45.000000000 -0800 > >> +++ linux-2.6-tip/fs/hugetlbfs/inode.c 2009-02-04 15:23:19.000000000 -0800 > >> @@ -943,8 +943,15 @@ static struct vfsmount *hugetlbfs_vfsmou > >> static int can_do_hugetlb_shm(void) > >> { > >> return likely(capable(CAP_IPC_LOCK) || > >> - in_group_p(sysctl_hugetlb_shm_group) || > >> - can_do_mlock()); > >> + in_group_p(sysctl_hugetlb_shm_group)); > >> +} > >> + > >> +static void acct_huge_shm_lock(size_t size, struct user_struct *user) > >> +{ > >> + unsigned long pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; > >> + spin_lock(&shmlock_user_lock); > >> + acct_shm_lock(pages, user); > >> + spin_unlock(&shmlock_user_lock); > >> } > > > >This should be split into another patch (i.e. three in all). The first patch > >allows users in thh shm_group to use huge pages. The second that accounts > >for locked_shm properly. The third allows users with a high enough locked > >rlimit to use shmget() with hugepages. However, my feeling right now would > >be to ack 1, re-reread 2 and nak 3. > > I totally agree. In fact yesterday I was thinking of resending this patch > to not account for shm memory when a user is not validated against rlimits > (when he has CAP_IPC_LOCK or if he belongs to the sysctl_hugetlb_shm_group). > It would make it more consistent with the filesystem which doesn't check rlimits. > As I see it there must be two parts: > 1. Free ticket to CAP_IPC_LOCK and users belonging to sysctl_hugetlb_shm_group > 2. Patch to have users not having CAP_IPC_LOCK or sysctl_hugetlb_shm_group > to check against memlock rlimits, and account it. Also mark this > deprecated in feature-removal-schedule.txt > > Would this be OK? > Sounds good. Thanks a lot. -- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab -- 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> ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-02-10 11:09 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-02-04 22:04 Cannot use SHM_HUGETLB as a regular user Ravikiran G Thirumalai 2009-02-04 22:11 ` wli 2009-02-05 0:41 ` [patch] mm: Fix SHM_HUGETLB to work with users in hugetlb_shm_group Ravikiran G Thirumalai 2009-02-05 2:03 ` KOSAKI Motohiro 2009-02-05 17:06 ` Nishanth Aravamudan 2009-02-05 13:25 ` Mel Gorman 2009-02-05 19:08 ` Ravikiran G Thirumalai 2009-02-05 23:32 ` wli 2009-02-06 1:28 ` Ravikiran G Thirumalai 2009-02-10 11:09 ` Mel Gorman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).