Hi, Minchan, In commit 0bcac06f27d7 ("mm, swap: skip swapcache for swapin of synchronous device"), swap cache management is skipped for super fast device with synchronous IO. That did help performance for these devices much at that time. But in commit aae466b0052e ("mm/swap: implement workingset detection for anonymous LRU"), swap cache is used to record workingset shadow value. So it needs to be operated anyway in swapin in common cases. Although lockless operation get_shadow_from_swap_cache() is used now, in swap_free() path, swap cache will be locked. So now, is it still necessary to skip swap cache logic in do_swap_page() for SWP_SYNCHRONOUS_IO? Maybe we can just simplify the logic? Best Regards, Huang, Ying