[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] xen/balloon: fix page onlining when populating new zone



Hi Juergen,

I love your patch! Yet something to improve:

[auto build test ERROR on xen-tip/linux-next]
[also build test ERROR on linus/master linux/master v5.18-rc1 next-20220406]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/intel-lab-lkp/linux/commits/Juergen-Gross/xen-balloon-fix-page-onlining-when-populating-new-zone/20220407-000935
base:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
config: arm64-randconfig-r011-20220406 
(https://download.01.org/0day-ci/archive/20220407/202204071359.uas4tsu0-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/intel-lab-lkp/linux/commit/b3deb59d5386ade4fb227038f202a9bdb8ade4ab
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Juergen-Gross/xen-balloon-fix-page-onlining-when-populating-new-zone/20220407-000935
        git checkout b3deb59d5386ade4fb227038f202a9bdb8ade4ab
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross 
O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   drivers/xen/balloon.c: In function 'decrease_reservation':
>> drivers/xen/balloon.c:518:24: error: implicit declaration of function 
>> 'alloc_page_for_balloon' [-Werror=implicit-function-declaration]
     518 |                 page = alloc_page_for_balloon(gfp);
         |                        ^~~~~~~~~~~~~~~~~~~~~~
   drivers/xen/balloon.c:518:22: warning: assignment to 'struct page *' from 
'int' makes pointer from integer without a cast [-Wint-conversion]
     518 |                 page = alloc_page_for_balloon(gfp);
         |                      ^
>> drivers/xen/balloon.c:545:17: error: implicit declaration of function 
>> 'add_page_to_balloon' [-Werror=implicit-function-declaration]
     545 |                 add_page_to_balloon(page);
         |                 ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/alloc_page_for_balloon +518 drivers/xen/balloon.c

   505  
   506  static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t 
gfp)
   507  {
   508          enum bp_state state = BP_DONE;
   509          unsigned long i;
   510          struct page *page, *tmp;
   511          int ret;
   512          LIST_HEAD(pages);
   513  
   514          if (nr_pages > ARRAY_SIZE(frame_list))
   515                  nr_pages = ARRAY_SIZE(frame_list);
   516  
   517          for (i = 0; i < nr_pages; i++) {
 > 518                  page = alloc_page_for_balloon(gfp);
   519                  if (page == NULL) {
   520                          nr_pages = i;
   521                          state = BP_EAGAIN;
   522                          break;
   523                  }
   524                  list_add(&page->lru, &pages);
   525          }
   526  
   527          /*
   528           * Ensure that ballooned highmem pages don't have kmaps.
   529           *
   530           * Do this before changing the p2m as kmap_flush_unused()
   531           * reads PTEs to obtain pages (and hence needs the original
   532           * p2m entry).
   533           */
   534          kmap_flush_unused();
   535  
   536          /*
   537           * Setup the frame, update direct mapping, invalidate P2M,
   538           * and add to balloon.
   539           */
   540          i = 0;
   541          list_for_each_entry_safe(page, tmp, &pages, lru) {
   542                  frame_list[i++] = xen_page_to_gfn(page);
   543  
   544                  list_del(&page->lru);
 > 545                  add_page_to_balloon(page);
   546          }
   547  
   548          flush_tlb_all();
   549  
   550          ret = xenmem_reservation_decrease(nr_pages, frame_list);
   551          BUG_ON(ret != nr_pages);
   552  
   553          balloon_stats.current_pages -= nr_pages;
   554  
   555          return state;
   556  }
   557  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.