Date: Wed, 28 Jun 2017 18:32:38 -0400 From: Shawn Webb <shawn.webb@hardenedbsd.org> To: Konstantin Belousov <kib@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r320430 - head/sys/vm Message-ID: <20170628223238.v456h4t4huwbqt6f@mutt-hbsd> In-Reply-To: <201706280402.v5S42bQx089187@repo.freebsd.org> References: <201706280402.v5S42bQx089187@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--wissjs73tyvhitp6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jun 28, 2017 at 04:02:37AM +0000, Konstantin Belousov wrote: > Author: kib > Date: Wed Jun 28 04:02:36 2017 > New Revision: 320430 > URL: https://svnweb.freebsd.org/changeset/base/320430 >=20 > Log: > Treat the addr argument for mmap(2) request without MAP_FIXED flag as > a hint. > =20 > Right now, for non-fixed mmap(2) calls, addr is de-facto interpreted > as the absolute minimal address of the range where the mapping is > created. The VA allocator only allocates in the range [addr, > VM_MAXUSER_ADDRESS]. This is too restrictive, the mmap(2) call might > unduly fail if there is no free addresses above addr but a lot of > usable space below it. > =20 > Lift this implementation limitation by allocating VA in two passes. > First, try to allocate above addr, as before. If that fails, do the > second pass with less restrictive constraints for the start of > allocation by specifying minimal allocation address at the max bss > end, if this limit is less than addr. > =20 > One important case where this change makes a difference is the > allocation of the stacks for new threads in libthr. Under some > configuration conditions, libthr tries to hint kernel to reuse the > main thread stack grow area for the new stacks. This cannot work by > design now after grow area is converted to stack, and there is no > unallocated VA above the main stack. Interpreting requested stack > base address as the hint provides compatibility with old libthr and > with (mis-)configured current libthr. > =20 > Reviewed by: alc > Tested by: dim (previous version) > Sponsored by: The FreeBSD Foundation > MFC after: 1 week >=20 > Modified: > head/sys/vm/vm_map.c > head/sys/vm/vm_map.h > head/sys/vm/vm_mmap.c Hey Kostik, This commit breaks both xorg and shutting down/rebooting. Reverting this commit makes my laptop happy again. Thanks, --=20 Shawn Webb Cofounder and Security Engineer HardenedBSD GPG Key ID: 0x6A84658F52456EEE GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89 3D9E 6A84 658F 5245 6EEE --wissjs73tyvhitp6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEKrq2ve9q9Ia+iT2eaoRlj1JFbu4FAllULoMACgkQaoRlj1JF bu5cyg/9GDgKlk6IjQHzwSIPsb5s31YYjKIjcOSvZ+1DMikfEoQ9YPiFBzkWGHMw DUM4OTNpBS6r2qX/yFTGDahHC48CfC8GiwxfRPHHKjpg37eVwwzS+NPlIWp44ndV +00W9pdbxPucK/Wp6swBUGM+nKHowPjr8Cy5MLD7qPvy6AIiy69VrZ1sOwl8xfob MwqB9e04Wh7QKIm9uyTFPAOUBzbnhLl/gwNA9tEk1Y1UYWt9bUIP+fdh/mLoOc0r jVaIdX0Z+qd1sfkfvXe/uwzNceuuAgMhAIYdtISLTfvL5HGRJcNKdVbAQMKRBLel v1T2mpwgah+oBTUvlSiLlHpIkNeBFroVZvLsxTUvy5f85qdMhSJ1rghIs7iqs7cK 9kCLE2GUBO2AWcsyfS3oMq+WVhjuDSFjx1EInuhusz1qdGtVSetksWfCsq+Ks2Ev lNaQBRiytvkIrFIoqJGbB337cUAy1KV05R+dB7Ge/qn+NIMcjIlt0V5hN61z3o16 HH1jfzb37Z+DaHrUwiwrRLQxUOyjjLpILWc9DudB/75atlZfA8FrLaw37/1EgGyd 4NLo0jnMBKw6GsxLZBoH8jMk+QMeEjYRo73medsvOJ3hXBJndLewB8avAW7V11iM KZp5qscqCd1S1LJMVuCUpJZkBPQ5Oah8q2XwUFrgf6hVMv6wbwI= =tNe7 -----END PGP SIGNATURE----- --wissjs73tyvhitp6--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170628223238.v456h4t4huwbqt6f>