linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RFC: named anonymous vmas
@ 2013-06-21 23:42 Colin Cross
  2013-06-22  5:12 ` Kyungmin Park
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Colin Cross @ 2013-06-21 23:42 UTC (permalink / raw)
  To: lkml; +Cc: Linux-MM, Android Kernel Team, John Stultz

One of the features of ashmem (drivers/staging/android/ashmem.c) that
hasn't gotten much discussion about moving out of staging is named
anonymous memory.

In Android, ashmem is used for three different features, and most
users of it only care about one feature at a time.  One is volatile
ranges, which John Stultz has been implementing.  The second is
anonymous shareable memory without having a world-writable tmpfs that
untrusted apps could fill with files.  The third and most heavily used
feature within the Android codebase is named anonymous memory, where a
region of anonymous memory can have a name associated with it that
will show up in /proc/pid/maps.  The Dalvik VM likes to use this
feature extensively, even for memory that will never be shared and
could easily be allocated using an anonymous mmap, and even malloc has
used it in the past.  It provides an easy way to collate memory used
for different purposes across multiple processes, which Android uses
for its "dumpsys meminfo" and "librank" tools to determine how much
memory is used for java heaps, JIT caches, native mallocs, etc.

I'd like to add this feature for anonymous mmap memory.  I propose
adding an madvise2(unsigned long start, size_t len_in, int behavior,
void *ptr, size_t size) syscall and a new MADV_NAME behavior, which
treats ptr as a string of length size.  The string would be copied
somewhere reusable in the kernel, or reused if it already exists, and
the kernel address of the string would get stashed in a new field in
struct vm_area_struct.  Adjacent vmas would only get merged if the
name pointer matched, and naming part of a mapping would split the
mapping.  show_map_vma would print the name only if none of the other
existing names rules match.

Any comments as I start implementing it?  Is there any reason to allow
naming a file-backed mapping and showing it alongside the file name in
/proc/pid/maps?

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-08-03 23:55 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-21 23:42 RFC: named anonymous vmas Colin Cross
2013-06-22  5:12 ` Kyungmin Park
2013-06-22  5:20   ` Colin Cross
2013-06-22 10:31 ` Christoph Hellwig
2013-06-22 17:30   ` Colin Cross
     [not found]     ` <kq4v0b$p8p$3@ger.gmane.org>
2013-06-24 11:48       ` Christoph Hellwig
2013-06-24 17:26         ` Colin Cross
2013-06-24 23:45           ` John Stultz
2013-07-14  0:57         ` Sam Ben
2013-08-01  8:29     ` Christoph Hellwig
2013-08-01  8:36       ` Rich Felker
2013-08-02 15:11         ` Christoph Hellwig
2013-08-03 23:54         ` KOSAKI Motohiro
2013-07-14  0:27 ` Sam Ben

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