mm: drop redundant lru_add_drain in anon folio reuse paths
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v3 Latest4 patches 15 repliesIn review 2 of 4 applied
- v24 patches 23 repliesSuperseded
- v1 RFC3 patches 21 repliesSuperseded
Patches in v3 2 of 4 applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | mm: avoid unnecessary lru drain for wp_can_reuse_anon_folio()mm/ | +7 | 9 replies | |
| 2/4 | mm: drop stale folio_ref_count()==1 check in do_swap_page reuse logicmm/ | +3 | 5 replies | |
| 3/4 | mm: entirely remove lru_add_drain in do_swap_pagemm/ | +0 | 0 replies | Applied |
| 4/4 | mm: clarify the folio_free_swap() for do_swap_page()mm/ | +8 | 1 reply | Applied |
Reviews trailers per patch
All 4 patches have a Reviewed-by or Acked-by.
| Patch | Kairui Song | Shakeel Butt | Baoquan He | Usama Arif | David Hildenbrand (Arm) |
|---|---|---|---|---|---|
| 1/4 | R-b R-b | A-b | R-b R-b | A-b | |
| 2/4 | R-b | A-b | R-b | A-b | A-b |
| 3/4 | A-b | R-b | A-b | ||
| 4/4 | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.
Cover letter [PATCH v3 0/4] mm: drop redundant lru_add_drain in anon folio reuse paths
We are doing a large number of redundant lru_add_drain() calls in both wp_can_reuse_anon_folio() and do_swap_page(), leading to LRU lock contention and unnecessary overhead.
In wp_can_reuse_anon_folio(), we can check the refcount against the lru_cache before deciding to drain. In do_swap_page(), the drain is now entirely redundant after Kairui's work to route SYNC I/O through the swapcache in the same way as ASYNC I/O.
Build the kernel within a 1 GB memcg using 20 threads with zRAM swap. The number of lru_add_drain() calls is reduced from 276,278 to 226,318, a reduction of about 18%.
Build the kernel within an 800 MB memcg using 20 threads with zRAM swap. The number of lru_add_drain() calls is reduced from 778,950 to 541,149, a reduction of 30.5%.
-v3:
* code improvements for patch1/4 and patch2/4 as suggested by David;
* improve changelog as suggested by Shakeel and David;
* collect the reviewed-by and acked-by tags;
* for patch4, remove all dependency for refcount regarding swapcache free in do_swap_page, as suggested by David
-v2:
https://lore.kernel.org/linux-mm/[email protected]/
* collect the reviewed-by and acked-by tags from Usama, Baoquan, Shakeel, Kairui, thanks!
* add patch4 to free swapcache for non-LRU folios, as suggested by Kairui, thanks!
-RFC:
https://lore.kernel.org/linux-mm/[email protected]/
Barry Song (Xiaomi) (4):
mm: avoid unnecessary lru drain for wp_can_reuse_anon_folio()
mm: drop stale folio_ref_count()==1 check in do_swap_page reuse logic
mm: entirely remove lru_add_drain in do_swap_page
mm: clarify the folio_free_swap() for do_swap_page()
mm/memory.c | 49 ++++++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 31 deletions(-)
Signature · 1 line
2.39.3 (Apple Git-146)