Messages in this thread | | | Date | Sat, 1 Nov 2008 10:33:55 +0000 (GMT) | From | Hugh Dickins <> | Subject | Re: [PATCH]swap-zero-page-bug |
| |
On Wed, 29 Oct 2008, Li Xiaodong wrote:
> According to Documentation/filesystems/proc.txt, kernel should swap one page > as vm.page-cluster is 0, while it seems not like so in mm/swapfile.c: > ... > int our_page_cluster = page_cluster; > ... > if (!our_page_cluster) /* no readahead */ > return 0; > ... > > It is better to remove that checkpoint.
No, page_cluster 0 allows swapin one page at a time, but disallows swapin readahead (better named readaround) i.e. disallows reading more than the one page actually requested.
Compare with how valid_swaphandles() is used from swapin_readahead(): there's actually one extra call to read_swap_cache_async() - because we must ignore failure on the readaround but not on the page requested.
That "return 0" avoids the overhead of a pointlessly doubled read_swap_cache_async() when there's only one page to be read.
Your patch might be needed if you'd found that swapin of one page was not working at all - but you'd be making a stronger case if you'd found that, I think!
Hugh
| |