From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx168.postini.com [74.125.245.168]) by kanga.kvack.org (Postfix) with SMTP id A15C76B0032 for ; Fri, 12 Jul 2013 01:43:52 -0400 (EDT) Received: by mail-lb0-f175.google.com with SMTP id r10so7202445lbi.6 for ; Thu, 11 Jul 2013 22:43:50 -0700 (PDT) Message-ID: <51DF9794.4010000@kernel.org> Date: Fri, 12 Jul 2013 08:43:48 +0300 From: Pekka Enberg MIME-Version: 1.0 Subject: Re: [PATCH 2/2] mm: add a field to store names for private anonymous memory References: <1373596462-27115-1-git-send-email-ccross@android.com> <1373596462-27115-2-git-send-email-ccross@android.com> In-Reply-To: <1373596462-27115-2-git-send-email-ccross@android.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Colin Cross Cc: linux-kernel@vger.kernel.org, Kyungmin Park , Christoph Hellwig , John Stultz , "Eric W. Biederman" , Dave Hansen , Rob Landley , Andrew Morton , Cyrill Gorcunov , David Rientjes , Davidlohr Bueso , Kees Cook , Al Viro , Hugh Dickins , Mel Gorman , Michel Lespinasse , Rik van Riel , Konstantin Khlebnikov , Peter Zijlstra , "Paul E. McKenney" , David Howells , Arnd Bergmann , Dave Jones , "Rafael J. Wysocki" , Oleg Nesterov , Shaohua Li , Sasha Levin , KOSAKI Motohiro , Johannes Weiner , Ingo Molnar , linux-doc@vger.kernel.org, linux-mm@kvack.org On 07/12/2013 05:34 AM, Colin Cross wrote: > Userspace processes often have multiple allocators that each do > anonymous mmaps to get memory. When examining memory usage of > individual processes or systems as a whole, it is useful to be > able to break down the various heaps that were allocated by > each layer and examine their size, RSS, and physical memory > usage. > > This patch adds a user pointer to the shared union in > vm_area_struct that points to a null terminated string inside > the user process containing a name for the vma. vmas that > point to the same address will be merged, but vmas that > point to equivalent strings at different addresses will > not be merged. > > Userspace can set the name for a region of memory by calling > prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name); > Setting the name to NULL clears it. > > The names of named anonymous vmas are shown in /proc/pid/maps > as [anon:] and in /proc/pid/smaps in a new "Name" field > that is only present for named vmas. If the userspace pointer > is no longer valid all or part of the name will be replaced > with "". > > The idea to store a userspace pointer to reduce the complexity > within mm (at the expense of the complexity of reading > /proc/pid/mem) came from Dave Hansen. This results in no > runtime overhead in the mm subsystem other than comparing > the anon_name pointers when considering vma merging. The pointer > is stored in a union with fieds that are only used on file-backed > mappings, so it does not increase memory usage. > > Signed-off-by: Colin Cross So how does this perform if I do prctl(PR_SET_VMA_ANON_NAME) for thousands of relatively small (max 1 KB) JIT generated functions? Will we run into MM problems because the VMAs are not mergeable? Pekka -- 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: email@kvack.org