Hi Yang,
On Wed, Aug 19, 2020 at 02:41:08PM -0700, Yang Shi wrote:
On Wed, Aug 19, 2020 at 1:15 PM Gao Xiang hsiangkao@redhat.com wrote:
Hi Andrew,
On Wed, Aug 19, 2020 at 01:05:06PM -0700, Andrew Morton wrote:
On Thu, 20 Aug 2020 03:56:13 +0800 Gao Xiang hsiangkao@redhat.com wrote:
SWP_FS doesn't mean the device is file-backed swap device, which just means each writeback request should go through fs by DIO. Or it'll just use extents added by .swap_activate(), but it also works as file-backed swap device.
This is very hard to understand :(
Thanks for your reply...
The related logic is in __swap_writepage() and setup_swap_extents(), and also see e.g generic_swapfile_activate() or iomap_swapfile_activate()...
I think just NFS falls into this case, so you may rephrase it to:
SWP_FS is only used for swap files over NFS. So, !SWP_FS means non NFS swap, it could be either file backed or device backed.
Thanks for your suggestion...
That looks reasonable, and after I looked bc4ae27d817a ("mm: split SWP_FILE into SWP_ACTIVATED and SWP_FS")
I think it could be rephrased into
" The SWP_FS flag is used to make swap_{read,write}page() go through the filesystem, and it's only used for swap files over NFS. So, !SWP_FS means non NFS for now, it could be either file backed or device backed. Something similar goes with legacy SWP_FILE. "
Does it look sane? And I will wait for further suggestion about this for a while.
And IMO, SWP_FS flag might be useful for other uses later (e.g. laterly for some CoW swapfile use, but I don't think carefully if it's practical or not...)
Thanks, Gao Xiang