linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: Rich Felker <dalias@libc.org>
Cc: Ilya Smith <blackzert@gmail.com>,
	rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com,
	vgupta@synopsys.com, linux@armlinux.org.uk, tony.luck@intel.com,
	fenghua.yu@intel.com, jhogan@kernel.org, ralf@linux-mips.org,
	jejb@parisc-linux.org, deller@gmx.de, benh@kernel.crashing.org,
	paulus@samba.org, mpe@ellerman.id.au, schwidefsky@de.ibm.com,
	heiko.carstens@de.ibm.com, ysato@users.sourceforge.jp,
	davem@davemloft.net, tglx@linutronix.de, mingo@redhat.com,
	hpa@zytor.com, x86@kernel.org, nyc@holomorphy.com,
	viro@zeniv.linux.org.uk, arnd@arndb.de,
	gregkh@linuxfoundation.org, deepa.kernel@gmail.com,
	mhocko@suse.com, hughd@google.com, kstewart@linuxfoundation.org,
	pombredanne@nexb.com, akpm@linux-foundation.org,
	steve.capper@arm.com, punit.agrawal@arm.com,
	paul.burton@mips.com, aneesh.kumar@linux.vnet.ibm.com,
	npiggin@gmail.com, keescook@chromium.org, bhsharma@redhat.com,
	riel@redhat.com, nitin.m.gupta@oracle.com,
	kirill.shutemov@linux.intel.com, dan.j.williams@intel.com,
	jack@suse.cz, ross.zwisler@linux.intel.com, jglisse@redhat.com,
	aarcange@redhat.com, oleg@redhat.com,
	linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org,
	linux-metag@vger.kernel.org, linux-mips@linux-mips.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [RFC PATCH v2 0/2] Randomization of address chosen by mmap.
Date: Fri, 23 Mar 2018 12:29:52 -0700	[thread overview]
Message-ID: <20180323192952.GB23763@bombadil.infradead.org> (raw)
In-Reply-To: <20180323191621.GC1436@brightrain.aerifal.cx>

On Fri, Mar 23, 2018 at 03:16:21PM -0400, Rich Felker wrote:
> > Huh, I thought libc was aware of this.  Also, I'd expect a libc-based
> > implementation to restrict itself to, eg, only loading libraries in
> > the bottom 1GB to avoid applications who want to map huge things from
> > running out of unfragmented address space.
> 
> That seems like a rather arbitrary expectation and I'm not sure why
> you'd expect it to result in less fragmentation rather than more. For
> example if it started from 1GB and worked down, you'd immediately
> reduce the contiguous free space from ~3GB to ~2GB, and if it started
> from the bottom and worked up, brk would immediately become
> unavailable, increasing mmap pressure elsewhere.

By *not* limiting yourself to the bottom 1GB, you'll almost immediately
fragment the address space even worse.  Just looking at 'ls' as a
hopefully-good example of a typical app, it maps:

	linux-vdso.so.1 (0x00007ffef5eef000)
	libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fb3657f5000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb36543b000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fb3651c9000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb364fc5000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fb365c3f000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb364da7000)

The VDSO wouldn't move, but look at the distribution of mapping 6 things
into a 3GB address space in random locations.  What are the odds you have
a contiguous 1GB chunk of address space?  If you restrict yourself to the
bottom 1GB before running out of room and falling back to a sequential
allocation, you'll prevent a lot of fragmentation.

  reply	other threads:[~2018-03-23 19:30 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-22 16:36 [RFC PATCH v2 0/2] Randomization of address chosen by mmap Ilya Smith
2018-03-22 16:36 ` [RFC PATCH v2 1/2] " Ilya Smith
2018-03-22 20:53   ` Andrew Morton
2018-03-23 17:43     ` Ilya Smith
2018-03-22 16:36 ` [RFC PATCH v2 2/2] Architecture defined limit on memory region random shift Ilya Smith
2018-03-22 20:54   ` Andrew Morton
2018-03-23 17:48     ` Ilya Smith
2018-03-23 17:49     ` Ilya Smith
2018-03-22 20:57 ` [RFC PATCH v2 0/2] Randomization of address chosen by mmap Andrew Morton
2018-03-23 17:25   ` Ilya Smith
2018-03-23 12:48 ` Matthew Wilcox
2018-03-23 17:55   ` Ilya Smith
2018-03-26  8:46     ` Michal Hocko
2018-03-26 19:45       ` Ilya Smith
2018-03-27  7:24         ` Michal Hocko
2018-03-27 13:51           ` Ilya Smith
2018-03-27 14:38             ` Michal Hocko
2018-03-28 18:47               ` Ilya Smith
2018-03-27 22:16             ` Theodore Y. Ts'o
2018-03-27 23:58               ` Rich Felker
2018-03-28 18:48               ` Ilya Smith
2018-03-27 22:53             ` Kees Cook
2018-03-27 23:49               ` Matthew Wilcox
2018-03-27 23:57                 ` Kees Cook
2018-03-28  0:00                 ` Rich Felker
2018-03-28 21:07                   ` Luck, Tony
2018-04-03  0:11                     ` Ilya Smith
2018-03-28 21:07                 ` Ilya Smith
2018-03-23 18:00   ` Rich Felker
2018-03-23 19:06     ` Matthew Wilcox
2018-03-23 19:16       ` Rich Felker
2018-03-23 19:29         ` Matthew Wilcox [this message]
2018-03-23 19:35           ` Rich Felker
2018-03-28  4:50       ` Rob Landley
2018-03-30  7:55 ` Pavel Machek
2018-03-30  9:07   ` Ilya Smith
2018-03-30  9:57     ` Pavel Machek
2018-03-30 11:10       ` Ilya Smith
2018-03-30 13:33   ` Rich Felker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180323192952.GB23763@bombadil.infradead.org \
    --to=willy@infradead.org \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bhsharma@redhat.com \
    --cc=blackzert@gmail.com \
    --cc=dalias@libc.org \
    --cc=dan.j.williams@intel.com \
    --cc=davem@davemloft.net \
    --cc=deepa.kernel@gmail.com \
    --cc=deller@gmx.de \
    --cc=fenghua.yu@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hpa@zytor.com \
    --cc=hughd@google.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jack@suse.cz \
    --cc=jejb@parisc-linux.org \
    --cc=jglisse@redhat.com \
    --cc=jhogan@kernel.org \
    --cc=keescook@chromium.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kstewart@linuxfoundation.org \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-metag@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mattst88@gmail.com \
    --cc=mhocko@suse.com \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=nitin.m.gupta@oracle.com \
    --cc=npiggin@gmail.com \
    --cc=nyc@holomorphy.com \
    --cc=oleg@redhat.com \
    --cc=paul.burton@mips.com \
    --cc=paulus@samba.org \
    --cc=pombredanne@nexb.com \
    --cc=punit.agrawal@arm.com \
    --cc=ralf@linux-mips.org \
    --cc=riel@redhat.com \
    --cc=ross.zwisler@linux.intel.com \
    --cc=rth@twiddle.net \
    --cc=schwidefsky@de.ibm.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=steve.capper@arm.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=vgupta@synopsys.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=x86@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).