From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f70.google.com (mail-pg0-f70.google.com [74.125.83.70]) by kanga.kvack.org (Postfix) with ESMTP id 55C376B0003 for ; Tue, 6 Mar 2018 18:53:09 -0500 (EST) Received: by mail-pg0-f70.google.com with SMTP id o19so178126pgn.12 for ; Tue, 06 Mar 2018 15:53:09 -0800 (PST) Received: from mga12.intel.com (mga12.intel.com. [192.55.52.136]) by mx.google.com with ESMTPS id y5si10528357pgv.738.2018.03.06.15.53.05 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Mar 2018 15:53:06 -0800 (PST) Date: Wed, 7 Mar 2018 07:52:57 +0800 From: kbuild test robot Subject: [linux-next:master 3210/5518] mm/vmscan.c:1293:1: warning: the frame size of 10120 bytes is larger than 8192 bytes Message-ID: <201803070752.xTPT7kK0%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="gBBFr7Ir9EOA20Yy" Content-Disposition: inline Sender: owner-linux-mm@kvack.org List-ID: To: Pavel Tatashin Cc: kbuild-all@01.org, Ingo Molnar , Andrew Morton , Linux Memory Management List --gBBFr7Ir9EOA20Yy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 9c142d8a6556f069be6278ccab701039da81ad6f commit: d126e9de48465402414c4be2d8cb765ad5d4d9d2 [3210/5518] mm: uninitialized struct page poisoning sanity checking config: x86_64-randconfig-v0-03041033 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: git checkout d126e9de48465402414c4be2d8cb765ad5d4d9d2 # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): mm/vmscan.c: In function 'shrink_page_list': >> mm/vmscan.c:1293:1: warning: the frame size of 10120 bytes is larger than 8192 bytes [-Wframe-larger-than=] } ^ vim +1293 mm/vmscan.c 3c710c1ad1 Michal Hocko 2017-02-22 878 e286781d5f Nick Piggin 2008-07-25 879 /* 1742f19fa9 Andrew Morton 2006-03-22 880 * shrink_page_list() returns the number of reclaimed pages ^1da177e4c Linus Torvalds 2005-04-16 881 */ 1742f19fa9 Andrew Morton 2006-03-22 882 static unsigned long shrink_page_list(struct list_head *page_list, 599d0c954f Mel Gorman 2016-07-28 883 struct pglist_data *pgdat, f84f6e2b08 Mel Gorman 2011-10-31 884 struct scan_control *sc, 02c6de8d75 Minchan Kim 2012-10-08 885 enum ttu_flags ttu_flags, 3c710c1ad1 Michal Hocko 2017-02-22 886 struct reclaim_stat *stat, 02c6de8d75 Minchan Kim 2012-10-08 887 bool force_reclaim) ^1da177e4c Linus Torvalds 2005-04-16 888 { ^1da177e4c Linus Torvalds 2005-04-16 889 LIST_HEAD(ret_pages); abe4c3b50c Mel Gorman 2010-08-09 890 LIST_HEAD(free_pages); ^1da177e4c Linus Torvalds 2005-04-16 891 int pgactivate = 0; 3c710c1ad1 Michal Hocko 2017-02-22 892 unsigned nr_unqueued_dirty = 0; 3c710c1ad1 Michal Hocko 2017-02-22 893 unsigned nr_dirty = 0; 3c710c1ad1 Michal Hocko 2017-02-22 894 unsigned nr_congested = 0; 3c710c1ad1 Michal Hocko 2017-02-22 895 unsigned nr_reclaimed = 0; 3c710c1ad1 Michal Hocko 2017-02-22 896 unsigned nr_writeback = 0; 3c710c1ad1 Michal Hocko 2017-02-22 897 unsigned nr_immediate = 0; 5bccd16657 Michal Hocko 2017-02-22 898 unsigned nr_ref_keep = 0; 5bccd16657 Michal Hocko 2017-02-22 899 unsigned nr_unmap_fail = 0; ^1da177e4c Linus Torvalds 2005-04-16 900 ^1da177e4c Linus Torvalds 2005-04-16 901 cond_resched(); ^1da177e4c Linus Torvalds 2005-04-16 902 ^1da177e4c Linus Torvalds 2005-04-16 903 while (!list_empty(page_list)) { ^1da177e4c Linus Torvalds 2005-04-16 904 struct address_space *mapping; ^1da177e4c Linus Torvalds 2005-04-16 905 struct page *page; ^1da177e4c Linus Torvalds 2005-04-16 906 int may_enter_fs; 02c6de8d75 Minchan Kim 2012-10-08 907 enum page_references references = PAGEREF_RECLAIM_CLEAN; e2be15f6c3 Mel Gorman 2013-07-03 908 bool dirty, writeback; ^1da177e4c Linus Torvalds 2005-04-16 909 ^1da177e4c Linus Torvalds 2005-04-16 910 cond_resched(); ^1da177e4c Linus Torvalds 2005-04-16 911 ^1da177e4c Linus Torvalds 2005-04-16 912 page = lru_to_page(page_list); ^1da177e4c Linus Torvalds 2005-04-16 913 list_del(&page->lru); ^1da177e4c Linus Torvalds 2005-04-16 914 529ae9aaa0 Nick Piggin 2008-08-02 915 if (!trylock_page(page)) ^1da177e4c Linus Torvalds 2005-04-16 916 goto keep; ^1da177e4c Linus Torvalds 2005-04-16 917 309381feae Sasha Levin 2014-01-23 918 VM_BUG_ON_PAGE(PageActive(page), page); ^1da177e4c Linus Torvalds 2005-04-16 919 ^1da177e4c Linus Torvalds 2005-04-16 920 sc->nr_scanned++; 80e4342601 Christoph Lameter 2006-02-11 921 39b5f29ac1 Hugh Dickins 2012-10-08 922 if (unlikely(!page_evictable(page))) ad6b67041a Minchan Kim 2017-05-03 923 goto activate_locked; 894bc31041 Lee Schermerhorn 2008-10-18 924 a6dc60f897 Johannes Weiner 2009-03-31 925 if (!sc->may_unmap && page_mapped(page)) 80e4342601 Christoph Lameter 2006-02-11 926 goto keep_locked; 80e4342601 Christoph Lameter 2006-02-11 927 ^1da177e4c Linus Torvalds 2005-04-16 928 /* Double the slab pressure for mapped and swapcache pages */ 802a3a92ad Shaohua Li 2017-05-03 929 if ((page_mapped(page) || PageSwapCache(page)) && 802a3a92ad Shaohua Li 2017-05-03 930 !(PageAnon(page) && !PageSwapBacked(page))) ^1da177e4c Linus Torvalds 2005-04-16 931 sc->nr_scanned++; ^1da177e4c Linus Torvalds 2005-04-16 932 c661b078fd Andy Whitcroft 2007-08-22 933 may_enter_fs = (sc->gfp_mask & __GFP_FS) || c661b078fd Andy Whitcroft 2007-08-22 934 (PageSwapCache(page) && (sc->gfp_mask & __GFP_IO)); c661b078fd Andy Whitcroft 2007-08-22 935 e62e384e9d Michal Hocko 2012-07-31 936 /* e2be15f6c3 Mel Gorman 2013-07-03 937 * The number of dirty pages determines if a zone is marked e2be15f6c3 Mel Gorman 2013-07-03 938 * reclaim_congested which affects wait_iff_congested. kswapd e2be15f6c3 Mel Gorman 2013-07-03 939 * will stall and start writing pages if the tail of the LRU e2be15f6c3 Mel Gorman 2013-07-03 940 * is all dirty unqueued pages. e2be15f6c3 Mel Gorman 2013-07-03 941 */ e2be15f6c3 Mel Gorman 2013-07-03 942 page_check_dirty_writeback(page, &dirty, &writeback); e2be15f6c3 Mel Gorman 2013-07-03 943 if (dirty || writeback) e2be15f6c3 Mel Gorman 2013-07-03 944 nr_dirty++; e2be15f6c3 Mel Gorman 2013-07-03 945 e2be15f6c3 Mel Gorman 2013-07-03 946 if (dirty && !writeback) e2be15f6c3 Mel Gorman 2013-07-03 947 nr_unqueued_dirty++; e2be15f6c3 Mel Gorman 2013-07-03 948 d04e8acd03 Mel Gorman 2013-07-03 949 /* d04e8acd03 Mel Gorman 2013-07-03 950 * Treat this page as congested if the underlying BDI is or if d04e8acd03 Mel Gorman 2013-07-03 951 * pages are cycling through the LRU so quickly that the d04e8acd03 Mel Gorman 2013-07-03 952 * pages marked for immediate reclaim are making it to the d04e8acd03 Mel Gorman 2013-07-03 953 * end of the LRU a second time. d04e8acd03 Mel Gorman 2013-07-03 954 */ e2be15f6c3 Mel Gorman 2013-07-03 955 mapping = page_mapping(page); 1da58ee2a0 Jamie Liu 2014-12-10 956 if (((dirty || writeback) && mapping && 703c270887 Tejun Heo 2015-05-22 957 inode_write_congested(mapping->host)) || d04e8acd03 Mel Gorman 2013-07-03 958 (writeback && PageReclaim(page))) e2be15f6c3 Mel Gorman 2013-07-03 959 nr_congested++; e2be15f6c3 Mel Gorman 2013-07-03 960 e2be15f6c3 Mel Gorman 2013-07-03 961 /* 283aba9f9e Mel Gorman 2013-07-03 962 * If a page at the tail of the LRU is under writeback, there 283aba9f9e Mel Gorman 2013-07-03 963 * are three cases to consider. 283aba9f9e Mel Gorman 2013-07-03 964 * 283aba9f9e Mel Gorman 2013-07-03 965 * 1) If reclaim is encountering an excessive number of pages 283aba9f9e Mel Gorman 2013-07-03 966 * under writeback and this page is both under writeback and 283aba9f9e Mel Gorman 2013-07-03 967 * PageReclaim then it indicates that pages are being queued 283aba9f9e Mel Gorman 2013-07-03 968 * for IO but are being recycled through the LRU before the 283aba9f9e Mel Gorman 2013-07-03 969 * IO can complete. Waiting on the page itself risks an 283aba9f9e Mel Gorman 2013-07-03 970 * indefinite stall if it is impossible to writeback the 283aba9f9e Mel Gorman 2013-07-03 971 * page due to IO error or disconnected storage so instead b1a6f21e3b Mel Gorman 2013-07-03 972 * note that the LRU is being scanned too quickly and the b1a6f21e3b Mel Gorman 2013-07-03 973 * caller can stall after page list has been processed. 283aba9f9e Mel Gorman 2013-07-03 974 * 97c9341f72 Tejun Heo 2015-05-22 975 * 2) Global or new memcg reclaim encounters a page that is ecf5fc6e96 Michal Hocko 2015-08-04 976 * not marked for immediate reclaim, or the caller does not ecf5fc6e96 Michal Hocko 2015-08-04 977 * have __GFP_FS (or __GFP_IO if it's simply going to swap, ecf5fc6e96 Michal Hocko 2015-08-04 978 * not to fs). In this case mark the page for immediate 97c9341f72 Tejun Heo 2015-05-22 979 * reclaim and continue scanning. 283aba9f9e Mel Gorman 2013-07-03 980 * ecf5fc6e96 Michal Hocko 2015-08-04 981 * Require may_enter_fs because we would wait on fs, which ecf5fc6e96 Michal Hocko 2015-08-04 982 * may not have submitted IO yet. And the loop driver might 283aba9f9e Mel Gorman 2013-07-03 983 * enter reclaim, and deadlock if it waits on a page for 283aba9f9e Mel Gorman 2013-07-03 984 * which it is needed to do the write (loop masks off 283aba9f9e Mel Gorman 2013-07-03 985 * __GFP_IO|__GFP_FS for this reason); but more thought 283aba9f9e Mel Gorman 2013-07-03 986 * would probably show more reasons. 283aba9f9e Mel Gorman 2013-07-03 987 * 7fadc82022 Hugh Dickins 2015-09-08 988 * 3) Legacy memcg encounters a page that is already marked 283aba9f9e Mel Gorman 2013-07-03 989 * PageReclaim. memcg does not have any dirty pages 283aba9f9e Mel Gorman 2013-07-03 990 * throttling so we could easily OOM just because too many 283aba9f9e Mel Gorman 2013-07-03 991 * pages are in writeback and there is nothing else to 283aba9f9e Mel Gorman 2013-07-03 992 * reclaim. Wait for the writeback to complete. c55e8d035b Johannes Weiner 2017-02-24 993 * c55e8d035b Johannes Weiner 2017-02-24 994 * In cases 1) and 2) we activate the pages to get them out of c55e8d035b Johannes Weiner 2017-02-24 995 * the way while we continue scanning for clean pages on the c55e8d035b Johannes Weiner 2017-02-24 996 * inactive list and refilling from the active list. The c55e8d035b Johannes Weiner 2017-02-24 997 * observation here is that waiting for disk writes is more c55e8d035b Johannes Weiner 2017-02-24 998 * expensive than potentially causing reloads down the line. c55e8d035b Johannes Weiner 2017-02-24 999 * Since they're marked for immediate reclaim, they won't put c55e8d035b Johannes Weiner 2017-02-24 1000 * memory pressure on the cache working set any longer than it c55e8d035b Johannes Weiner 2017-02-24 1001 * takes to write them to disk. e62e384e9d Michal Hocko 2012-07-31 1002 */ 283aba9f9e Mel Gorman 2013-07-03 1003 if (PageWriteback(page)) { 283aba9f9e Mel Gorman 2013-07-03 1004 /* Case 1 above */ 283aba9f9e Mel Gorman 2013-07-03 1005 if (current_is_kswapd() && 283aba9f9e Mel Gorman 2013-07-03 1006 PageReclaim(page) && 599d0c954f Mel Gorman 2016-07-28 1007 test_bit(PGDAT_WRITEBACK, &pgdat->flags)) { b1a6f21e3b Mel Gorman 2013-07-03 1008 nr_immediate++; c55e8d035b Johannes Weiner 2017-02-24 1009 goto activate_locked; 283aba9f9e Mel Gorman 2013-07-03 1010 283aba9f9e Mel Gorman 2013-07-03 1011 /* Case 2 above */ 97c9341f72 Tejun Heo 2015-05-22 1012 } else if (sane_reclaim(sc) || ecf5fc6e96 Michal Hocko 2015-08-04 1013 !PageReclaim(page) || !may_enter_fs) { c3b94f44fc Hugh Dickins 2012-07-31 1014 /* c3b94f44fc Hugh Dickins 2012-07-31 1015 * This is slightly racy - end_page_writeback() c3b94f44fc Hugh Dickins 2012-07-31 1016 * might have just cleared PageReclaim, then c3b94f44fc Hugh Dickins 2012-07-31 1017 * setting PageReclaim here end up interpreted c3b94f44fc Hugh Dickins 2012-07-31 1018 * as PageReadahead - but that does not matter c3b94f44fc Hugh Dickins 2012-07-31 1019 * enough to care. What we do want is for this c3b94f44fc Hugh Dickins 2012-07-31 1020 * page to have PageReclaim set next time memcg c3b94f44fc Hugh Dickins 2012-07-31 1021 * reclaim reaches the tests above, so it will c3b94f44fc Hugh Dickins 2012-07-31 1022 * then wait_on_page_writeback() to avoid OOM; c3b94f44fc Hugh Dickins 2012-07-31 1023 * and it's also appropriate in global reclaim. c3b94f44fc Hugh Dickins 2012-07-31 1024 */ c3b94f44fc Hugh Dickins 2012-07-31 1025 SetPageReclaim(page); 92df3a723f Mel Gorman 2011-10-31 1026 nr_writeback++; c55e8d035b Johannes Weiner 2017-02-24 1027 goto activate_locked; 283aba9f9e Mel Gorman 2013-07-03 1028 283aba9f9e Mel Gorman 2013-07-03 1029 /* Case 3 above */ 283aba9f9e Mel Gorman 2013-07-03 1030 } else { 7fadc82022 Hugh Dickins 2015-09-08 1031 unlock_page(page); c3b94f44fc Hugh Dickins 2012-07-31 1032 wait_on_page_writeback(page); 7fadc82022 Hugh Dickins 2015-09-08 1033 /* then go back and try same page again */ 7fadc82022 Hugh Dickins 2015-09-08 1034 list_add_tail(&page->lru, page_list); 7fadc82022 Hugh Dickins 2015-09-08 1035 continue; e62e384e9d Michal Hocko 2012-07-31 1036 } 283aba9f9e Mel Gorman 2013-07-03 1037 } ^1da177e4c Linus Torvalds 2005-04-16 1038 02c6de8d75 Minchan Kim 2012-10-08 1039 if (!force_reclaim) 6a18adb35c Konstantin Khlebnikov 2012-05-29 1040 references = page_check_references(page, sc); 02c6de8d75 Minchan Kim 2012-10-08 1041 dfc8d636cd Johannes Weiner 2010-03-05 1042 switch (references) { dfc8d636cd Johannes Weiner 2010-03-05 1043 case PAGEREF_ACTIVATE: ^1da177e4c Linus Torvalds 2005-04-16 1044 goto activate_locked; 6457474624 Johannes Weiner 2010-03-05 1045 case PAGEREF_KEEP: 5bccd16657 Michal Hocko 2017-02-22 1046 nr_ref_keep++; 6457474624 Johannes Weiner 2010-03-05 1047 goto keep_locked; dfc8d636cd Johannes Weiner 2010-03-05 1048 case PAGEREF_RECLAIM: dfc8d636cd Johannes Weiner 2010-03-05 1049 case PAGEREF_RECLAIM_CLEAN: dfc8d636cd Johannes Weiner 2010-03-05 1050 ; /* try to reclaim the page below */ dfc8d636cd Johannes Weiner 2010-03-05 1051 } ^1da177e4c Linus Torvalds 2005-04-16 1052 ^1da177e4c Linus Torvalds 2005-04-16 1053 /* ^1da177e4c Linus Torvalds 2005-04-16 1054 * Anonymous process memory has backing store? ^1da177e4c Linus Torvalds 2005-04-16 1055 * Try to allocate it some swap space here. 802a3a92ad Shaohua Li 2017-05-03 1056 * Lazyfree page could be freed directly ^1da177e4c Linus Torvalds 2005-04-16 1057 */ bd4c82c22c Huang Ying 2017-09-06 1058 if (PageAnon(page) && PageSwapBacked(page)) { bd4c82c22c Huang Ying 2017-09-06 1059 if (!PageSwapCache(page)) { 63eb6b93ce Hugh Dickins 2008-11-19 1060 if (!(sc->gfp_mask & __GFP_IO)) 63eb6b93ce Hugh Dickins 2008-11-19 1061 goto keep_locked; 747552b1e7 Huang Ying 2017-07-06 1062 if (PageTransHuge(page)) { b8f593cd08 Huang Ying 2017-07-06 1063 /* cannot split THP, skip it */ 747552b1e7 Huang Ying 2017-07-06 1064 if (!can_split_huge_page(page, NULL)) b8f593cd08 Huang Ying 2017-07-06 1065 goto activate_locked; 747552b1e7 Huang Ying 2017-07-06 1066 /* 747552b1e7 Huang Ying 2017-07-06 1067 * Split pages without a PMD map right 747552b1e7 Huang Ying 2017-07-06 1068 * away. Chances are some or all of the 747552b1e7 Huang Ying 2017-07-06 1069 * tail pages can be freed without IO. 747552b1e7 Huang Ying 2017-07-06 1070 */ 747552b1e7 Huang Ying 2017-07-06 1071 if (!compound_mapcount(page) && bd4c82c22c Huang Ying 2017-09-06 1072 split_huge_page_to_list(page, bd4c82c22c Huang Ying 2017-09-06 1073 page_list)) 747552b1e7 Huang Ying 2017-07-06 1074 goto activate_locked; 747552b1e7 Huang Ying 2017-07-06 1075 } 0f0746589e Minchan Kim 2017-07-06 1076 if (!add_to_swap(page)) { 0f0746589e Minchan Kim 2017-07-06 1077 if (!PageTransHuge(page)) ^1da177e4c Linus Torvalds 2005-04-16 1078 goto activate_locked; bd4c82c22c Huang Ying 2017-09-06 1079 /* Fallback to swap normal pages */ bd4c82c22c Huang Ying 2017-09-06 1080 if (split_huge_page_to_list(page, bd4c82c22c Huang Ying 2017-09-06 1081 page_list)) 0f0746589e Minchan Kim 2017-07-06 1082 goto activate_locked; fe490cc0fe Huang Ying 2017-09-06 1083 #ifdef CONFIG_TRANSPARENT_HUGEPAGE fe490cc0fe Huang Ying 2017-09-06 1084 count_vm_event(THP_SWPOUT_FALLBACK); fe490cc0fe Huang Ying 2017-09-06 1085 #endif 0f0746589e Minchan Kim 2017-07-06 1086 if (!add_to_swap(page)) 0f0746589e Minchan Kim 2017-07-06 1087 goto activate_locked; 0f0746589e Minchan Kim 2017-07-06 1088 } 0f0746589e Minchan Kim 2017-07-06 1089 63eb6b93ce Hugh Dickins 2008-11-19 1090 may_enter_fs = 1; ^1da177e4c Linus Torvalds 2005-04-16 1091 e2be15f6c3 Mel Gorman 2013-07-03 1092 /* Adding to swap updated mapping */ ^1da177e4c Linus Torvalds 2005-04-16 1093 mapping = page_mapping(page); bd4c82c22c Huang Ying 2017-09-06 1094 } 7751b2da6b Kirill A. Shutemov 2016-07-26 1095 } else if (unlikely(PageTransHuge(page))) { 7751b2da6b Kirill A. Shutemov 2016-07-26 1096 /* Split file THP */ 7751b2da6b Kirill A. Shutemov 2016-07-26 1097 if (split_huge_page_to_list(page, page_list)) 7751b2da6b Kirill A. Shutemov 2016-07-26 1098 goto keep_locked; e2be15f6c3 Mel Gorman 2013-07-03 1099 } ^1da177e4c Linus Torvalds 2005-04-16 1100 ^1da177e4c Linus Torvalds 2005-04-16 1101 /* ^1da177e4c Linus Torvalds 2005-04-16 1102 * The page is mapped into the page tables of one or more ^1da177e4c Linus Torvalds 2005-04-16 1103 * processes. Try to unmap it here. ^1da177e4c Linus Torvalds 2005-04-16 1104 */ 802a3a92ad Shaohua Li 2017-05-03 1105 if (page_mapped(page)) { bd4c82c22c Huang Ying 2017-09-06 1106 enum ttu_flags flags = ttu_flags | TTU_BATCH_FLUSH; bd4c82c22c Huang Ying 2017-09-06 1107 bd4c82c22c Huang Ying 2017-09-06 1108 if (unlikely(PageTransHuge(page))) bd4c82c22c Huang Ying 2017-09-06 1109 flags |= TTU_SPLIT_HUGE_PMD; bd4c82c22c Huang Ying 2017-09-06 1110 if (!try_to_unmap(page, flags)) { 5bccd16657 Michal Hocko 2017-02-22 1111 nr_unmap_fail++; ^1da177e4c Linus Torvalds 2005-04-16 1112 goto activate_locked; ^1da177e4c Linus Torvalds 2005-04-16 1113 } ^1da177e4c Linus Torvalds 2005-04-16 1114 } ^1da177e4c Linus Torvalds 2005-04-16 1115 ^1da177e4c Linus Torvalds 2005-04-16 1116 if (PageDirty(page)) { ee72886d8e Mel Gorman 2011-10-31 1117 /* 4eda482350 Johannes Weiner 2017-02-24 1118 * Only kswapd can writeback filesystem pages 4eda482350 Johannes Weiner 2017-02-24 1119 * to avoid risk of stack overflow. But avoid 4eda482350 Johannes Weiner 2017-02-24 1120 * injecting inefficient single-page IO into 4eda482350 Johannes Weiner 2017-02-24 1121 * flusher writeback as much as possible: only 4eda482350 Johannes Weiner 2017-02-24 1122 * write pages when we've encountered many 4eda482350 Johannes Weiner 2017-02-24 1123 * dirty pages, and when we've already scanned 4eda482350 Johannes Weiner 2017-02-24 1124 * the rest of the LRU for clean pages and see 4eda482350 Johannes Weiner 2017-02-24 1125 * the same dirty pages again (PageReclaim). ee72886d8e Mel Gorman 2011-10-31 1126 */ f84f6e2b08 Mel Gorman 2011-10-31 1127 if (page_is_file_cache(page) && 4eda482350 Johannes Weiner 2017-02-24 1128 (!current_is_kswapd() || !PageReclaim(page) || 599d0c954f Mel Gorman 2016-07-28 1129 !test_bit(PGDAT_DIRTY, &pgdat->flags))) { 49ea7eb65e Mel Gorman 2011-10-31 1130 /* 49ea7eb65e Mel Gorman 2011-10-31 1131 * Immediately reclaim when written back. 49ea7eb65e Mel Gorman 2011-10-31 1132 * Similar in principal to deactivate_page() 49ea7eb65e Mel Gorman 2011-10-31 1133 * except we already have the page isolated 49ea7eb65e Mel Gorman 2011-10-31 1134 * and know it's dirty 49ea7eb65e Mel Gorman 2011-10-31 1135 */ c4a25635b6 Mel Gorman 2016-07-28 1136 inc_node_page_state(page, NR_VMSCAN_IMMEDIATE); 49ea7eb65e Mel Gorman 2011-10-31 1137 SetPageReclaim(page); 49ea7eb65e Mel Gorman 2011-10-31 1138 c55e8d035b Johannes Weiner 2017-02-24 1139 goto activate_locked; ee72886d8e Mel Gorman 2011-10-31 1140 } ee72886d8e Mel Gorman 2011-10-31 1141 dfc8d636cd Johannes Weiner 2010-03-05 1142 if (references == PAGEREF_RECLAIM_CLEAN) ^1da177e4c Linus Torvalds 2005-04-16 1143 goto keep_locked; 4dd4b92021 Andrew Morton 2008-03-24 1144 if (!may_enter_fs) ^1da177e4c Linus Torvalds 2005-04-16 1145 goto keep_locked; 52a8363eae Christoph Lameter 2006-02-01 1146 if (!sc->may_writepage) ^1da177e4c Linus Torvalds 2005-04-16 1147 goto keep_locked; ^1da177e4c Linus Torvalds 2005-04-16 1148 d950c9477d Mel Gorman 2015-09-04 1149 /* d950c9477d Mel Gorman 2015-09-04 1150 * Page is dirty. Flush the TLB if a writable entry d950c9477d Mel Gorman 2015-09-04 1151 * potentially exists to avoid CPU writes after IO d950c9477d Mel Gorman 2015-09-04 1152 * starts and then write it out here. d950c9477d Mel Gorman 2015-09-04 1153 */ d950c9477d Mel Gorman 2015-09-04 1154 try_to_unmap_flush_dirty(); 7d3579e8e6 KOSAKI Motohiro 2010-10-26 1155 switch (pageout(page, mapping, sc)) { ^1da177e4c Linus Torvalds 2005-04-16 1156 case PAGE_KEEP: ^1da177e4c Linus Torvalds 2005-04-16 1157 goto keep_locked; ^1da177e4c Linus Torvalds 2005-04-16 1158 case PAGE_ACTIVATE: ^1da177e4c Linus Torvalds 2005-04-16 1159 goto activate_locked; ^1da177e4c Linus Torvalds 2005-04-16 1160 case PAGE_SUCCESS: 7d3579e8e6 KOSAKI Motohiro 2010-10-26 1161 if (PageWriteback(page)) 41ac1999c3 Mel Gorman 2012-05-29 1162 goto keep; 7d3579e8e6 KOSAKI Motohiro 2010-10-26 1163 if (PageDirty(page)) ^1da177e4c Linus Torvalds 2005-04-16 1164 goto keep; 7d3579e8e6 KOSAKI Motohiro 2010-10-26 1165 ^1da177e4c Linus Torvalds 2005-04-16 1166 /* ^1da177e4c Linus Torvalds 2005-04-16 1167 * A synchronous write - probably a ramdisk. Go ^1da177e4c Linus Torvalds 2005-04-16 1168 * ahead and try to reclaim the page. ^1da177e4c Linus Torvalds 2005-04-16 1169 */ 529ae9aaa0 Nick Piggin 2008-08-02 1170 if (!trylock_page(page)) ^1da177e4c Linus Torvalds 2005-04-16 1171 goto keep; ^1da177e4c Linus Torvalds 2005-04-16 1172 if (PageDirty(page) || PageWriteback(page)) ^1da177e4c Linus Torvalds 2005-04-16 1173 goto keep_locked; ^1da177e4c Linus Torvalds 2005-04-16 1174 mapping = page_mapping(page); ^1da177e4c Linus Torvalds 2005-04-16 1175 case PAGE_CLEAN: ^1da177e4c Linus Torvalds 2005-04-16 1176 ; /* try to free the page below */ ^1da177e4c Linus Torvalds 2005-04-16 1177 } ^1da177e4c Linus Torvalds 2005-04-16 1178 } ^1da177e4c Linus Torvalds 2005-04-16 1179 ^1da177e4c Linus Torvalds 2005-04-16 1180 /* ^1da177e4c Linus Torvalds 2005-04-16 1181 * If the page has buffers, try to free the buffer mappings ^1da177e4c Linus Torvalds 2005-04-16 1182 * associated with this page. If we succeed we try to free ^1da177e4c Linus Torvalds 2005-04-16 1183 * the page as well. ^1da177e4c Linus Torvalds 2005-04-16 1184 * ^1da177e4c Linus Torvalds 2005-04-16 1185 * We do this even if the page is PageDirty(). ^1da177e4c Linus Torvalds 2005-04-16 1186 * try_to_release_page() does not perform I/O, but it is ^1da177e4c Linus Torvalds 2005-04-16 1187 * possible for a page to have PageDirty set, but it is actually ^1da177e4c Linus Torvalds 2005-04-16 1188 * clean (all its buffers are clean). This happens if the ^1da177e4c Linus Torvalds 2005-04-16 1189 * buffers were written out directly, with submit_bh(). ext3 ^1da177e4c Linus Torvalds 2005-04-16 1190 * will do this, as well as the blockdev mapping. ^1da177e4c Linus Torvalds 2005-04-16 1191 * try_to_release_page() will discover that cleanness and will ^1da177e4c Linus Torvalds 2005-04-16 1192 * drop the buffers and mark the page clean - it can be freed. ^1da177e4c Linus Torvalds 2005-04-16 1193 * ^1da177e4c Linus Torvalds 2005-04-16 1194 * Rarely, pages can have buffers and no ->mapping. These are ^1da177e4c Linus Torvalds 2005-04-16 1195 * the pages which were not successfully invalidated in ^1da177e4c Linus Torvalds 2005-04-16 1196 * truncate_complete_page(). We try to drop those buffers here ^1da177e4c Linus Torvalds 2005-04-16 1197 * and if that worked, and the page is no longer mapped into ^1da177e4c Linus Torvalds 2005-04-16 1198 * process address space (page_count == 1) it can be freed. ^1da177e4c Linus Torvalds 2005-04-16 1199 * Otherwise, leave the page on the LRU so it is swappable. ^1da177e4c Linus Torvalds 2005-04-16 1200 */ 266cf658ef David Howells 2009-04-03 1201 if (page_has_private(page)) { ^1da177e4c Linus Torvalds 2005-04-16 1202 if (!try_to_release_page(page, sc->gfp_mask)) ^1da177e4c Linus Torvalds 2005-04-16 1203 goto activate_locked; e286781d5f Nick Piggin 2008-07-25 1204 if (!mapping && page_count(page) == 1) { e286781d5f Nick Piggin 2008-07-25 1205 unlock_page(page); e286781d5f Nick Piggin 2008-07-25 1206 if (put_page_testzero(page)) ^1da177e4c Linus Torvalds 2005-04-16 1207 goto free_it; e286781d5f Nick Piggin 2008-07-25 1208 else { e286781d5f Nick Piggin 2008-07-25 1209 /* e286781d5f Nick Piggin 2008-07-25 1210 * rare race with speculative reference. e286781d5f Nick Piggin 2008-07-25 1211 * the speculative reference will free e286781d5f Nick Piggin 2008-07-25 1212 * this page shortly, so we may e286781d5f Nick Piggin 2008-07-25 1213 * increment nr_reclaimed here (and e286781d5f Nick Piggin 2008-07-25 1214 * leave it off the LRU). e286781d5f Nick Piggin 2008-07-25 1215 */ e286781d5f Nick Piggin 2008-07-25 1216 nr_reclaimed++; e286781d5f Nick Piggin 2008-07-25 1217 continue; e286781d5f Nick Piggin 2008-07-25 1218 } e286781d5f Nick Piggin 2008-07-25 1219 } ^1da177e4c Linus Torvalds 2005-04-16 1220 } ^1da177e4c Linus Torvalds 2005-04-16 1221 802a3a92ad Shaohua Li 2017-05-03 1222 if (PageAnon(page) && !PageSwapBacked(page)) { 802a3a92ad Shaohua Li 2017-05-03 1223 /* follow __remove_mapping for reference */ 802a3a92ad Shaohua Li 2017-05-03 1224 if (!page_ref_freeze(page, 1)) 49d2e9cc45 Christoph Lameter 2006-01-08 1225 goto keep_locked; 802a3a92ad Shaohua Li 2017-05-03 1226 if (PageDirty(page)) { 802a3a92ad Shaohua Li 2017-05-03 1227 page_ref_unfreeze(page, 1); 802a3a92ad Shaohua Li 2017-05-03 1228 goto keep_locked; 802a3a92ad Shaohua Li 2017-05-03 1229 } ^1da177e4c Linus Torvalds 2005-04-16 1230 802a3a92ad Shaohua Li 2017-05-03 1231 count_vm_event(PGLAZYFREED); 2262185c5b Roman Gushchin 2017-07-06 1232 count_memcg_page_event(page, PGLAZYFREED); 802a3a92ad Shaohua Li 2017-05-03 1233 } else if (!mapping || !__remove_mapping(mapping, page, true)) 802a3a92ad Shaohua Li 2017-05-03 1234 goto keep_locked; a978d6f521 Nick Piggin 2008-10-18 1235 /* a978d6f521 Nick Piggin 2008-10-18 1236 * At this point, we have no other references and there is a978d6f521 Nick Piggin 2008-10-18 1237 * no way to pick any more up (removed from LRU, removed a978d6f521 Nick Piggin 2008-10-18 1238 * from pagecache). Can use non-atomic bitops now (and a978d6f521 Nick Piggin 2008-10-18 1239 * we obviously don't have to worry about waking up a process a978d6f521 Nick Piggin 2008-10-18 1240 * waiting on the page lock, because there are no references. a978d6f521 Nick Piggin 2008-10-18 1241 */ 48c935ad88 Kirill A. Shutemov 2016-01-15 1242 __ClearPageLocked(page); e286781d5f Nick Piggin 2008-07-25 1243 free_it: 05ff51376f Andrew Morton 2006-03-22 1244 nr_reclaimed++; abe4c3b50c Mel Gorman 2010-08-09 1245 abe4c3b50c Mel Gorman 2010-08-09 1246 /* abe4c3b50c Mel Gorman 2010-08-09 1247 * Is there need to periodically free_page_list? It would abe4c3b50c Mel Gorman 2010-08-09 1248 * appear not as the counts should be low abe4c3b50c Mel Gorman 2010-08-09 1249 */ bd4c82c22c Huang Ying 2017-09-06 1250 if (unlikely(PageTransHuge(page))) { bd4c82c22c Huang Ying 2017-09-06 1251 mem_cgroup_uncharge(page); bd4c82c22c Huang Ying 2017-09-06 1252 (*get_compound_page_dtor(page))(page); bd4c82c22c Huang Ying 2017-09-06 1253 } else abe4c3b50c Mel Gorman 2010-08-09 1254 list_add(&page->lru, &free_pages); ^1da177e4c Linus Torvalds 2005-04-16 1255 continue; ^1da177e4c Linus Torvalds 2005-04-16 1256 ^1da177e4c Linus Torvalds 2005-04-16 1257 activate_locked: 68a22394c2 Rik van Riel 2008-10-18 1258 /* Not a candidate for swapping, so reclaim swap space. */ ad6b67041a Minchan Kim 2017-05-03 1259 if (PageSwapCache(page) && (mem_cgroup_swap_full(page) || ad6b67041a Minchan Kim 2017-05-03 1260 PageMlocked(page))) a2c43eed83 Hugh Dickins 2009-01-06 1261 try_to_free_swap(page); 309381feae Sasha Levin 2014-01-23 1262 VM_BUG_ON_PAGE(PageActive(page), page); ad6b67041a Minchan Kim 2017-05-03 1263 if (!PageMlocked(page)) { ^1da177e4c Linus Torvalds 2005-04-16 1264 SetPageActive(page); ^1da177e4c Linus Torvalds 2005-04-16 1265 pgactivate++; 2262185c5b Roman Gushchin 2017-07-06 1266 count_memcg_page_event(page, PGACTIVATE); ad6b67041a Minchan Kim 2017-05-03 1267 } ^1da177e4c Linus Torvalds 2005-04-16 1268 keep_locked: ^1da177e4c Linus Torvalds 2005-04-16 1269 unlock_page(page); ^1da177e4c Linus Torvalds 2005-04-16 1270 keep: ^1da177e4c Linus Torvalds 2005-04-16 1271 list_add(&page->lru, &ret_pages); 309381feae Sasha Levin 2014-01-23 1272 VM_BUG_ON_PAGE(PageLRU(page) || PageUnevictable(page), page); ^1da177e4c Linus Torvalds 2005-04-16 1273 } abe4c3b50c Mel Gorman 2010-08-09 1274 747db954ca Johannes Weiner 2014-08-08 1275 mem_cgroup_uncharge_list(&free_pages); 72b252aed5 Mel Gorman 2015-09-04 1276 try_to_unmap_flush(); 2d4894b5d2 Mel Gorman 2017-11-15 1277 free_unref_page_list(&free_pages); abe4c3b50c Mel Gorman 2010-08-09 1278 ^1da177e4c Linus Torvalds 2005-04-16 1279 list_splice(&ret_pages, page_list); f8891e5e1f Christoph Lameter 2006-06-30 1280 count_vm_events(PGACTIVATE, pgactivate); 0a31bc97c8 Johannes Weiner 2014-08-08 1281 3c710c1ad1 Michal Hocko 2017-02-22 1282 if (stat) { 3c710c1ad1 Michal Hocko 2017-02-22 1283 stat->nr_dirty = nr_dirty; 3c710c1ad1 Michal Hocko 2017-02-22 1284 stat->nr_congested = nr_congested; 3c710c1ad1 Michal Hocko 2017-02-22 1285 stat->nr_unqueued_dirty = nr_unqueued_dirty; 3c710c1ad1 Michal Hocko 2017-02-22 1286 stat->nr_writeback = nr_writeback; 3c710c1ad1 Michal Hocko 2017-02-22 1287 stat->nr_immediate = nr_immediate; 5bccd16657 Michal Hocko 2017-02-22 1288 stat->nr_activate = pgactivate; 5bccd16657 Michal Hocko 2017-02-22 1289 stat->nr_ref_keep = nr_ref_keep; 5bccd16657 Michal Hocko 2017-02-22 1290 stat->nr_unmap_fail = nr_unmap_fail; 3c710c1ad1 Michal Hocko 2017-02-22 1291 } 05ff51376f Andrew Morton 2006-03-22 1292 return nr_reclaimed; ^1da177e4c Linus Torvalds 2005-04-16 @1293 } ^1da177e4c Linus Torvalds 2005-04-16 1294 :::::: The code at line 1293 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --gBBFr7Ir9EOA20Yy Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 AA== --gBBFr7Ir9EOA20Yy-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org