Re: [PATCH -mm] mm, swap: Fix false error message in __swp_swapcount()

From: Minchan Kim
Date: Tue Oct 24 2017 - 16:17:23 EST


On Tue, Oct 24, 2017 at 10:47:00AM +0800, Huang, Ying wrote:
> From: Ying Huang <ying.huang@xxxxxxxxx>
>
> __swp_swapcount() is used in __read_swap_cache_async(). Where the
> invalid swap entry (offset > max) may be supplied during swap
> readahead. But __swp_swapcount() will print error message for these
> expected invalid swap entry as below, which will make the users
> confusing.
>
> swap_info_get: Bad swap offset entry 0200f8a7
>
> So the swap entry checking code in __swp_swapcount() is changed to
> avoid printing error message for it. To avoid to duplicate code with
> __swap_duplicate(), a new helper function named
> __swap_info_get_silence() is added and invoked in both places.

It's the problem caused by readahead, not __swap_info_get which is low-end
primitive function. Instead, please fix high-end swapin_readahead to limit
to last valid block as handling to avoid swap header which is special case,
too.