Date: Sat, 02 Aug 2014 00:02:24 -0500 From: Alan Cox <alc@rice.edu> To: Slawa Olhovchenkov <slw@zxy.spb.ru>, Alan Cox <alc@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r269134 - head/sys/vm Message-ID: <53DC70E0.3080709@rice.edu> In-Reply-To: <20140729103812.GA64229@zxy.spb.ru> References: <201407261810.s6QIAIIj049439@svn.freebsd.org> <20140729103812.GA64229@zxy.spb.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On 07/29/2014 05:38, Slawa Olhovchenkov wrote: > On Sat, Jul 26, 2014 at 06:10:18PM +0000, Alan Cox wrote: > >> Author: alc >> Date: Sat Jul 26 18:10:18 2014 >> New Revision: 269134 >> URL: http://svnweb.freebsd.org/changeset/base/269134 >> >> Log: >> When unwiring a region of an address space, do not assume that the >> underlying physical pages are mapped by the pmap. If, for example, the >> application has performed an mprotect(..., PROT_NONE) on any part of the >> wired region, then those pages will no longer be mapped by the pmap. >> So, using the pmap to lookup the wired pages in order to unwire them >> doesn't always work, and when it doesn't work wired pages are leaked. >> >> To avoid the leak, introduce and use a new function vm_object_unwire() >> that locates the wired pages by traversing the object and its backing >> objects. > MFC planed? At some point, yes. However, I'm not sure that it will be MFCed in time for 10.1. >> At the same time, switch from using pmap_change_wiring() to the recently >> introduced function pmap_unwire() for unwiring the region's mappings. >> pmap_unwire() is faster, because it operates a range of virtual addresses >> rather than a single virtual page at a time. Moreover, by operating on >> a range, it is superpage friendly. It doesn't waste time performing >> unnecessary demotions. >> >> Reported by: markj >> Reviewed by: kib >> Tested by: pho, jmg (arm) >> Sponsored by: EMC / Isilon Storage Division >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53DC70E0.3080709>