On 2021/3/2 上午12:30, David Sterba wrote:
On Mon, Feb 22, 2021 at 02:33:45PM +0800, Qu Wenruo wrote:
This patchset can be fetched from the following github repo, along with
the full subpage RW support:
https://github.com/adam900710/linux/tree/subpage

This patchset is for metadata read write support.

[TEST]
Since the data write path is not included in this patchset, we can't
really test it, but during the lunar new year vocation, I have tested
the full RW patchset with "fstresss -n 10000 -p2" on my Aarch64 board.

And the full RW patchset survives without any crash for a full week.

There is only one remaining bug exposed during the test, that we have
random data checksum mismatch, which is still under investigation.

But the metadata part should be OK for submission.

[DIFFERENCE AGAINST REGULAR SECTORSIZE]
The metadata part in fact has more new code than data part, as it has
some different behaviors compared to the regular sector size handling:

- No more page locking
   Now metadata read/write relies on extent io tree locking, other than
   page locking.
   This is to allow behaviors like read lock one eb while also try to
   read lock another eb in the same page.
   We can't rely on page lock as now we have multiple extent buffers in
   the same page.

- Page status update
   Now we use subpage wrappers to handle page status update.

- How to submit dirty extent buffers
   Instead of just grabbing extent buffer from page::private, we need to
   iterate all dirty extent buffers in the page and submit them.

Qu Wenruo (12):
   btrfs: subpage: introduce helper for subpage dirty status
   btrfs: subpage: introduce helper for subpage writeback status
   btrfs: disk-io: allow btree_set_page_dirty() to do more sanity check
     on subpage metadata
   btrfs: disk-io: support subpage metadata csum calculation at write
     time
   btrfs: extent_io: make alloc_extent_buffer() check subpage dirty
     bitmap
   btrfs: extent_io: make the page uptodate assert check to handle
     subpage
   btrfs: extent_io: make set/clear_extent_buffer_dirty() to support
     subpage sized metadata
   btrfs: extent_io: make set_btree_ioerr() accept extent buffer and
     handle subpage metadata
   btrfs: extent_io: introduce end_bio_subpage_eb_writepage() function
   btrfs: extent_io: introduce write_one_subpage_eb() function
   btrfs: extent_io: make lock_extent_buffer_for_io() to support subpage
     metadata
   btrfs: extent_io: introduce submit_eb_subpage() to submit a subpage
     metadata page

Please don't use "extent_io" nor "disk-io" in subjects.

Oh, those patches are too old before the naming schema change.

I should recheck all the checklist on them.

Thanks,
Qu

Reply via email to