Skip to contentSkip to conversation

/proc/<pid>/maps question....why aren't adjacent memory chunks merged?

DISCUSSION Chris Friesen 2 participants 2 messages May 13, 2010 – May 14, 2010 Memory management

lore
Share & tools
lore
#0 lore raw

Hi,

I've got a system running a somewhat-modified 2.6.27 on 64-bit x86.

While investigating a userspace memory leak issue I noticed that /proc/<pid>/maps showed a bunch of adjacent anonymous memory chunks with identical permissions:

7fd048000000-7fd04c000000 rw-p 00000000 00:00 0
7fd04c000000-7fd050000000 rw-p 00000000 00:00 0
7fd050000000-7fd054000000 rw-p 00000000 00:00 0
7fd054000000-7fd058000000 rw-p 00000000 00:00 0
7fd058000000-7fd05c000000 rw-p 00000000 00:00 0
7fd05c000000-7fd060000000 rw-p 00000000 00:00 0
7fd060000000-7fd064000000 rw-p 00000000 00:00 0
7fd064000000-7fd068000000 rw-p 00000000 00:00 0
7fd068000000-7fd06c000000 rw-p 00000000 00:00 0
7fd06c000000-7fd070000000 rw-p 00000000 00:00 0
7fd070000000-7fd074000000 rw-p 00000000 00:00 0
7fd074000000-7fd078000000 rw-p 00000000 00:00 0
7fd078000000-7fd07c000000 rw-p 00000000 00:00 0
7fd07c000000-7fd07fffe000 rw-p 00000000 00:00 0

I was under the impression that the kernel would merge areas together in this circumstance. Does anyone have an idea about what's going on here?

Thanks,

Chris

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

#1 lore raw
Quoted 23 lines · Chris Friesen

Hi,

I've got a system running a somewhat-modified 2.6.27 on 64-bit x86.

While investigating a userspace memory leak issue I noticed that /proc/<pid>/maps showed a bunch of adjacent anonymous memory chunks with identical permissions:

7fd048000000-7fd04c000000 rw-p 00000000 00:00 0 7fd04c000000-7fd050000000 rw-p 00000000 00:00 0 7fd050000000-7fd054000000 rw-p 00000000 00:00 0 7fd054000000-7fd058000000 rw-p 00000000 00:00 0 7fd058000000-7fd05c000000 rw-p 00000000 00:00 0 7fd05c000000-7fd060000000 rw-p 00000000 00:00 0 7fd060000000-7fd064000000 rw-p 00000000 00:00 0 7fd064000000-7fd068000000 rw-p 00000000 00:00 0 7fd068000000-7fd06c000000 rw-p 00000000 00:00 0 7fd06c000000-7fd070000000 rw-p 00000000 00:00 0 7fd070000000-7fd074000000 rw-p 00000000 00:00 0 7fd074000000-7fd078000000 rw-p 00000000 00:00 0 7fd078000000-7fd07c000000 rw-p 00000000 00:00 0 7fd07c000000-7fd07fffe000 rw-p 00000000 00:00 0

Quoted 3 lines

I was under the impression that the kernel would merge areas together in this circumstance. Does anyone have an idea about what's going on here?

Well, that is not so simple, there are other considerations, you need to check vma_merge(), especially can_vma_merge_{after,before}().

Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>