Re: [patch]mm: make madvise(MADV_WILLNEED) support swap file prefetch

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

 



On Tue, 2013-01-08 at 15:32 +0800, Shaohua Li wrote:
> On Tue, Jan 08, 2013 at 02:38:56PM +0900, Minchan Kim wrote:
> > Hi Shaohua,
> > 
> > On Tue, Jan 08, 2013 at 12:26:09PM +0800, Shaohua Li wrote:
> > > On Tue, Jan 08, 2013 at 10:16:07AM +0800, Wanpeng Li wrote:
> > > > On Mon, Jan 07, 2013 at 12:06:30PM -0800, Andrew Morton wrote:
> > > > >On Mon, 7 Jan 2013 16:12:37 +0800
> > > > >Shaohua Li <shli@xxxxxxxxxx> wrote:
> > > > >
> > > > >> 
> > > > >> Make madvise(MADV_WILLNEED) support swap file prefetch. If memory is swapout,
> > > > >> this syscall can do swapin prefetch. It has no impact if the memory isn't
> > > > >> swapout.
> > > > >
> > > > >Seems sensible.
> > > > 
> > > > Hi Andrew and Shaohua,
> > > > 
> > > > What's the performance in the scenario of serious memory pressure? Since
> > > > in this case pages in swap are highly fragmented and cache hit is most
> > > > impossible. If WILLNEED path should add a check to skip readahead in
> > > > this case since swapin only leads to unnecessary memory allocation. 
> > > 
> > > pages in swap are not highly fragmented if you access memory sequentially. In
> > > that case, the pages you accessed will be added to lru list side by side. So if
> > > app does swap prefetch, we can do sequential disk access and merge small
> > > request to big one.
> > 
> > How can you make sure that the range of WILLNEED was always sequentially accesssed?
> 
> you can't guarantee this even for file access.
> 
> > > Another advantage is prefetch can drive high disk iodepth.  For sequential
> > 
> > What does it mean 'iodepth'? I failed to grep it in google. :(
> 
> io depth. How many requests are inflight at a givin time.
> 
> > > access, this can cause big request. Even for random access, high iodepth has
> > > much better performance especially for SSD.
> > 
> > So you mean WILLNEED is always good in where both random and sequential in "SSD"?
> > Then, how about the "Disk"?
> 
> Hmm, even for hard disk, high iodepth random access is faster than single
> iodepth access. Today's disk is NCQ disk. But the speedup isn't that
> significant like a SSD. For sequential access, both harddisk and SSD have
> better performance with higher iodepth.
> 
> > Wanpeng's comment makes sense to me so I guess others can have a same question
> > about this patch. So it would be better to write your rationale in changelog.
> 
> I would, but the question is just like why app wants to prefetch file pages. I
> thought it's commonsense. The problem like memory allocation exists in file

It just depends on how you understand it. :)

> prefetch too. The advantages (better IO access, CPU and disk can operate in
> parallel and so on) apply for both file and swap prefetch.
> 
> prefetch should never be slower non-prefetch. That's another story if app is
> very wrong. we definitely don't need consider a wrong app. If the app doesn't
> know how to use the API, the app can just don't use it.
> 
> Thanks,
> Shaohua
> 
> --
> 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>


--
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]