Re: [PATCH 2/4] mm: speed up mremap by 500x on large regions (v2)

From
Vlastimil Babka <hidden>
Date
2018-10-16 11:30:02
Also in
kvmarm, linux-alpha, linux-mips, linux-mm, linux-riscv, linux-um
Reply to
Joel Fernandes, 2018-10-15
On 10/16/18 12:33 AM, Joel Fernandes wrote:
On Mon, Oct 15, 2018 at 02:42:09AM -0700, Christoph Hellwig wrote:
quoted
On Fri, Oct 12, 2018 at 06:31:58PM -0700, Joel Fernandes (Google) wrote:
quoted
Android needs to mremap large regions of memory during memory management
related operations.
Just curious: why?
In Android we have a requirement of moving a large (up to a GB now, but may
grow bigger in future) memory range from one location to another.
I think Christoph's "why?" was about the requirement, not why it hurts
applications. I admit I'm now also curious :)
This move
operation has to happen when the application threads are paused for this
operation. Therefore, an inefficient move like it is now (for example 250ms
on arm64) will cause response time issues for applications, which is not
acceptable. Huge pages cannot be used in such memory ranges to avoid this
inefficiency as (when the application threads are running) our fault handlers
are designed to process 4KB pages at a time, to keep response times low. So
using huge pages in this context can, again, cause response time issues.

Also, the mremap syscall waiting for quarter of a second for a large mremap
is quite weird and we ought to improve it where possible.
Thread (26 messages) 26 messages, 7 authors, last reply 2018-10-29
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help