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.