Re: [RFC] perf tools: Add hugetlbfs memory recognition

Arnaldo Carvalho de Melo
2015-06-29T13:23:39Z

Em Sat, Jun 27, 2015 at 05:08:20PM +0800, Hou Pengyang escreveu:
> There is something about MAP_HUGETLB.

> In this patch, we check if a mmap area is hugetlbfs area by MAP_HUGETLB,
> a bit in MMAP2 event.

> However, if mmap area is hugetlb related, MAP_HUGETLB does not always
> appear. Because, there are two ways generating MMAP2 event.

> 1) when a new vm_area_struct is created, its info would be exported
> as a MMAP2 event.
> 2) perf reads /proc/pid/maps for generating MMAP2 event.

> MAP_HUGETLB appears if MMAP2 event is generated on situation 1),
> while not on situation 2).

> This is because on situation 2), perf reads /proc/pid/maps, which
> contains only PROT_READ/WRITE/EXEC, MAP_SHARED/MAP_PRIVATE, while more
> details appear in /proc/pid/smaps, such as MAP_HUGETLB.

Humm:

[root@zoo ~]# wc -l /proc/`pidof firefox`/maps
934 /proc/4551/maps
[root@zoo ~]# wc -l /proc/`pidof firefox`/smaps
14944 /proc/4551/smaps
[root@zoo ~]#

> So I wonder if there is a need to read /proc/pid/smaps instead of
> /proc/pid/maps to generate MMAP2 event. Or we should solve the problem by
> another way?

Doing some research now...

- Arnaldo