[vhost:linux-next 15/15] include/linux/page_reporting.h:10:34: error: 'HUGETLB_PAGE_ORDER' undeclared; did you mean 'IOREMAP_MAX_ORDER'?

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

 



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

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@xxxxxxxxxxxxxxx>
:::::: CC: Michael S. Tsirkin <mst@xxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux