Date: Sun, 29 Dec 2013 22:13:15 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Alan Cox <alc@rice.edu> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, Marcel Moolenaar <marcel@FreeBSD.org>, src-committers@freebsd.org, Nathan Whitehorn <nwhitehorn@freebsd.org> Subject: Re: svn commit: r259908 - head/sys/vm Message-ID: <20131229201315.GW59496@kib.kiev.ua> In-Reply-To: <52C074CA.4040208@rice.edu> References: <201312260546.rBQ5kAoJ009798@svn.freebsd.org> <52BF6699.1040006@freebsd.org> <52BF7195.2070606@rice.edu> <20131229090053.GU59496@kib.kiev.ua> <52C074CA.4040208@rice.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
--oBzgnH5Lm+6YPTsS Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Dec 29, 2013 at 01:15:22PM -0600, Alan Cox wrote: > On 12/29/2013 03:00, Konstantin Belousov wrote: > > BTW, I do not easily see why the current amd64 implementation needs > > the pmap being current. I do not see accesses to recursive page table > > mappings in the code. >=20 > The amd64 implementation doesn't load and clear the PTEs atomically, so > the dirty bit could be set by another processor after the PTE was loaded > but before it was cleared. But then, the check at the start of the function is not sufficient. Other thread in the process or rforked child could still operate on the address space. I think it is mostly enough since pmap_remove_pages() is (was) only called for the last reference on the vmspace going away, so accidentally the check is good enough. But IMO it definitely does not reflect the cause for the restriction. --oBzgnH5Lm+6YPTsS Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBAgAGBQJSwIJaAAoJEJDCuSvBvK1Bt1cP/3zyVhLdCsmgNqETjYiyRs0o WmHTAfK7pbIIDtbXceShy5c0QBrDAAhaSo+iSLso95xMdLw2nxosC17HmUiw3q4W KF8HZnQFM3xzw+NX88HEY7j8n73g++FhrWCC8cIfwEJR1j6Z1MTxIX1B11MjHXNl a3LjBKpI+gXR5O+h4tsSi7eYBYjazR1ZRfVocqUnKtpG3HkDcao6p2w9tgN+G9Oc yNsI056WvZ5SxGkTBqJ9qtTh0WWYmc9JWPx2W/ENzoTHlhnrkTNnZ6Glc7ZpVvXf uspAC1tOT4klLG44bjBmSAkTXaTQYNukHwagu3SwFS5OXiHxJn+9Dqvx9UjncU/e aLyEfdVbC1VKYotvgIGQUiM+1mv/ROCfCQzPgvOpTWbYx0YFtNpSMzc+vSRfzR+D CjdCBq/3Tv77V7935uyMKtHGs6eSTk7Lh6wZ2H5G39eOuDwrc1azHkNZrIN2DCLe PN6FMOzKQrmYWShMMk+f99Ef6OOAGBs74RtTYiguJet/d6pMbPyuiYnbAjlaAEiK CoYLE0nByhmAeCEA3Ejikvlr/IFJznxOcP9NOjKXsRXo4RndSeQrg90rC20pA+An D+exNYAp+WZGQxS5eDiS0cF8HH6ZTXFiUbsKF8k+erlx+SetJvuRsbK/XGpGAz/1 68zShwO67C/Eaajivc+2 =+AUq -----END PGP SIGNATURE----- --oBzgnH5Lm+6YPTsS--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131229201315.GW59496>