Messages in this thread | | | Date | Wed, 01 May 2013 14:28:17 +0800 | From | Will Huck <> | Subject | Re: [RFC PATCH 0/3] Obey mark_page_accessed hint given by filesystems |
| |
Hi Mel, On 04/30/2013 12:31 AM, Mel Gorman wrote: > Andrew Perepechko reported a problem whereby pages are being prematurely > evicted as the mark_page_accessed() hint is ignored for pages that are > currently on a pagevec -- http://www.spinics.net/lists/linux-ext4/msg37340.html . > Alexey Lyahkov and Robin Dong have also reported problems recently that > could be due to hot pages reaching the end of the inactive list too quickly > and be reclaimed.
Both shrink_active_list and shrink_inactive_list can call lru_add_drain(), why the hot pages can't be mark Actived during this time?
> Rather than addressing this on a per-filesystem basis, this series aims > to fix the mark_page_accessed() interface by deferring what LRU a page > is added to pagevec drain time and allowing mark_page_accessed() to call > SetPageActive on a pagevec page. This opens some important races that > I think should be harmless but needs double checking. The races and the > VM_BUG_ON checks that are removed are all described in patch 2. > > This series received only very light testing but it did not immediately > blow up and a debugging patch confirmed that pages are now getting added > to the active file LRU list that would previously have been added to the > inactive list. > > fs/cachefiles/rdwr.c | 30 ++++++------------------ > fs/nfs/dir.c | 7 ++---- > include/linux/pagevec.h | 34 +-------------------------- > mm/swap.c | 61 ++++++++++++++++++++++++------------------------- > mm/vmscan.c | 3 --- > 5 files changed, 40 insertions(+), 95 deletions(-) >
| |