Re: [RFC PATCH] mm: madvise: Ignore repeated MADV_DONTNEED hints

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 03, 2015 at 12:47:56PM +0200, Kirill A. Shutemov wrote:
> On Tue, Feb 03, 2015 at 09:47:18AM +0000, Mel Gorman wrote:
> > On Mon, Feb 02, 2015 at 02:22:36PM -0800, Dave Hansen wrote:
> > > On 02/02/2015 08:55 AM, Mel Gorman wrote:
> > > > This patch identifies when a thread is frequently calling MADV_DONTNEED
> > > > on the same region of memory and starts ignoring the hint. On an 8-core
> > > > single-socket machine this was the impact on ebizzy using glibc 2.19.
> > > 
> > > The manpage, at least, claims that we zero-fill after MADV_DONTNEED is
> > > called:
> > > 
> > 
> > It also claims that the kernel is free to ignore the advice.
> > 
> > > >      MADV_DONTNEED
> > > >               Do  not  expect  access in the near future.  (For the time being, the application is finished with the given range, so the kernel can free resources
> > > >               associated with it.)  Subsequent accesses of pages in this range will succeed, but will result either in reloading of the memory contents  from  the
> > > >               underlying mapped file (see mmap(2)) or zero-fill-on-demand pages for mappings without an underlying file.
> > > 
> > > So if we have anything depending on the behavior that it's _always_
> > > zero-filled after an MADV_DONTNEED, this will break it.
> > 
> > True. I'd be surprised if any application depended on that 
> 
> IIUC, jemalloc depends on this[1].
> 
> [1] https://github.com/jemalloc/jemalloc/blob/dev/src/chunk_mmap.c#L117
> 

Hope they never back regions with hugetlb then or fall apart if the process
called mlockall

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]