Re: [PATCH RFC 0/8] xfs: introduce inode data inline feature

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2018年07月06日 11:51, Darrick J. Wong wrote:
On Fri, Jul 06, 2018 at 11:12:21AM +0800, Shan Hai wrote:
This series implements xfs inode data inlining feature.

Refered below link during development:
https://marc.info/?l=linux-xfs&m=120493585731509&w=2


How it works:
- the data inlining happens at:
   write_iter: for DIO/DAX write
   writeback: for buffered write
- extents to local format conversion is done in writeback but not in write_iter
- local to extents format conversion is done in the write_iter and writeback
- log the whole inode (core/data) on extents to local conversion
- add a new mkfs.xfs option to enable data inline feature

How to test:
mkfs.xfs -f -i size=2048,inline=1 -m crc=1,finobt=1,rmapbt=1,reflink=1 /dev/sdX
mount /dev/sdX mnt_pnt

Test results:
mkfs.xfs -f -i size=2048,inline=1 -m crc=1,finobt=1,rmapbt=1,reflink=1 /dev/sdb
mkfs.xfs -f -i size=2048          -m crc=1,finobt=1,rmapbt=1,reflink=1 /dev/sdd
mount /dev/sdb /mnt/sdb
mount /dev/sdd /mnt/sdd

Copy the linux v4.18-rc3 source code to /mnt/sdb and /mnt/sdd respectively:
Filesystem                        Size  Used Avail Use% Mounted on
/dev/sdb                           10G  2.4G  7.7G  24% /mnt/sdb
/dev/sdd                           10G  3.1G  6.9G  31% /mnt/sdd

An observable savings here.

mkfs.xfs -f -i size=2048,inline=1 -m crc=1,finobt=1,rmapbt=1,reflink=1 /dev/sdc
mkfs.xfs -f -i size=2048          -m crc=1,finobt=1,rmapbt=1,reflink=1 /dev/sde
mount /dev/sdc /mnt/sdc
mount /dev/sde /mnt/sde

Build the v4.18-rc3 kernel on /dev/sdc and /dev/sde respectively:
make x86_64_defconfig

Filesystem                        Size  Used Avail Use% Mounted on
/dev/sdc                           10G  689M  9.4G   7% /mnt/sdc
/dev/sde                           10G  694M  9.4G   7% /mnt/sde
Not much of a savings... but I'll give this a preliminary review anyway.

Also, I am probably going to merge hch's bufferhead killing series for
4.19, which will rip right through a lot of this. :)

That would be fine, thanks in advance for the review anyway :)

Thanks
Shan Hai
--D

Kernel part:
0001-xfs-introduce-inline-data-superblock-feature-bit.patch
0002-xfs-introduce-extents-to-local-conversion-helper.patch
0003-xfs-convert-inode-from-extents-to-local-format.patch
0004-xfs-implement-inline-data-read-write-code.patch
0005-xfs-consider-the-local-format-inode-in-misc-operatio.patch
0006-xfs-fix-imbalanced-locking.patch
0007-xfs-return-non-zero-blocks-for-inline-data.patch
0008-xfs-skip-local-format-inode-for-reflinking.patch

  fs/xfs/libxfs/xfs_bmap.c      |  78 +++++++++++++++++++++++++++++++-----
  fs/xfs/libxfs/xfs_bmap.h      |   4 ++
  fs/xfs/libxfs/xfs_format.h    |  10 ++++-
  fs/xfs/libxfs/xfs_fs.h        |   1 +
  fs/xfs/libxfs/xfs_inode_buf.c |   6 ---
  fs/xfs/libxfs/xfs_sb.c        |   2 +
  fs/xfs/scrub/inode.c          |   2 +-
  fs/xfs/xfs_aops.c             |  60 ++++++++++++++++++++++++++++
  fs/xfs/xfs_bmap_util.c        |  11 +++++-
  fs/xfs/xfs_file.c             | 244 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
  fs/xfs/xfs_inode.c            |  20 +++++++---
  fs/xfs/xfs_inode_item.c       |   5 ++-
  fs/xfs/xfs_ioctl.c            |   5 ++-
  fs/xfs/xfs_iomap.c            |   5 ++-
  fs/xfs/xfs_iops.c             |   8 +++-
  fs/xfs/xfs_log_recover.c      |   3 +-
  fs/xfs/xfs_reflink.c          |   6 +++
  17 files changed, 437 insertions(+), 33 deletions(-)

xfsprogs part:
0001-xfsprogs-add-inode-inline-data-support.patch

  growfs/xfs_growfs.c | 14 +++++++++-----
  libxfs/xfs_format.h |  4 +++-
  libxfs/xfs_fs.h     |  1 +
  mkfs/xfs_mkfs.c     | 20 +++++++++++++++++---
  4 files changed, 30 insertions(+), 9 deletions(-)


Thanks
Shan Hai
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux