Hi Pavel,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on mmotm/master]
[also build test ERROR on next-20180209]
[cannot apply to v4.15]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Pavel-Tatashin/mm-initialize-pages-on-demand-during-boot/20180210-125104
base:   git://git.cmpxchg.org/linux-mmotm.git master
config: x86_64-randconfig-x017-201805 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   mm/page_alloc.c: In function 'deferred_grow_zone':
>> mm/page_alloc.c:1590:18: error: 'struct zone' has no member named 'node'; 
>> did you mean 'name'?
     int nid = zone->node;
                     ^~~~
                     name

vim +1590 mm/page_alloc.c

  1578  
  1579  /*
  1580   * If this zone has deferred pages, try to grow it by initializing 
enough
  1581   * deferred pages to satisfy the allocation specified by order, rounded 
up to
  1582   * the nearest PAGES_PER_SECTION boundary.  So we're adding memory in 
increments
  1583   * of SECTION_SIZE bytes by initializing struct pages in increments of
  1584   * PAGES_PER_SECTION * sizeof(struct page) bytes.
  1585   */
  1586  static noinline bool __init
  1587  deferred_grow_zone(struct zone *zone, unsigned int order)
  1588  {
  1589          int zid = zone_idx(zone);
> 1590          int nid = zone->node;
  1591          pg_data_t *pgdat = NODE_DATA(nid);
  1592          unsigned long nr_pages_needed = ALIGN(1 << order, 
PAGES_PER_SECTION);
  1593          unsigned long nr_pages = 0;
  1594          unsigned long first_init_pfn, first_deferred_pfn, spfn, epfn, t;
  1595          phys_addr_t spa, epa;
  1596          u64 i;
  1597  
  1598          /* Only the last zone may have deferred pages */
  1599          if (zone_end_pfn(zone) != pgdat_end_pfn(pgdat))
  1600                  return false;
  1601  
  1602          first_deferred_pfn = READ_ONCE(pgdat->first_deferred_pfn);
  1603          first_init_pfn = max(zone->zone_start_pfn, first_deferred_pfn);
  1604  
  1605          if (first_init_pfn >= pgdat_end_pfn(pgdat))
  1606                  return false;
  1607  
  1608          spin_lock(&deferred_zone_grow_lock);
  1609          /*
  1610           * Bail if we raced with another thread that disabled on demand
  1611           * initialization.
  1612           */
  1613          if (!static_branch_unlikely(&deferred_pages)) {
  1614                  spin_unlock(&deferred_zone_grow_lock);
  1615                  return false;
  1616          }
  1617  
  1618          for_each_free_mem_range(i, nid, MEMBLOCK_NONE, &spa, &epa, 
NULL) {
  1619                  spfn = max_t(unsigned long, first_init_pfn, 
PFN_UP(spa));
  1620                  epfn = min_t(unsigned long, zone_end_pfn(zone), 
PFN_DOWN(epa));
  1621  
  1622                  while (spfn < epfn && nr_pages < nr_pages_needed) {
  1623                          t = ALIGN(spfn + PAGES_PER_SECTION, 
PAGES_PER_SECTION);
  1624                          first_deferred_pfn = min(t, epfn);
  1625                          nr_pages += deferred_init_pages(nid, zid, spfn,
  1626                                                          
first_deferred_pfn);
  1627                          spfn = first_deferred_pfn;
  1628                  }
  1629  
  1630                  if (nr_pages >= nr_pages_needed)
  1631                          break;
  1632          }
  1633  
  1634          for_each_free_mem_range(i, nid, MEMBLOCK_NONE, &spa, &epa, 
NULL) {
  1635                  spfn = max_t(unsigned long, first_init_pfn, 
PFN_UP(spa));
  1636                  epfn = min_t(unsigned long, first_deferred_pfn, 
PFN_DOWN(epa));
  1637                  deferred_free_pages(nid, zid, spfn, epfn);
  1638  
  1639                  if (first_deferred_pfn == epfn)
  1640                          break;
  1641          }
  1642          WRITE_ONCE(pgdat->first_deferred_pfn, first_deferred_pfn);
  1643          spin_unlock(&deferred_zone_grow_lock);
  1644  
  1645          return nr_pages >= nr_pages_needed;
  1646  }
  1647  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to