From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757267AbZBUB6m (ORCPT ); Fri, 20 Feb 2009 20:58:42 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756713AbZBUB5x (ORCPT ); Fri, 20 Feb 2009 20:57:53 -0500 Received: from byss.tchmachines.com ([208.76.80.75]:57166 "EHLO byss.tchmachines.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756673AbZBUB5v (ORCPT ); Fri, 20 Feb 2009 20:57:51 -0500 Date: Fri, 20 Feb 2009 17:57:48 -0800 From: Ravikiran G Thirumalai To: akpm@linux-foundation.org Cc: wli@movementarian.org, mel@csn.ul.ie, linux-mm@kvack.org, shai@scalex86.org, linux-kernel@vger.kernel.org Subject: [patch 2/2] mm: Reintroduce and deprecate rlimit based access for SHM_HUGETLB Message-ID: <20090221015748.GB32674@localdomain> References: <20090221015457.GA32674@localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090221015457.GA32674@localdomain> User-Agent: Mutt/1.5.15+20070412 (2007-04-11) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - byss.tchmachines.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - scalex86.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allow non root users with sufficient mlock rlimits to be able to allocate hugetlb backed shm for now. Deprecate this though. This is being deprecated because the mlock based rlimit checks for SHM_HUGETLB is not consistent with mmap based huge page allocations. Signed-off-by: Ravikiran Thirumalai Cc: Mel Gorman Cc: Wli Index: linux-2.6-tip/fs/hugetlbfs/inode.c =================================================================== --- linux-2.6-tip.orig/fs/hugetlbfs/inode.c 2009-02-10 13:30:05.000000000 -0800 +++ linux-2.6-tip/fs/hugetlbfs/inode.c 2009-02-11 21:58:23.000000000 -0800 @@ -948,6 +948,7 @@ static int can_do_hugetlb_shm(void) struct file *hugetlb_file_setup(const char *name, size_t size) { int error = -ENOMEM; + int unlock_shm = 0; struct file *file; struct inode *inode; struct dentry *dentry, *root; @@ -957,8 +958,14 @@ struct file *hugetlb_file_setup(const ch if (!hugetlbfs_vfsmount) return ERR_PTR(-ENOENT); - if (!can_do_hugetlb_shm()) - return ERR_PTR(-EPERM); + if (!can_do_hugetlb_shm()) { + if (user_shm_lock(size, user)) { + unlock_shm = 1; + WARN_ONCE(1, + "Using mlock ulimits for SHM_HUGETLB deprecated\n"); + } else + return ERR_PTR(-EPERM); + } root = hugetlbfs_vfsmount->mnt_root; quick_string.name = name; @@ -997,6 +1004,8 @@ out_inode: out_dentry: dput(dentry); out_shm_unlock: + if (unlock_shm) + user_shm_unlock(size, user); return ERR_PTR(error); } Index: linux-2.6-tip/Documentation/feature-removal-schedule.txt =================================================================== --- linux-2.6-tip.orig/Documentation/feature-removal-schedule.txt 2009-02-09 16:45:47.000000000 -0800 +++ linux-2.6-tip/Documentation/feature-removal-schedule.txt 2009-02-11 21:35:28.000000000 -0800 @@ -335,3 +335,14 @@ Why: In 2.6.18 the Secmark concept was i Secmark, it is time to deprecate the older mechanism and start the process of removing the old code. Who: Paul Moore +--------------------------- + +What: Ability for non root users to shm_get hugetlb pages based on mlock + resource limits +When: 2.6.31 +Why: Non root users need to be part of /proc/sys/vm/hugetlb_shm_group or + have CAP_IPC_LOCK to be able to allocate shm segments backed by + huge pages. The mlock based rlimit check to allow shm hugetlb is + inconsistent with mmap based allocations. Hence it is being + deprecated. +Who: Ravikiran Thirumalai