Hi Peter,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on mmotm/master]
[also build test ERROR on v4.15-rc1 next-20171127]
[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/Peter-Enderborg/mm-Add-watermark-slope-for-high-mark/20171127-140339
base:   git://git.cmpxchg.org/linux-mmotm.git master
config: i386-randconfig-s0-201748 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   mm/page_alloc.o: In function `__setup_per_zone_wmarks':
>> mm/page_alloc.c:7031: undefined reference to `__umoddi3'
>> mm/page_alloc.c:7031: undefined reference to `__udivdi3'
>> mm/page_alloc.c:7031: undefined reference to `__udivdi3'

vim +7031 mm/page_alloc.c

  6977  
  6978  static void __setup_per_zone_wmarks(void)
  6979  {
  6980          unsigned long pages_min = min_free_kbytes >> (PAGE_SHIFT - 10);
  6981          unsigned long lowmem_pages = 0;
  6982          struct zone *zone;
  6983          unsigned long flags;
  6984  
  6985          /* Calculate total number of !ZONE_HIGHMEM pages */
  6986          for_each_zone(zone) {
  6987                  if (!is_highmem(zone))
  6988                          lowmem_pages += zone->managed_pages;
  6989          }
  6990  
  6991          for_each_zone(zone) {
  6992                  u64 tmp;
  6993                  u64 tmp_high;
  6994  
  6995                  spin_lock_irqsave(&zone->lock, flags);
  6996                  tmp = (u64)pages_min * zone->managed_pages;
  6997                  do_div(tmp, lowmem_pages);
  6998                  if (is_highmem(zone)) {
  6999                          /*
  7000                           * __GFP_HIGH and PF_MEMALLOC allocations 
usually don't
  7001                           * need highmem pages, so cap pages_min to a 
small
  7002                           * value here.
  7003                           *
  7004                           * The WMARK_HIGH-WMARK_LOW and 
(WMARK_LOW-WMARK_MIN)
  7005                           * deltas control asynch page reclaim, and so 
should
  7006                           * not be capped for highmem.
  7007                           */
  7008                          unsigned long min_pages;
  7009  
  7010                          min_pages = zone->managed_pages / 1024;
  7011                          min_pages = clamp(min_pages, SWAP_CLUSTER_MAX, 
128UL);
  7012                          zone->watermark[WMARK_MIN] = min_pages;
  7013                  } else {
  7014                          /*
  7015                           * If it's a lowmem zone, reserve a number of 
pages
  7016                           * proportionate to the zone's size.
  7017                           */
  7018                          zone->watermark[WMARK_MIN] = tmp;
  7019                  }
  7020  
  7021                  /*
  7022                   * Set the kswapd watermarks distance according to the
  7023                   * scale factor in proportion to available memory, but
  7024                   * ensure a minimum size on small systems.
  7025                   */
  7026                  tmp = max_t(u64, tmp >> 2,
  7027                              mult_frac(zone->managed_pages,
  7028                                        watermark_scale_factor, 10000));
  7029  
  7030                  zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + 
tmp;
> 7031                  tmp_high = mult_frac(tmp, watermark_high_factor_slope, 
> 100);
  7032                  zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + 
tmp_high;
  7033  
  7034  
  7035                  spin_unlock_irqrestore(&zone->lock, flags);
  7036          }
  7037  
  7038          /* update totalreserve_pages */
  7039          calculate_totalreserve_pages();
  7040  }
  7041  

---
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