Reputation: 257
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
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