Message ID | cover.1740990125.git.wqu@suse.com (mailing list archive) |
---|---|
Headers | show |
Series | btrfs: make subpage handling be feature full | expand |
On Mon, Mar 03, 2025 at 07:05:08PM +1030, Qu Wenruo wrote: > [CHANGLOG] > v3: > - Drop the btrfs uncached write support > It turns out that we can not move the folio_end_writeback() call out > of the spinlock for now. > > Two or more async extents can race on the same folio to call > folio_end_writeback() if not protected by a spinlock, can be > reproduced by generic/127 run loops with experimental 2k block size > patchset. > > Thus disabling uncached write is the smallest fix for now, and drop > the previous calling-folio_end_writeback()-out-of-spinlock fix. > > Not sure if a full revert is better or not, there is still some valid > FGP flag related cleanup in that commit. Let's keep it, the more compelling reason is that we want uncached writes so we'll have the groundwork for that and ready for testing. Do you intend to push v3 to for-next for 6.15? I know you removed the v2, we can postpone it if there are more potential problems.
在 2025/3/3 19:31, David Sterba 写道: > On Mon, Mar 03, 2025 at 07:05:08PM +1030, Qu Wenruo wrote: >> [CHANGLOG] >> v3: >> - Drop the btrfs uncached write support >> It turns out that we can not move the folio_end_writeback() call out >> of the spinlock for now. >> >> Two or more async extents can race on the same folio to call >> folio_end_writeback() if not protected by a spinlock, can be >> reproduced by generic/127 run loops with experimental 2k block size >> patchset. >> >> Thus disabling uncached write is the smallest fix for now, and drop >> the previous calling-folio_end_writeback()-out-of-spinlock fix. >> >> Not sure if a full revert is better or not, there is still some valid >> FGP flag related cleanup in that commit. > > Let's keep it, the more compelling reason is that we want uncached > writes so we'll have the groundwork for that and ready for testing. > > Do you intend to push v3 to for-next for 6.15? I know you removed the > v2, we can postpone it if there are more potential problems. > So far my local tests on both aarch64 (the usual test VM, 64K page size and 4K block size) and x86_64 (with experimental 2K block size) shows no problem so far. And this time I have looped generic/127 for extra safety, so I guess it should be fine this time. Last but not the least, the analyze can explain all the writeback related bugs I hit so far. I'll take one or two days to shake out extra problems before pushing the whole series (with 2K block size support) to for-next. Thanks, Qu