2012-02-22 00:34:46

by Arun Sharma

[permalink] [raw]
Subject: Re: [PATCH] mm: Enable MAP_UNINITIALIZED for archs with mmu

On 1/24/12 5:45 PM, Arun Sharma wrote:
> On 1/23/12 7:07 PM, KAMEZAWA Hiroyuki wrote:
>
>> You can see reduction of clear_page() cost by removing GFP_ZERO but
>> what's your application's total performance ? Is it good enough
>> considering
>> many risks ?
>
> I see 90k calls/sec to clear_page_c when running our application. I
> don't have data on the impact of GFP_ZERO alone, but an earlier
> experiment when we tuned malloc to not call madvise(MADV_DONTNEED)
> aggressively saved us 3% CPU. So I'm expecting this to be a 1-2% win.

I saw some additional measurement data today.

We were running at a lower-than-default value for the rate at which our
malloc implementation releases unused faulted-in memory to the kernel
via madvise(). This was done just to reduce the impact of clear_page()
on application performance. But it cost us at least several hundred megs
(if not more) in additional RSS.

We compared the impact of increasing the madvise rate to the default[1].
This used to cause a 3% CPU regression earlier. But with the patch, the
regression was completely gone and we recovered a bunch of memory in
terms of reduced RSS.

Hope this additional data is useful. Happy to clean up the patch and
implement the opt-in flags.

-Arun

[1] The default rate is 32:1, i.e. no more than 1/32th of the heap is
unused and dirty (i.e. contributing to RSS).