Re: [PATCH v2 00/16] Parallelizing filesystem writeback

Andrew Morton
2025-10-15T01:03:14Z

On Tue, 14 Oct 2025 17:38:29 +0530 Kundan Kumar <kundan.kumar@samsung.com> wrote:

> Currently, pagecache writeback is performed by a single thread. Inodes
> are added to a dirty list, and delayed writeback is triggered. The single
> writeback thread then iterates through the dirty inode list, and executes
> the writeback.
>
> This series parallelizes the writeback by allowing multiple writeback
> contexts per backing device (bdi). These writeback contexts are executed
> as separate, independent threads, improving overall parallelism. Inodes
> are distributed to these threads and are flushed in parallel.
>
> ...
>
> IOPS and throughput
> ===================
> With the affinity to allocation group we see significant improvement in
> XFS when we write to multiple files in different directories(AGs).
>
> Performance gains:
> A) Workload 12 files each of 1G in 12 directories(AGs) - numjobs = 12
> - NVMe device BM1743 SSD
> Base XFS : 243 MiB/s
> Parallel Writeback XFS : 759 MiB/s (+212%)
>
> - NVMe device PM9A3 SSD
> Base XFS : 368 MiB/s
> Parallel Writeback XFS : 1634 MiB/s (+344%)
>
> B) Workload 6 files each of 20G in 6 directories(AGs) - numjobs = 6
> - NVMe device BM1743 SSD
> Base XFS : 305 MiB/s
> Parallel Writeback XFS : 706 MiB/s (+131%)
>
> - NVMe device PM9A3 SSD
> Base XFS : 315 MiB/s
> Parallel Writeback XFS : 990 MiB/s (+214%)
>
> Filesystem fragmentation
> ========================
> We also see that there is no increase in filesystem fragmentation
> Number of extents per file:
> A) Workload 6 files each 1G in single directory(AG) - numjobs = 1
> Base XFS : 17
> Parallel Writeback XFS : 17
>
> B) Workload 12 files each of 1G to 12 directories(AGs)- numjobs = 12
> Base XFS : 166593
> Parallel Writeback XFS : 161554
>
> C) Workload 6 files each of 20G to 6 directories(AGs) - numjobs = 6
> Base XFS : 3173716
> Parallel Writeback XFS : 3364984

Nice results. Is testing planned for other filesystems?