kbuild test robot
2019-Sep-06  18:47 UTC
[vhost:linux-next 15/15] include/linux/page_reporting.h:10:34: error: 'HUGETLB_PAGE_ORDER' undeclared; did you mean 'IOREMAP_MAX_ORDER'?
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 <lkp at 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.duyck at linux.intel.com>
:::::: CC: Michael S. Tsirkin <mst at redhat.com>
---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 45258 bytes
Desc: not available
URL:
<http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20190907/d30731e1/attachment-0001.bin>
Possibly Parallel Threads
- [vhost:linux-next 16/17] include/linux/page_reporting.h:9:34: note: in expansion of macro 'pageblock_order'
- [vhost:linux-next 13/15] arch/ia64/include/asm/page.h:51:23: warning: "hpage_shift" is not defined, evaluates to 0
- [vhost:linux-next 14/17] include/linux/mmzone.h:815:3: error: implicit declaration of function 'move_page_to_reported_list'; did you mean 'move_to_free_list'?
- [PATCH v2 resubmit] virtio-balloon: Disable free page reporting if page poison reporting is not enabled
- [Bug 3603] New: ssh clients can't communicate with server with default cipher when fips is enabled at server end
