Series of lru_add_drain_all()-related patches, arising from recent
mm/gup migration report from Will Deacon. Based on 6.17-rc3 but apply
to replace v1 in mm.git. I suggest all but 6/6 be hotfixes going to
6.17 and stable.
v1 was at
https://lore.kernel.org/linux-mm/a28b44f7-cdb4-8b81-4982-758ae774fbf7@google.com/
amd its
1/7 mm: fix folio_expected_ref_count() when PG_private_2
has been dropped from v2, per Matthew Wilcox.
1/6 mm/gup: check ref_count instead of lru before migration
v1->v2: paragraph on PG_private_2 added to commit message
2/6 mm/gup: local lru_add_drain() to avoid lru_add_drain_all()
v1->v2: lru_add_drain() only when needed, per David
3/6 mm: Revert "mm/gup: clear the LRU flag of a page before
v1->v2: Acked-by David added
4/6 mm: Revert "mm: vmscan.c: fix OOM on swap stress test"
v1->v2: Acked-by David added
5/6 mm: folio_may_be_lru_cached() unless folio_test_large()
v1->v2: folio_may_be_lru_cached(): lru_ per David
6/6 mm: lru_add_drain_all() do local lru_add_drain() first
v1->v2: Acked-by David added
include/linux/swap.h | 10 ++++++++
mm/gup.c | 14 ++++++++---
mm/mlock.c | 6 ++--
mm/swap.c | 53 +++++++++++++++++++++++--------------------
mm/vmscan.c | 2 -
5 files changed, 54 insertions(+), 31 deletions(-)
Thanks,
Hugh