All of lore.kernel.org
 help / color / mirror / Atom feed
* [feng:master 9/10] mm/page_alloc.c:4754:6: error: 'watchdog_thresh' undeclared; did you mean 'proc_watchdog_thresh'?
@ 2019-11-17  9:16 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-11-17  9:16 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 6830 bytes --]

tree:   feng/master
head:   7f07deef84904cb8c59e98cceb96e2dfcf2f8a61
commit: 81a18a0094e510662c7d1cb83f11dcef48736469 [9/10] page_alloc: add debug
config: arm64-randconfig-a001-20191117 (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 81a18a0094e510662c7d1cb83f11dcef48736469
        # 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@intel.com>

All errors (new ones prefixed by >>):

   mm/page_alloc.c: In function '__alloc_pages_nodemask':
>> mm/page_alloc.c:4754:6: error: 'watchdog_thresh' undeclared (first use in this function); did you mean 'proc_watchdog_thresh'?
     if (watchdog_thresh == 20) {
         ^~~~~~~~~~~~~~~
         proc_watchdog_thresh
   mm/page_alloc.c:4754:6: note: each undeclared identifier is reported only once for each function it appears in
   In file included from include/asm-generic/bug.h:19:0,
                    from arch/arm64/include/asm/bug.h:26,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/mm.h:9,
                    from mm/page_alloc.c:19:
   mm/page_alloc.c:4759:33: error: 'struct zone' has no member named 'node'; did you mean 'name'?
        ac.preferred_zoneref->zone->node,
                                    ^
   include/linux/kernel.h:816:40: note: in definition of macro '__trace_printk_check_format'
      ____trace_printk_check_format(fmt, ##args);  \
                                           ^~~~
   include/linux/kernel.h:853:3: note: in expansion of macro 'do_trace_printk'
      do_trace_printk(fmt, ##__VA_ARGS__); \
      ^~~~~~~~~~~~~~~
   include/linux/kernel.h:130:9: note: in expansion of macro 'trace_printk'
            trace_printk(KERN_ERR "" f "\n",##x)
            ^~~~~~~~~~~~
   mm/page_alloc.c:4758:4: note: in expansion of macro 'mtp'
       mtp("ac->pref: node[%d].zone[%d] nodemask=0x%x order=%d",
       ^~~
   mm/page_alloc.c:4759:33: error: 'struct zone' has no member named 'node'; did you mean 'name'?
        ac.preferred_zoneref->zone->node,
                                    ^
   include/linux/kernel.h:867:50: note: in definition of macro 'do_trace_printk'
      __trace_bprintk(_THIS_IP_, trace_printk_fmt, ##args); \
                                                     ^~~~
   include/linux/kernel.h:130:9: note: in expansion of macro 'trace_printk'
            trace_printk(KERN_ERR "" f "\n",##x)
            ^~~~~~~~~~~~
   mm/page_alloc.c:4758:4: note: in expansion of macro 'mtp'
       mtp("ac->pref: node[%d].zone[%d] nodemask=0x%x order=%d",
       ^~~
   mm/page_alloc.c:4759:33: error: 'struct zone' has no member named 'node'; did you mean 'name'?
        ac.preferred_zoneref->zone->node,
                                    ^
   include/linux/kernel.h:869:36: note: in definition of macro 'do_trace_printk'
      __trace_printk(_THIS_IP_, fmt, ##args);   \
                                       ^~~~
   include/linux/kernel.h:130:9: note: in expansion of macro 'trace_printk'
            trace_printk(KERN_ERR "" f "\n",##x)
            ^~~~~~~~~~~~
   mm/page_alloc.c:4758:4: note: in expansion of macro 'mtp'
       mtp("ac->pref: node[%d].zone[%d] nodemask=0x%x order=%d",
       ^~~

vim +4754 mm/page_alloc.c

  4717	
  4718	/*
  4719	 * This is the 'heart' of the zoned buddy allocator.
  4720	 */
  4721	struct page *
  4722	__alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, int preferred_nid,
  4723								nodemask_t *nodemask)
  4724	{
  4725		struct page *page;
  4726		unsigned int alloc_flags = ALLOC_WMARK_LOW;
  4727		gfp_t alloc_mask; /* The gfp_t that was actually used for allocation */
  4728		struct alloc_context ac = { };
  4729	
  4730		static unsigned long loop;
  4731	
  4732		/*
  4733		 * There are several places where we assume that the order value is sane
  4734		 * so bail out early if the request is out of bound.
  4735		 */
  4736		if (unlikely(order >= MAX_ORDER)) {
  4737			WARN_ON_ONCE(!(gfp_mask & __GFP_NOWARN));
  4738			return NULL;
  4739		}
  4740	
  4741		gfp_mask &= gfp_allowed_mask;
  4742		alloc_mask = gfp_mask;
  4743		if (!prepare_alloc_pages(gfp_mask, order, preferred_nid, nodemask, &ac, &alloc_mask, &alloc_flags))
  4744			return NULL;
  4745	
  4746		finalise_ac(gfp_mask, &ac);
  4747	
  4748		/*
  4749		 * Forbid the first pass from falling back to types that fragment
  4750		 * memory until all local zones are considered.
  4751		 */
  4752		alloc_flags |= alloc_flags_nofragment(ac.preferred_zoneref->zone, gfp_mask);
  4753	
> 4754		if (watchdog_thresh == 20) {
  4755	
  4756			if (loop % 4096 == 0) {
  4757			
  4758				mtp("ac->pref: node[%d].zone[%d] nodemask=0x%x order=%d",
  4759					ac.preferred_zoneref->zone->node,
  4760					ac.preferred_zoneref->zone_idx,
  4761					*((unsigned long *)ac.nodemask),
  4762					order
  4763					);
  4764	
  4765			}
  4766	
  4767			loop++;
  4768	
  4769		}
  4770	
  4771		/* First allocation attempt */
  4772		page = get_page_from_freelist(alloc_mask, order, alloc_flags, &ac);
  4773		if (likely(page))
  4774			goto out;
  4775	
  4776		/*
  4777		 * Apply scoped allocation constraints. This is mainly about GFP_NOFS
  4778		 * resp. GFP_NOIO which has to be inherited for all allocation requests
  4779		 * from a particular context which has been marked by
  4780		 * memalloc_no{fs,io}_{save,restore}.
  4781		 */
  4782		alloc_mask = current_gfp_context(gfp_mask);
  4783		ac.spread_dirty_pages = false;
  4784	
  4785		/*
  4786		 * Restore the original nodemask if it was potentially replaced with
  4787		 * &cpuset_current_mems_allowed to optimize the fast-path attempt.
  4788		 */
  4789		if (unlikely(ac.nodemask != nodemask))
  4790			ac.nodemask = nodemask;
  4791	
  4792		page = __alloc_pages_slowpath(alloc_mask, order, &ac);
  4793	
  4794	out:
  4795		if (memcg_kmem_enabled() && (gfp_mask & __GFP_ACCOUNT) && page &&
  4796		    unlikely(__memcg_kmem_charge(page, gfp_mask, order) != 0)) {
  4797			__free_pages(page, order);
  4798			page = NULL;
  4799		}
  4800	
  4801		trace_mm_page_alloc(page, order, alloc_mask, ac.migratetype);
  4802	
  4803		return page;
  4804	}
  4805	EXPORT_SYMBOL(__alloc_pages_nodemask);
  4806	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28324 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-11-17  9:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-17  9:16 [feng:master 9/10] mm/page_alloc.c:4754:6: error: 'watchdog_thresh' undeclared; did you mean 'proc_watchdog_thresh'? kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.