On Mon, 27 Aug 2018 15:55:33 +0800 Huang Ying <ying.huang@xxxxxxxxx> wrote: > The code path to reclaim the swap entry in free_swap_and_cache() is > almost same as that of __try_to_reclaim_swap(). The largest > difference is just coding style. So the support to the additional > requirement of free_swap_and_cache() is added into > __try_to_reclaim_swap(). free_swap_and_cache() is changed to call > __try_to_reclaim_swap(), and delete the duplicated code. This will > improve code readability and reduce the potential bugs. > > There are 2 functionality differences between __try_to_reclaim_swap() > and swap entry reclaim code of free_swap_and_cache(). > > - free_swap_and_cache() only reclaims the swap entry if the page is > unmapped or swap is getting full. The support has been added into > __try_to_reclaim_swap(). > > - try_to_free_swap() (called by __try_to_reclaim_swap()) checks > pm_suspended_storage(), while free_swap_and_cache() not. I think > this is OK. Because the page and the swap entry can be reclaimed > later eventually. hm. Having functions take `mode' arguments which specify their actions in this manner isn't popular (Linus ;)) but I guess the end result is somewhat better.