• Chao Yu's avatar
    f2fs: swap: support migrating swapfile in aligned write mode · 859fca6b
    Chao Yu authored
    This patch supports to migrate swapfile in aligned write mode during
    swapon in order to keep swapfile being aligned to section as much as
    possible, then pinned swapfile will locates fully filled section which
    may not affected by GC.
    
    However, for the case that swapfile's size is not aligned to section
    size, it will still leave last extent in file's tail as unaligned due
    to its size is smaller than section size, like case #2.
    
    case #1
    xfs_io -f /mnt/f2fs/file -c "pwrite 0 4M" -c "fsync"
    
    Before swapon:
     EXT: FILE-OFFSET      BLOCK-RANGE      TOTAL FLAGS
       0: [0..3047]:       1123352..1126399  3048 0x1000
       1: [3048..7143]:    237568..241663    4096 0x1000
       2: [7144..8191]:    245760..246807    1048 0x1001
    After swapon:
     EXT: FILE-OFFSET      BLOCK-RANGE      TOTAL FLAGS
       0: [0..8191]:       249856..258047    8192 0x1001
    Kmsg:
    F2FS-fs (zram0): Swapfile (2) is not align to section:
    1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate(2097152 * n)
    
    case #2
    xfs_io -f /mnt/f2fs/file -c "pwrite 0 3M" -c "fsync"
    
    Before swapon:
     EXT: FILE-OFFSET      BLOCK-RANGE      TOTAL FLAGS
       0: [0..3047]:       246808..249855    3048 0x1000
       1: [3048..6143]:    237568..240663    3096 0x1001
    After swapon:
     EXT: FILE-OFFSET      BLOCK-RANGE      TOTAL FLAGS
       0: [0..4095]:       258048..262143    4096 0x1000
       1: [4096..6143]:    238616..240663    2048 0x1001
    Kmsg:
    F2FS-fs (zram0): Swapfile: last extent is not aligned to section
    F2FS-fs (zram0): Swapfile (2) is not align to section:
    1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate(2097152 * n)
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    859fca6b
data.c 99.3 KB