All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [feng:master 9/10] mm/page_alloc.c:4754:6: error: 'watchdog_thresh' undeclared; did you mean 'proc_watchdog_thresh'?
Date: Sun, 17 Nov 2019 17:16:32 +0800	[thread overview]
Message-ID: <201911171730.QKFD5cRG%lkp@intel.com> (raw)

[-- 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 --]

                 reply	other threads:[~2019-11-17  9:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201911171730.QKFD5cRG%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.