2

UPDATE:

It's a padding: every such non-rwx area is preceded with a readable and/or writable area and together they constitute a 64Mb segment (for 64bit architecture).

A relevant question on SO: https://stackoverflow.com/q/6568043/251311

I have discovered there are plenty of VM segments that don't have any of rwx flags, just p:

7f7e98033000-7f7e9c000000 ---p 00000000 00:00 0 Size: 65332 kB Rss: 0 kB Pss: 0 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 0 kB Anonymous: 0 kB AnonHugePages: 0 kB Swap: 0 kB KernelPageSize: 4 kB MMUPageSize: 4 kB 

Any reference on what it means?

Unlike what's described in http://www.greenend.org.uk/rjk/tech/dataseg.html, it's not a mapping from a shared library since it does not have a corresponding fd attached. It's a custom long running C++ daemon, but I found some other processes have similar usage patterns: eg erlang (which also has plenty of them). In contrast long running php-fpm and python processes have literally 0 of such segments. "What other mappings does it have?" --- everything else is kind of expected and usual: just normal r/w private segments and shared libraries.

4
  • @Gilles I've run through the links in your answer (especially the greenend.org.uk/rjk/tech/dataseg.html which is a gem), do you think it has the same nature as with shared libraries? Eg: it's done by a linker (or something else) to enforce placement of something separated from something else? My extremely limited understanding of memory management allows me understand why it can be helpful for a shared library case, but here it's an anonymous private page. Do you think it's the case here as well? Commented Oct 11, 2015 at 22:02
  • Hmm, true, there could be some other reason to have a private page with no permissions (none that comes to mind, but it's technically possible). But what makes you think that this isn't a mapping from a shared library? What process is it? What other mappings does it have? Commented Oct 11, 2015 at 22:12
  • It's not a mapping from a shared library since it does not have a corresponding fd attached. It's a custom long running C++ daemon, but I found some other processes have similar usage patterns: eg erlang (which also has plenty of them). In contrast long running php-fpm and python processes have literally 0 of such segments. "What other mappings does it have?" --- everything else is kind of expected and usual: just normal r/w private segments and shared libraries. Commented Oct 11, 2015 at 22:14
  • @Gilles seems like it's padding (relevant macro is HEAP_MAX_SIZE). Having that keyword I could find something relevant. And what is funny is that you have edited that question as well! :-D stackoverflow.com/q/6568043/251311 Commented Oct 13, 2015 at 20:45

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.