I'm using ::findleaks to find the leaks and need some help with
"oversized leaks" shown by ::findleaks. It says the caller is MMAP.
How do I find out more information about what's actually leaking? I
tried ::bufctl -v, but it gave no useful information.
bash-3.2# svcadm enable nwam
bash-3.2# mdb -p `pgrep nwamd`
Loading modules: [ ld.so.1 libumem.so.1 libuutil.so.1 libnvpair.so.1
libsysevent.so.1 ]
> ::findleaks
BYTES LEAKED VMEM_SEG CALLER
8192 3 c44ad000 MMAP
12288 1 c5018000 MMAP
8192 1 c4dc9000 MMAP
------------------------------------------------------------------------
Total 3 oversized leaks, 28672 bytes
> ::findleaks -vd
findleaks: using cached results (use '-f' to force a full run)
BYTES LEAKED VMEM_SEG CALLER
8192 3 c44ad000 MMAP
12288 1 c5018000 MMAP
8192 1 c4dc9000 MMAP
------------------------------------------------------------------------
Total 3 oversized leaks, 28672 bytes
mmap(2) leak: [c44ad000, c44af000), 8192 bytes
mmap(2) leak: [c5018000, c501b000), 12288 bytes
mmap(2) leak: [c4dc9000, c4dcb000), 8192 bytes
> c44ad000::bufctl -v
ADDR BUFADDR TIMESTAMP THREAD
CACHE LASTLOG CONTENTS
c44ad000 0 0 0
0 0 0
BTW, I get this same oversized leak with nwamcfg also.
bash-3.2# nwamcfg
nwamcfg>
[1]+ Stopped nwamcfg
bash-3.2# mdb -p `pgrep nwamcfg`
Loading modules: [ ld.so.1 libumem.so.1 ]
> ::findleaks
findleaks: using cached results (use '-f' to force a full run)
BYTES LEAKED VMEM_SEG CALLER
4096 1 c5206000 MMAP
------------------------------------------------------------------------
Total 1 oversized leak, 4096 bytes
> c5206000::bufctl -v
ADDR BUFADDR TIMESTAMP THREAD
CACHE LASTLOG CONTENTS
c5206000 c51d9ba8 173080478c0 0
0 0 0
Thanks,
Anurag