tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/mst/vhost.git 
linux-next
head:   c5db5a8d998da36ada7287aa53b4ed501a0a2b2b
commit: c5db5a8d998da36ada7287aa53b4ed501a0a2b2b [15/15] virtio-balloon: Add 
support for providing unused page reports to host
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.4.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout c5db5a8d998da36ada7287aa53b4ed501a0a2b2b
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=arm64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All error/warnings (new ones prefixed by >>):

   arch/arm64/Makefile:56: CROSS_COMPILE_COMPAT not defined or empty, the 
compat vDSO will not be built
   arch/arm64/Makefile:56: CROSS_COMPILE_COMPAT not defined or empty, the 
compat vDSO will not be built
   In file included from include/linux/mmzone.h:775:0,
                    from include/linux/gfp.h:6,
                    from include/linux/xarray.h:14,
                    from include/linux/radix-tree.h:18,
                    from include/linux/idr.h:15,
                    from include/linux/kernfs.h:13,
                    from include/linux/sysfs.h:16,
                    from include/linux/kobject.h:20,
                    from include/linux/of.h:17,
                    from include/linux/irqdomain.h:35,
                    from include/linux/acpi.h:13,
                    from include/acpi/apei.h:9,
                    from include/acpi/ghes.h:5,
                    from include/linux/arm_sdei.h:14,
                    from arch/arm64/kernel/asm-offsets.c:10:
   include/linux/page_reporting.h:9:37: warning: "HUGETLB_PAGE_ORDER" is not 
defined, evaluates to 0 [-Wundef]
    #if defined(CONFIG_HUGETLB_PAGE) && HUGETLB_PAGE_ORDER < MAX_ORDER
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/page_reporting.h: In function 'get_unreported_tail':
>> include/linux/page_reporting.h:10:34: error: 'HUGETLB_PAGE_ORDER' undeclared 
>> (first use in this function); did you mean 'IOREMAP_MAX_ORDER'?
    #define PAGE_REPORTING_MIN_ORDER HUGETLB_PAGE_ORDER
                                     ^
>> include/linux/page_reporting.h:72:15: note: in expansion of macro 
>> 'PAGE_REPORTING_MIN_ORDER'
     if (order >= PAGE_REPORTING_MIN_ORDER &&
                  ^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/page_reporting.h:10:34: note: each undeclared identifier is 
reported only once for each function it appears in
    #define PAGE_REPORTING_MIN_ORDER HUGETLB_PAGE_ORDER
                                     ^
>> include/linux/page_reporting.h:72:15: note: in expansion of macro 
>> 'PAGE_REPORTING_MIN_ORDER'
     if (order >= PAGE_REPORTING_MIN_ORDER &&
                  ^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/page_reporting.h: In function 'add_page_to_reported_list':
>> include/linux/page_reporting.h:10:34: error: 'HUGETLB_PAGE_ORDER' undeclared 
>> (first use in this function); did you mean 'IOREMAP_MAX_ORDER'?
    #define PAGE_REPORTING_MIN_ORDER HUGETLB_PAGE_ORDER
                                     ^
   include/linux/page_reporting.h:94:31: note: in expansion of macro 
'PAGE_REPORTING_MIN_ORDER'
     zone->reported_pages[order - PAGE_REPORTING_MIN_ORDER]++;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/page_reporting.h: In function 'del_page_from_reported_list':
>> include/linux/page_reporting.h:10:34: error: 'HUGETLB_PAGE_ORDER' undeclared 
>> (first use in this function); did you mean 'IOREMAP_MAX_ORDER'?
    #define PAGE_REPORTING_MIN_ORDER HUGETLB_PAGE_ORDER
                                     ^
   include/linux/page_reporting.h:110:44: note: in expansion of macro 
'PAGE_REPORTING_MIN_ORDER'
     zone->reported_pages[page_private(page) - PAGE_REPORTING_MIN_ORDER]--;
                                               ^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/page_reporting.h: In function 'page_reporting_notify_free':
>> include/linux/page_reporting.h:10:34: error: 'HUGETLB_PAGE_ORDER' undeclared 
>> (first use in this function); did you mean 'IOREMAP_MAX_ORDER'?
    #define PAGE_REPORTING_MIN_ORDER HUGETLB_PAGE_ORDER
                                     ^
   include/linux/page_reporting.h:158:14: note: in expansion of macro 
'PAGE_REPORTING_MIN_ORDER'
     if (order < PAGE_REPORTING_MIN_ORDER)
                 ^~~~~~~~~~~~~~~~~~~~~~~~
   make[2]: *** [arch/arm64/kernel/asm-offsets.s] Error 1
   make[2]: Target '__build' not remade because of errors.
   make[1]: *** [prepare0] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [sub-make] Error 2
   8 real  4 user  4 sys  96.33% cpu    make prepare

vim +10 include/linux/page_reporting.h

b1b0d638e6f93b Alexander Duyck 2019-09-06   8  
b1b0d638e6f93b Alexander Duyck 2019-09-06  @9  #if defined(CONFIG_HUGETLB_PAGE) 
&& HUGETLB_PAGE_ORDER < MAX_ORDER
b1b0d638e6f93b Alexander Duyck 2019-09-06 @10  #define PAGE_REPORTING_MIN_ORDER 
HUGETLB_PAGE_ORDER
b1b0d638e6f93b Alexander Duyck 2019-09-06  11  #else
b1b0d638e6f93b Alexander Duyck 2019-09-06  12  #define PAGE_REPORTING_MIN_ORDER 
(MAX_ORDER - 1)
b1b0d638e6f93b Alexander Duyck 2019-09-06  13  #endif
b1b0d638e6f93b Alexander Duyck 2019-09-06  14  #define PAGE_REPORTING_HWM       
        32
b1b0d638e6f93b Alexander Duyck 2019-09-06  15  
b1b0d638e6f93b Alexander Duyck 2019-09-06  16  #ifdef CONFIG_PAGE_REPORTING
b1b0d638e6f93b Alexander Duyck 2019-09-06  17  struct page_reporting_dev_info {
b1b0d638e6f93b Alexander Duyck 2019-09-06  18   /* function that alters pages 
to make them "reported" */
b1b0d638e6f93b Alexander Duyck 2019-09-06  19   void (*report)(struct 
page_reporting_dev_info *phdev,
b1b0d638e6f93b Alexander Duyck 2019-09-06  20                  unsigned int 
nents);
b1b0d638e6f93b Alexander Duyck 2019-09-06  21  
b1b0d638e6f93b Alexander Duyck 2019-09-06  22   /* scatterlist containing pages 
to be processed */
b1b0d638e6f93b Alexander Duyck 2019-09-06  23   struct scatterlist *sg;
b1b0d638e6f93b Alexander Duyck 2019-09-06  24  
b1b0d638e6f93b Alexander Duyck 2019-09-06  25   /*
b1b0d638e6f93b Alexander Duyck 2019-09-06  26    * Upper limit on the number of 
pages that the react function
b1b0d638e6f93b Alexander Duyck 2019-09-06  27    * expects to be placed into 
the batch list to be processed.
b1b0d638e6f93b Alexander Duyck 2019-09-06  28    */
b1b0d638e6f93b Alexander Duyck 2019-09-06  29   unsigned long capacity;
b1b0d638e6f93b Alexander Duyck 2019-09-06  30  
b1b0d638e6f93b Alexander Duyck 2019-09-06  31   /* work struct for processing 
reports */
b1b0d638e6f93b Alexander Duyck 2019-09-06  32   struct delayed_work work;
b1b0d638e6f93b Alexander Duyck 2019-09-06  33  
b1b0d638e6f93b Alexander Duyck 2019-09-06  34   /*
b1b0d638e6f93b Alexander Duyck 2019-09-06  35    * The number of zones 
requesting reporting, plus one additional if
b1b0d638e6f93b Alexander Duyck 2019-09-06  36    * processing thread is active.
b1b0d638e6f93b Alexander Duyck 2019-09-06  37    */
b1b0d638e6f93b Alexander Duyck 2019-09-06  38   atomic_t refcnt;
b1b0d638e6f93b Alexander Duyck 2019-09-06  39  };
b1b0d638e6f93b Alexander Duyck 2019-09-06  40  
b1b0d638e6f93b Alexander Duyck 2019-09-06  41  /* Boundary functions */
b1b0d638e6f93b Alexander Duyck 2019-09-06  42  struct list_head 
*__page_reporting_get_boundary(unsigned int order,
b1b0d638e6f93b Alexander Duyck 2019-09-06  43                                   
        int migratetype);
b1b0d638e6f93b Alexander Duyck 2019-09-06  44  void 
page_reporting_del_from_boundary(struct page *page, struct zone *zone);
b1b0d638e6f93b Alexander Duyck 2019-09-06  45  void 
page_reporting_add_to_boundary(struct page *page, struct zone *zone,
b1b0d638e6f93b Alexander Duyck 2019-09-06  46                               int 
migratetype);
b1b0d638e6f93b Alexander Duyck 2019-09-06  47  void 
page_reporting_move_to_boundary(struct page *page, struct zone *zone,
b1b0d638e6f93b Alexander Duyck 2019-09-06  48                                
int migratetype);
b1b0d638e6f93b Alexander Duyck 2019-09-06  49  
b1b0d638e6f93b Alexander Duyck 2019-09-06  50  /* Reported page accessors, 
defined in page_alloc.c */
b1b0d638e6f93b Alexander Duyck 2019-09-06  51  struct page 
*get_unreported_page(struct zone *zone, unsigned int order,
b1b0d638e6f93b Alexander Duyck 2019-09-06  52                            int 
migratetype);
b1b0d638e6f93b Alexander Duyck 2019-09-06  53  void free_reported_page(struct 
page *page, unsigned int order);
b1b0d638e6f93b Alexander Duyck 2019-09-06  54  
b1b0d638e6f93b Alexander Duyck 2019-09-06  55  /* Tear-down and bring-up for 
page reporting devices */
b1b0d638e6f93b Alexander Duyck 2019-09-06  56  void 
page_reporting_shutdown(struct page_reporting_dev_info *phdev);
b1b0d638e6f93b Alexander Duyck 2019-09-06  57  int 
page_reporting_startup(struct page_reporting_dev_info *phdev);
b1b0d638e6f93b Alexander Duyck 2019-09-06  58  
b1b0d638e6f93b Alexander Duyck 2019-09-06  59  void 
__page_reporting_free_stats(struct zone *zone);
b1b0d638e6f93b Alexander Duyck 2019-09-06  60  void 
__page_reporting_request(struct zone *zone);
b1b0d638e6f93b Alexander Duyck 2019-09-06  61  #endif /* CONFIG_PAGE_REPORTING 
*/
b1b0d638e6f93b Alexander Duyck 2019-09-06  62  
b1b0d638e6f93b Alexander Duyck 2019-09-06  63  /*
b1b0d638e6f93b Alexander Duyck 2019-09-06  64   * Method for obtaining the tail 
of the free list. Using this allows for
b1b0d638e6f93b Alexander Duyck 2019-09-06  65   * tail insertions of unreported 
pages into the region that is currently
b1b0d638e6f93b Alexander Duyck 2019-09-06  66   * being scanned so as to avoid 
interleaving reported and unreported pages.
b1b0d638e6f93b Alexander Duyck 2019-09-06  67   */
b1b0d638e6f93b Alexander Duyck 2019-09-06  68  static inline struct list_head *
b1b0d638e6f93b Alexander Duyck 2019-09-06  69  get_unreported_tail(struct zone 
*zone, unsigned int order, int migratetype)
b1b0d638e6f93b Alexander Duyck 2019-09-06  70  {
b1b0d638e6f93b Alexander Duyck 2019-09-06  71  #ifdef CONFIG_PAGE_REPORTING
b1b0d638e6f93b Alexander Duyck 2019-09-06 @72   if (order >= 
PAGE_REPORTING_MIN_ORDER &&
b1b0d638e6f93b Alexander Duyck 2019-09-06  73       
test_bit(ZONE_PAGE_REPORTING_ACTIVE, &zone->flags))
b1b0d638e6f93b Alexander Duyck 2019-09-06  74           return 
__page_reporting_get_boundary(order, migratetype);
b1b0d638e6f93b Alexander Duyck 2019-09-06  75  #endif
b1b0d638e6f93b Alexander Duyck 2019-09-06  76   return 
&zone->free_area[order].free_list[migratetype];
b1b0d638e6f93b Alexander Duyck 2019-09-06  77  }
b1b0d638e6f93b Alexander Duyck 2019-09-06  78  

:::::: The code at line 10 was first introduced by commit
:::::: b1b0d638e6f93b91cf34585350bb00035d066989 mm: Introduce Reported pages

:::::: TO: Alexander Duyck <alexander.h.du...@linux.intel.com>
:::::: CC: Michael S. Tsirkin <m...@redhat.com>

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to