CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: "Kirill A. Shutemov" <kirill.shute...@linux.intel.com>

tree:   https://github.com/intel/tdx.git guest-unaccepted-memory
head:   83a8442434ff3bbf432df7508f1fefd447ca2c86
commit: 0845556ccd9555f5245d3bdd6cb646c2ea3fa9c2 [3/15] mm: Add support for 
unaccepted memory
:::::: branch date: 2 days ago
:::::: commit date: 7 days ago
config: i386-randconfig-m031-20220509 
(https://download.01.org/0day-ci/archive/20220513/202205130113.xdkf4oqn-...@intel.com/config)
compiler: gcc-11 (Debian 11.2.0-20) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

smatch warnings:
mm/page_alloc.c:1183 __free_one_page() error: uninitialized symbol 
'page_needs_acceptance'.

vim +/page_needs_acceptance +1183 mm/page_alloc.c

0845556ccd9555 Kirill A. Shutemov      2021-08-25  1056  
^1da177e4c3f41 Linus Torvalds          2005-04-16  1057  /*
^1da177e4c3f41 Linus Torvalds          2005-04-16  1058   * Freeing function 
for a buddy system allocator.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1059   *
^1da177e4c3f41 Linus Torvalds          2005-04-16  1060   * The concept of a 
buddy system is to maintain direct-mapped table
^1da177e4c3f41 Linus Torvalds          2005-04-16  1061   * (containing bit 
values) for memory blocks of various "orders".
^1da177e4c3f41 Linus Torvalds          2005-04-16  1062   * The bottom level 
table contains the map for the smallest allocatable
^1da177e4c3f41 Linus Torvalds          2005-04-16  1063   * units of memory 
(here, pages), and each level above it describes
^1da177e4c3f41 Linus Torvalds          2005-04-16  1064   * pairs of units from 
the levels below, hence, "buddies".
^1da177e4c3f41 Linus Torvalds          2005-04-16  1065   * At a high level, 
all that happens here is marking the table entry
^1da177e4c3f41 Linus Torvalds          2005-04-16  1066   * at the bottom level 
available, and propagating the changes upward
^1da177e4c3f41 Linus Torvalds          2005-04-16  1067   * as necessary, plus 
some accounting needed to play nicely with other
^1da177e4c3f41 Linus Torvalds          2005-04-16  1068   * parts of the VM 
system.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1069   * At each level, we 
keep a list of pages, which are heads of continuous
6e292b9be7f435 Matthew Wilcox          2018-06-07  1070   * free pages of 
length of (1 << order) and marked with PageBuddy.
6e292b9be7f435 Matthew Wilcox          2018-06-07  1071   * Page's order is 
recorded in page_private(page) field.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1072   * So when we are 
allocating or freeing one, we can derive the state of the
^1da177e4c3f41 Linus Torvalds          2005-04-16  1073   * other.  That is, if 
we allocate a small block, and both were
^1da177e4c3f41 Linus Torvalds          2005-04-16  1074   * free, the remainder 
of the region must be split into blocks.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1075   * If a block is 
freed, and its buddy is also free, then this
^1da177e4c3f41 Linus Torvalds          2005-04-16  1076   * triggers coalescing 
into a block of larger size.
^1da177e4c3f41 Linus Torvalds          2005-04-16  1077   *
6d49e352ae9aed Nadia Yvette Chambers   2012-12-06  1078   * -- nyc
^1da177e4c3f41 Linus Torvalds          2005-04-16  1079   */
^1da177e4c3f41 Linus Torvalds          2005-04-16  1080  
48db57f8ff10eb Nicholas Piggin         2006-01-08  1081  static inline void 
__free_one_page(struct page *page,
dc4b0caff24d9b Mel Gorman              2014-06-04  1082                 
unsigned long pfn,
ed0ae21dc5fe3b Mel Gorman              2009-06-16  1083                 struct 
zone *zone, unsigned int order,
f04a5d5d913fa8 David Hildenbrand       2020-10-15  1084                 int 
migratetype, fpi_t fpi_flags)
^1da177e4c3f41 Linus Torvalds          2005-04-16  1085  {
a2129f24798a99 Alexander Duyck         2020-04-06  1086         struct 
capture_control *capc = task_capc(zone);
b3d40a2b6d10c9 David Hildenbrand       2022-03-22  1087         unsigned int 
max_order = pageblock_order;
3f649ab728cda8 Kees Cook               2020-06-03  1088         unsigned long 
buddy_pfn;
a2129f24798a99 Alexander Duyck         2020-04-06  1089         unsigned long 
combined_pfn;
a2129f24798a99 Alexander Duyck         2020-04-06  1090         struct page 
*buddy;
a2129f24798a99 Alexander Duyck         2020-04-06  1091         bool to_tail;
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1092         bool 
page_needs_acceptance;
d9dddbf556674b Vlastimil Babka         2016-03-25  1093  
d29bb9782d2206 Cody P Schafer          2013-02-22  1094         
VM_BUG_ON(!zone_is_initialized(zone));
6e9f0d582dde09 Kirill A. Shutemov      2015-02-11  1095         
VM_BUG_ON_PAGE(page->flags & PAGE_FLAGS_CHECK_AT_PREP, page);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1096  
ed0ae21dc5fe3b Mel Gorman              2009-06-16  1097         
VM_BUG_ON(migratetype == -1);
d9dddbf556674b Vlastimil Babka         2016-03-25  1098         if 
(likely(!is_migrate_isolate(migratetype)))
8f82b55dd558a7 Joonsoo Kim             2014-11-13  1099                 
__mod_zone_freepage_state(zone, 1 << order, migratetype);
ed0ae21dc5fe3b Mel Gorman              2009-06-16  1100  
76741e776a3797 Vlastimil Babka         2017-02-22  1101         
VM_BUG_ON_PAGE(pfn & ((1 << order) - 1), page);
309381feaee564 Sasha Levin             2014-01-23  1102         
VM_BUG_ON_PAGE(bad_range(zone, page), page);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1103  
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1104         if 
(PageUnaccepted(page)) {
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1105                 
page_needs_acceptance = true;
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1106                 
__ClearPageUnaccepted(page);
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1107         }
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1108  
d9dddbf556674b Vlastimil Babka         2016-03-25  1109  continue_merging:
7ad69832f37e3c Muchun Song             2020-12-14  1110         while (order < 
max_order) {
5e1f0f098b4649 Mel Gorman              2019-03-05  1111                 if 
(compaction_capture(capc, page, order, migratetype)) {
5e1f0f098b4649 Mel Gorman              2019-03-05  1112                         
__mod_zone_freepage_state(zone, -(1 << order),
5e1f0f098b4649 Mel Gorman              2019-03-05  1113                         
                                        migratetype);
5e1f0f098b4649 Mel Gorman              2019-03-05  1114                         
return;
5e1f0f098b4649 Mel Gorman              2019-03-05  1115                 }
76741e776a3797 Vlastimil Babka         2017-02-22  1116                 
buddy_pfn = __find_buddy_pfn(pfn, order);
76741e776a3797 Vlastimil Babka         2017-02-22  1117                 buddy = 
page + (buddy_pfn - pfn);
13ad59df67f197 Vlastimil Babka         2017-02-22  1118  
cb2b95e1c6b56e Andy Whitcroft          2006-06-23  1119                 if 
(!page_is_buddy(page, buddy, order))
d9dddbf556674b Vlastimil Babka         2016-03-25  1120                         
goto done_merging;
c0a32fc5a2e470 Stanislaw Gruszka       2012-01-10  1121                 /*
c0a32fc5a2e470 Stanislaw Gruszka       2012-01-10  1122                  * Our 
buddy is free or it is CONFIG_DEBUG_PAGEALLOC guard page,
c0a32fc5a2e470 Stanislaw Gruszka       2012-01-10  1123                  * 
merge with it and move up one order.
c0a32fc5a2e470 Stanislaw Gruszka       2012-01-10  1124                  */
b03641af680959 Dan Williams            2019-05-14  1125                 if 
(page_is_guard(buddy))
2847cf95c68fa5 Joonsoo Kim             2014-12-12  1126                         
clear_page_guard(zone, buddy, order, migratetype);
b03641af680959 Dan Williams            2019-05-14  1127                 else
6ab0136310961e Alexander Duyck         2020-04-06  1128                         
del_page_from_free_list(buddy, zone, order);
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1129  
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1130                 /* Mark 
page unaccepted if any of merged pages were unaccepted */
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1131                 if 
(PageUnaccepted(buddy)) {
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1132                         
page_needs_acceptance = true;
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1133                         
__ClearPageUnaccepted(buddy);
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1134                 }
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1135  
76741e776a3797 Vlastimil Babka         2017-02-22  1136                 
combined_pfn = buddy_pfn & pfn;
76741e776a3797 Vlastimil Babka         2017-02-22  1137                 page = 
page + (combined_pfn - pfn);
76741e776a3797 Vlastimil Babka         2017-02-22  1138                 pfn = 
combined_pfn;
^1da177e4c3f41 Linus Torvalds          2005-04-16  1139                 order++;
^1da177e4c3f41 Linus Torvalds          2005-04-16  1140         }
7ad69832f37e3c Muchun Song             2020-12-14  1141         if (order < 
MAX_ORDER - 1) {
d9dddbf556674b Vlastimil Babka         2016-03-25  1142                 /* If 
we are here, it means order is >= pageblock_order.
1dd214b8f21ca4 Zi Yan                  2022-03-22  1143                  * We 
want to prevent merge between freepages on pageblock
1dd214b8f21ca4 Zi Yan                  2022-03-22  1144                  * 
without fallbacks and normal pageblock. Without this,
1dd214b8f21ca4 Zi Yan                  2022-03-22  1145                  * 
pageblock isolation could cause incorrect freepage or CMA
1dd214b8f21ca4 Zi Yan                  2022-03-22  1146                  * 
accounting or HIGHATOMIC accounting.
d9dddbf556674b Vlastimil Babka         2016-03-25  1147                  *
d9dddbf556674b Vlastimil Babka         2016-03-25  1148                  * We 
don't want to hit this code for the more frequent
d9dddbf556674b Vlastimil Babka         2016-03-25  1149                  * 
low-order merging.
d9dddbf556674b Vlastimil Babka         2016-03-25  1150                  */
d9dddbf556674b Vlastimil Babka         2016-03-25  1151                 int 
buddy_mt;
d9dddbf556674b Vlastimil Babka         2016-03-25  1152  
76741e776a3797 Vlastimil Babka         2017-02-22  1153                 
buddy_pfn = __find_buddy_pfn(pfn, order);
76741e776a3797 Vlastimil Babka         2017-02-22  1154                 buddy = 
page + (buddy_pfn - pfn);
787af64d05cd52 Zi Yan                  2022-03-30  1155  
787af64d05cd52 Zi Yan                  2022-03-30  1156                 if 
(!page_is_buddy(page, buddy, order))
787af64d05cd52 Zi Yan                  2022-03-30  1157                         
goto done_merging;
d9dddbf556674b Vlastimil Babka         2016-03-25  1158                 
buddy_mt = get_pageblock_migratetype(buddy);
d9dddbf556674b Vlastimil Babka         2016-03-25  1159  
d9dddbf556674b Vlastimil Babka         2016-03-25  1160                 if 
(migratetype != buddy_mt
1dd214b8f21ca4 Zi Yan                  2022-03-22  1161                         
        && (!migratetype_is_mergeable(migratetype) ||
1dd214b8f21ca4 Zi Yan                  2022-03-22  1162                         
                !migratetype_is_mergeable(buddy_mt)))
d9dddbf556674b Vlastimil Babka         2016-03-25  1163                         
goto done_merging;
7ad69832f37e3c Muchun Song             2020-12-14  1164                 
max_order = order + 1;
d9dddbf556674b Vlastimil Babka         2016-03-25  1165                 goto 
continue_merging;
d9dddbf556674b Vlastimil Babka         2016-03-25  1166         }
d9dddbf556674b Vlastimil Babka         2016-03-25  1167  
d9dddbf556674b Vlastimil Babka         2016-03-25  1168  done_merging:
ab130f9108dcf2 Matthew Wilcox (Oracle  2020-10-15  1169)        
set_buddy_order(page, order);
6dda9d55bf5450 Corrado Zoccolo         2010-05-24  1170  
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1171         /*
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1172          * The page 
gets marked as PageUnaccepted() if any of merged-in pages
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1173          * is 
PageUnaccepted().
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1174          *
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1175          * New pages, 
just being added to buddy allocator, do not have
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1176          * 
PageUnaccepted() set. FPI_UNACCEPTED_SLOWPATH indicates that the
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1177          * page is new 
and page_is_unaccepted() check is required to
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1178          * determinate 
if acceptance is required.
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1179          *
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1180          * Avoid 
calling page_is_unaccepted() if it is known that the page
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1181          * needs 
acceptance. It can be costly.
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1182          */
0845556ccd9555 Kirill A. Shutemov      2021-08-25 @1183         if 
(!page_needs_acceptance && (fpi_flags & FPI_UNACCEPTED_SLOWPATH))
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1184                 
page_needs_acceptance = page_is_unaccepted(page, order);
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1185         if 
(page_needs_acceptance)
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1186                 
__SetPageUnaccepted(page);
0845556ccd9555 Kirill A. Shutemov      2021-08-25  1187  
47b6a24a23825a David Hildenbrand       2020-10-15  1188         if (fpi_flags & 
FPI_TO_TAIL)
47b6a24a23825a David Hildenbrand       2020-10-15  1189                 to_tail 
= true;
47b6a24a23825a David Hildenbrand       2020-10-15  1190         else if 
(is_shuffle_order(order))
a2129f24798a99 Alexander Duyck         2020-04-06  1191                 to_tail 
= shuffle_pick_tail();
97500a4a54876d Dan Williams            2019-05-14  1192         else
a2129f24798a99 Alexander Duyck         2020-04-06  1193                 to_tail 
= buddy_merge_likely(pfn, buddy_pfn, page, order);
97500a4a54876d Dan Williams            2019-05-14  1194  
a2129f24798a99 Alexander Duyck         2020-04-06  1195         if (to_tail)
6ab0136310961e Alexander Duyck         2020-04-06  1196                 
add_to_free_list_tail(page, zone, order, migratetype);
a2129f24798a99 Alexander Duyck         2020-04-06  1197         else
6ab0136310961e Alexander Duyck         2020-04-06  1198                 
add_to_free_list(page, zone, order, migratetype);
36e66c554b5c6a Alexander Duyck         2020-04-06  1199  
36e66c554b5c6a Alexander Duyck         2020-04-06  1200         /* Notify page 
reporting subsystem of freed page */
f04a5d5d913fa8 David Hildenbrand       2020-10-15  1201         if (!(fpi_flags 
& FPI_SKIP_REPORT_NOTIFY))
36e66c554b5c6a Alexander Duyck         2020-04-06  1202                 
page_reporting_notify_free(order);
^1da177e4c3f41 Linus Torvalds          2005-04-16  1203  }
^1da177e4c3f41 Linus Torvalds          2005-04-16  1204  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to