Abhilash V R
Abhilash V R

Reputation: 257

used heap size of user process from kernel module

I am writing a kernel module which will accept user process id (PID) as input and dump all the address space of that user process,like stack,heap segment.

I took mm->start_brk as start of heap, mm->brk as end of heap,then i am seeing, even though user process is not using 33 pages, heap size shows as 33 pages (mm->brk - mm->start_brk). (This i verified using /proc/pid/maps). Stack also behaves in similar way.

So is there any way i can find out the really used heap staring from mm->start_brk, So that i can dump only the used heap.

Upvotes: 1

Views: 1393

Answers (1)

ugoren
ugoren

Reputation: 16449

A process can allocate memory with brk and with mmap. The latter doesn't change the heap, but allocates separately.

mm->mmap is a linked list of mappings created by mmap.

Upvotes: 2

Related Questions