Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jul 2016 15:32:28 -0700
From:      Yuri <yuri@rawbw.com>
To:        Freebsd hackers list <freebsd-hackers@freebsd.org>
Subject:   Re: Why kinfo_getvmmap is sometimes so expensive?
Message-ID:  <6193bbf3-39cd-abaa-a5e4-0480c40dac55@rawbw.com>
In-Reply-To: <20160707001913.GJ38613@kib.kiev.ua>
References:  <e6dc27c0-0454-0666-b3e1-887bd116a847@rawbw.com> <20160707001913.GJ38613@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On 07/06/2016 17:19, Konstantin Belousov wrote:
> To calculate residency count for the process map entries, kernel has to
> iterate over all pages.  This operation was somewhat optimized in 10.3
> and HEAD, particularly for the large sparce mappings.  But for large populated
> mappings there is no other way then to check each page.
>
> You may confirm my hypothesis by setting sysctl
> kern.proc_vmmap_skip_resident_count to 0 and see whether the CPU
> consumption changed.  Of course, you will not get the resident count
> in the returned structure, after the knob is tweaked.


When people raise the question of why malloc library doesn't unmap the 
memory, developers there usually say that they call madvise(MADV_FREE) 
and this is as good as unmap. But this example shows that this isn't 
quite the case on the FreeBSD, and unmapping is better.


Yuri




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6193bbf3-39cd-abaa-a5e4-0480c40dac55>