Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: riteshharjani/linux

Tags

iomap-per-block-dirty-tracking

Toggle iomap-per-block-dirty-tracking's commit message
iomap: Add per-block dirty state tracking to iomap

iomap today only tracks per-block update state bitmap, this series extends
the support by adding per-block dirty state bitmap tracking to iomap buffered
I/O path. This helps in reducing the write amplification and improve
write performance for large folio writes and for platforms with higher
pagesize compared to blocksize.

We have seen ~83% performance improvement with these patches using
database benchmarking tests, with XFS on 64k pagesize.
fio benchmark (as shown in the last patch which adds dirty tracking
support) showed close to 16x performance improvement when tested with
64K pagesize on 4k blocksize XFS using nvme on Power.

test-tag

Toggle test-tag's commit message
Add per-block dirty tracking to iomap buffered write

As discussed earlier this is required to improve write performance and reduce
write amplification for cases where either blocksize is less than pagesize (such
as Power platform with 64k pagesize) or when we have a large folio (such as xfs
which currently supports large folio).

<Perf data copy paste from previous version>
=============================================
Performance testing of below fio workload reveals ~16x performance
improvement using nvme with XFS (4k blocksize) on Power (64K pagesize)
FIO reported write bw scores improved from around ~28 MBps to ~452 MBps.

1. <test_randwrite.fio>
[global]
	ioengine=psync
	rw=randwrite
	overwrite=1
	pre_read=1
	direct=0
	bs=4k
	size=1G
	dir=./
	numjobs=8
	fdatasync=1
	runtime=60
	iodepth=64
	group_reporting=1

[fio-run]

2. Also our internal performance team reported that this patch improves
   their database workload performance by around ~83% (with XFS on Power)

v3.3-rc2

Toggle v3.3-rc2's commit message
Linux 3.3-rc2

.. several days delayed. No reason, I just didn't think of it.

v3.3-rc1

Toggle v3.3-rc1's commit message
Linux 3.3-rc1

v3.2

Toggle v3.2's commit message
Linux 3.2

v3.2-rc7

Toggle v3.2-rc7's commit message
Linux 3.2-rc7

v3.2-rc6

Toggle v3.2-rc6's commit message
Linux 3.2-rc6

v3.2-rc5

Toggle v3.2-rc5's commit message
Linux 3.2-rc5

v3.2-rc4

Toggle v3.2-rc4's commit message
Linux 3.2-rc4

v3.2-rc3

Toggle v3.2-rc3's commit message
Linux 3.2-rc3

.. pre thanksgiving-induced food coma