| From: |
| linan666-AT-huaweicloud.com |
| To: |
| song-AT-kernel.org, yukuai-AT-fnnas.com |
| Subject: |
| [PATCH v2 00/14] folio support for sync I/O in RAID |
| Date: |
| Wed, 28 Jan 2026 15:56:54 +0800 |
| Message-ID: |
| <20260128075708.2259525-1-linan666@huaweicloud.com> |
| Cc: |
| xni-AT-redhat.com, linux-raid-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linan666-AT-huaweicloud.com, yangerkun-AT-huawei.com, yi.zhang-AT-huawei.com |
| Archive-link: |
| Article |
From: Li Nan <linan122@huawei.com>
This patchset adds folio support to sync operations in raid1/10.
Previously, we used 16 * 4K pages for 64K sync I/O. With this change,
we'll use a single 64K folio instead. Using folios reduces
resync/recovery time by 20% on HDD.
This is the first step towards full folio support in RAID. Going forward,
I will replace the remaining page-based usage with folio.
The patchset was tested with mdadm. Additional fault injection stress tests
were run under file systems.
v2:
- Remove patch "md: use folio for bb_folio". It will be included in
a later patch set
- In patch 5:
1) fix typo
2) rewrite the logic of copying data in process_checks()
3) rename resync_get_all_folio() to resync_get_folio()
4) s/resync_pages *rps/resync_folio *rfs/g in
raid1_alloc_init_r1buf() and raid10_alloc_init_r10buf()
- Subsequent patches: Adapting conflicts caused by patch 5
Li Nan (14):
md/raid1,raid10: clean up of RESYNC_SECTORS
md: introduce sync_folio_io for folio support in RAID
md/raid1: use folio for tmppage
md/raid10: use folio for tmppage
md/raid1,raid10: use folio for sync path IO
md: Clean up folio sync support related code
md/raid1: clean up useless sync_blocks handling in raid1_sync_request
md/raid1: fix IO error at logical block size granularity
md/raid10: fix IO error at logical block size granularity
md/raid1,raid10: clean up resync_fetch_folio
md: clean up resync_free_folio
md/raid1: clean up sync IO size calculation in raid1_sync_request
md/raid10: clean up sync IO size calculation in raid10_sync_request
md/raid1,raid10: fall back to smaller order if sync folio alloc fails
drivers/md/md.h | 2 +
drivers/md/raid1.h | 2 +-
drivers/md/raid10.h | 2 +-
drivers/md/md.c | 29 +++-
drivers/md/raid1-10.c | 81 ++++-------
drivers/md/raid1.c | 233 ++++++++++++++-----------------
drivers/md/raid10.c | 315 ++++++++++++++++++++----------------------
7 files changed, 308 insertions(+), 356 deletions(-)
--
2.39.2