swap.c (b3bbcc5d1da1b654091dad15980b3d58fdae0fc6) | swap.c (ec1c86b25f4bdd9dce6436c0539d2a6ae676e1c4) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * linux/mm/swap.c 4 * 5 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds 6 */ 7 8/* --- 470 unchanged lines hidden (view full) --- 479void folio_add_lru(struct folio *folio) 480{ 481 struct folio_batch *fbatch; 482 483 VM_BUG_ON_FOLIO(folio_test_active(folio) && 484 folio_test_unevictable(folio), folio); 485 VM_BUG_ON_FOLIO(folio_test_lru(folio), folio); 486 | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * linux/mm/swap.c 4 * 5 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds 6 */ 7 8/* --- 470 unchanged lines hidden (view full) --- 479void folio_add_lru(struct folio *folio) 480{ 481 struct folio_batch *fbatch; 482 483 VM_BUG_ON_FOLIO(folio_test_active(folio) && 484 folio_test_unevictable(folio), folio); 485 VM_BUG_ON_FOLIO(folio_test_lru(folio), folio); 486 |
487 /* see the comment in lru_gen_add_folio() */ 488 if (lru_gen_enabled() && !folio_test_unevictable(folio) && 489 lru_gen_in_fault() && !(current->flags & PF_MEMALLOC)) 490 folio_set_active(folio); 491 |
|
487 folio_get(folio); 488 local_lock(&cpu_fbatches.lock); 489 fbatch = this_cpu_ptr(&cpu_fbatches.lru_add); 490 folio_batch_add_and_move(fbatch, folio, lru_add_fn); 491 local_unlock(&cpu_fbatches.lock); 492} 493EXPORT_SYMBOL(folio_add_lru); 494 --- 75 unchanged lines hidden (view full) --- 570 __count_vm_events(PGDEACTIVATE, nr_pages); 571 __count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE, 572 nr_pages); 573 } 574} 575 576static void lru_deactivate_fn(struct lruvec *lruvec, struct folio *folio) 577{ | 492 folio_get(folio); 493 local_lock(&cpu_fbatches.lock); 494 fbatch = this_cpu_ptr(&cpu_fbatches.lru_add); 495 folio_batch_add_and_move(fbatch, folio, lru_add_fn); 496 local_unlock(&cpu_fbatches.lock); 497} 498EXPORT_SYMBOL(folio_add_lru); 499 --- 75 unchanged lines hidden (view full) --- 575 __count_vm_events(PGDEACTIVATE, nr_pages); 576 __count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE, 577 nr_pages); 578 } 579} 580 581static void lru_deactivate_fn(struct lruvec *lruvec, struct folio *folio) 582{ |
578 if (folio_test_active(folio) && !folio_test_unevictable(folio)) { | 583 if (!folio_test_unevictable(folio) && (folio_test_active(folio) || lru_gen_enabled())) { |
579 long nr_pages = folio_nr_pages(folio); 580 581 lruvec_del_folio(lruvec, folio); 582 folio_clear_active(folio); 583 folio_clear_referenced(folio); 584 lruvec_add_folio(lruvec, folio); 585 586 __count_vm_events(PGDEACTIVATE, nr_pages); --- 96 unchanged lines hidden (view full) --- 683 * deactivate_page() moves @page to the inactive list if @page was on the active 684 * list and was not an unevictable page. This is done to accelerate the reclaim 685 * of @page. 686 */ 687void deactivate_page(struct page *page) 688{ 689 struct folio *folio = page_folio(page); 690 | 584 long nr_pages = folio_nr_pages(folio); 585 586 lruvec_del_folio(lruvec, folio); 587 folio_clear_active(folio); 588 folio_clear_referenced(folio); 589 lruvec_add_folio(lruvec, folio); 590 591 __count_vm_events(PGDEACTIVATE, nr_pages); --- 96 unchanged lines hidden (view full) --- 688 * deactivate_page() moves @page to the inactive list if @page was on the active 689 * list and was not an unevictable page. This is done to accelerate the reclaim 690 * of @page. 691 */ 692void deactivate_page(struct page *page) 693{ 694 struct folio *folio = page_folio(page); 695 |
691 if (folio_test_lru(folio) && folio_test_active(folio) && 692 !folio_test_unevictable(folio)) { | 696 if (folio_test_lru(folio) && !folio_test_unevictable(folio) && 697 (folio_test_active(folio) || lru_gen_enabled())) { |
693 struct folio_batch *fbatch; 694 695 folio_get(folio); 696 local_lock(&cpu_fbatches.lock); 697 fbatch = this_cpu_ptr(&cpu_fbatches.lru_deactivate); 698 folio_batch_add_and_move(fbatch, folio, lru_deactivate_fn); 699 local_unlock(&cpu_fbatches.lock); 700 } --- 384 unchanged lines hidden --- | 698 struct folio_batch *fbatch; 699 700 folio_get(folio); 701 local_lock(&cpu_fbatches.lock); 702 fbatch = this_cpu_ptr(&cpu_fbatches.lru_deactivate); 703 folio_batch_add_and_move(fbatch, folio, lru_deactivate_fn); 704 local_unlock(&cpu_fbatches.lock); 705 } --- 384 unchanged lines hidden --- |