Re: [PATCH v4 -mm] make swapin readahead skip over holes

From: Rik van Riel
Date: Wed Jan 25 2012 - 20:27:28 EST


On 01/25/2012 08:23 PM, Andrew Morton wrote:

Just to show that I'm paying attention...

--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -382,25 +382,23 @@ struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
struct page *swapin_readahead(swp_entry_t entry, gfp_t gfp_mask,
struct vm_area_struct *vma, unsigned long addr)
{
- int nr_pages;
struct page *page;
- unsigned long offset;
- unsigned long end_offset;
+ unsigned long offset = swp_offset(entry);
+ unsigned long start_offset, end_offset;
+ unsigned long mask = (1<< page_cluster) - 1;

This is broken for page_cluster> 31. Fix:

I don't know who would want to do their swapins in chunks
of 8GB or large at a time, but still a good catch.

Want me to send in a v5, or do you prefer to merge a -fix
patch in your tree?

--
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/