[PATCH v2 0/4] migrate: Avoid unbounded blocks in MIGRATE_SYNC_LIGHT

Douglas Anderson
2023-04-21T22:13:23Z

This series is the result of discussion around my RFC patch [1] where
I talked about completely removing the waits for the folio_lock in
migrate_folio_unmap().

This new series should, I think, be more palatable to folks. Please
let me know what you think!

Most of the description of why I think we want this patch series can
be seen in patch #3 ("migrate_pages: Don't wait forever locking pages
in MIGRATE_SYNC_LIGHT"). I won't repeat all that information here and
would humbly request that anyone wishing to comment on the overall
patch series respond there. ;-)

[1] https://lore.kernel.org/r/20230413182313.RFC.1.Ia86ccac02a303154a0b8bc60567e7a95d34c96d3@changeid

Changes in v2:
- "Add folio_lock_timeout()" new for v2.
- "Add lock_buffer_timeout()" new for v2.
- Keep unbounded delay in "SYNC", delay with a timeout in "SYNC_LIGHT"
- "Don't wait forever locking buffers in MIGRATE_SYNC_LIGHT" new for v2.

Douglas Anderson (4):
mm/filemap: Add folio_lock_timeout()
buffer: Add lock_buffer_timeout()
migrate_pages: Don't wait forever locking pages in MIGRATE_SYNC_LIGHT
migrate_pages: Don't wait forever locking buffers in
MIGRATE_SYNC_LIGHT

fs/buffer.c | 7 ++++++
include/linux/buffer_head.h | 10 ++++++++
include/linux/pagemap.h | 16 +++++++++++++
include/linux/wait_bit.h | 24 +++++++++++++++++++
kernel/sched/wait_bit.c | 14 +++++++++++
mm/filemap.c | 47 +++++++++++++++++++++++++++----------
mm/migrate.c | 45 +++++++++++++++++++++--------------
7 files changed, 132 insertions(+), 31 deletions(-)

--
2.40.0.634.g4ca3ef3211-goog