On Thu, Apr 17, 2025 at 06:59:14PM -0700, Davidlohr Bueso wrote: > Hello, > > Changes from v1: rebased on top of vfs.fixes (Christian). > > This is a respin of the series[0] to address the sleep in atomic scenarios for > noref migration with large folios, introduced in: > > 3c20917120ce61 ("block/bdev: enable large folio support for large logical block sizes") > > The main difference is that it removes the first patch and moves the fix (reducing > the i_private_lock critical region in the migration path) to the final patch, which > also introduces the new BH_Migrate flag. It also simplifies the locking scheme in > patch 1 to avoid folio trylocking in the atomic lookup cases. So essentially blocking > users will take the folio lock and hence wait for migration, and otherwise nonblocking > callers will bail the lookup if a noref migration is on-going. Blocking callers > will also benefit from potential performance gains by reducing contention on the > spinlock for bdev mappings. > > Applies against latest vfs.fixes. Please consider for Linus' tree. > > Patch 1: carves a path for callers that can block to take the folio lock. > Patch 2: adds sleeping flavors to pagecache lookups, no users. > Patches 3-6: converts to the new call, where possible. > Patch 7: does the actual sleep in atomic fix. > > Thanks! Reviewed-by: Luis Chamberlain <mcgrof@xxxxxxxxxx> Tested-by: kdevops@xxxxxxxxxxxxxxx # [0] [1] Link: https://kdevops.org/ext4/v6.15-rc2.html # [0] Link: https://lore.kernel.org/all/aAAEvcrmREWa1SKF@xxxxxxxxxxxxxxxxxxxxxx/ # [1] Luis