lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <201706180243.lLMWx4WE%fengguang.wu@intel.com>
Date:   Sun, 18 Jun 2017 02:28:04 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Johannes Weiner <hannes@...xchg.org>
Cc:     kbuild-all@...org, Andrew Morton <akpm@...ux-foundation.org>,
        Guenter Roeck <private@...ck-us.net>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: mm-memcontrol-per-lruvec-stats-infrastructure-fix-4

Hi Johannes,

[auto build test ERROR on next-20170616]
[cannot apply to linus/master linux/master v4.9-rc8 v4.9-rc7 v4.9-rc6 v4.12-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Johannes-Weiner/mm-memcontrol-per-lruvec-stats-infrastructure-fix-4/20170618-012558
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.3.0-18) 6.3.0 20170516
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

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

   In file included from include/linux/mm.h:1032:0,
                    from include/linux/highmem.h:7,
                    from include/linux/bio.h:21,
                    from include/linux/writeback.h:205,
                    from include/linux/memcontrol.h:28,
                    from include/linux/swap.h:8,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
   include/linux/vmstat.h: In function 'lruvec_page_state':
>> include/linux/vmstat.h:362:6: error: implicit declaration of function 'mem_cgroup_disabled' [-Werror=implicit-function-declaration]
     if (mem_cgroup_disabled())
         ^~~~~~~~~~~~~~~~~~~
   In file included from arch/x86/include/asm/atomic.h:4:0,
                    from include/linux/atomic.h:4,
                    from include/linux/crypto.h:20,
                    from arch/x86/kernel/asm-offsets.c:8:
>> include/linux/kernel.h:859:51: error: dereferencing pointer to incomplete type 'struct mem_cgroup_per_node'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                                      ^
   include/linux/compiler.h:517:19: note: in definition of macro '__compiletime_assert'
      bool __cond = !(condition);    \
                      ^~~~~~~~~
   include/linux/compiler.h:537:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:46:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:859:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:859:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
>> include/linux/vmstat.h:365:7: note: in expansion of macro 'container_of'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
          ^~~~~~~~~~~~
   In file included from include/linux/compiler.h:58:0,
                    from arch/x86/include/asm/atomic.h:4,
                    from include/linux/atomic.h:4,
                    from include/linux/crypto.h:20,
                    from arch/x86/kernel/asm-offsets.c:8:
>> include/linux/vmstat.h:365:35: error: invalid use of undefined type 'struct mem_cgroup_per_node'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
                                      ^
   include/linux/compiler-gcc.h:161:21: note: in definition of macro '__compiler_offsetof'
     __builtin_offsetof(a, b)
                        ^
   include/linux/kernel.h:862:28: note: in expansion of macro 'offsetof'
     ((type *)((char *)(ptr) - offsetof(type, member))); })
                               ^~~~~~~~
>> include/linux/vmstat.h:365:7: note: in expansion of macro 'container_of'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
          ^~~~~~~~~~~~
   In file included from arch/x86/include/asm/atomic.h:4:0,
                    from include/linux/atomic.h:4,
                    from include/linux/crypto.h:20,
                    from arch/x86/kernel/asm-offsets.c:8:
   include/linux/vmstat.h: In function '__mod_lruvec_state':
>> include/linux/kernel.h:859:51: error: dereferencing pointer to incomplete type 'struct mem_cgroup_per_node'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                                      ^
   include/linux/compiler.h:517:19: note: in definition of macro '__compiletime_assert'
      bool __cond = !(condition);    \
                      ^~~~~~~~~
   include/linux/compiler.h:537:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:46:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:859:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:859:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   include/linux/vmstat.h:383:7: note: in expansion of macro 'container_of'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
          ^~~~~~~~~~~~
   In file included from include/linux/compiler.h:58:0,
                    from arch/x86/include/asm/atomic.h:4,
                    from include/linux/atomic.h:4,
                    from include/linux/crypto.h:20,
                    from arch/x86/kernel/asm-offsets.c:8:
   include/linux/vmstat.h:383:35: error: invalid use of undefined type 'struct mem_cgroup_per_node'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
                                      ^
   include/linux/compiler-gcc.h:161:21: note: in definition of macro '__compiler_offsetof'
     __builtin_offsetof(a, b)
                        ^
   include/linux/kernel.h:862:28: note: in expansion of macro 'offsetof'
     ((type *)((char *)(ptr) - offsetof(type, member))); })
                               ^~~~~~~~
   include/linux/vmstat.h:383:7: note: in expansion of macro 'container_of'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
          ^~~~~~~~~~~~
   In file included from include/linux/mm.h:1032:0,
                    from include/linux/highmem.h:7,
                    from include/linux/bio.h:21,
                    from include/linux/writeback.h:205,
                    from include/linux/memcontrol.h:28,
                    from include/linux/swap.h:8,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
>> include/linux/vmstat.h:384:2: error: implicit declaration of function '__mod_memcg_state' [-Werror=implicit-function-declaration]
     __mod_memcg_state(pn->memcg, idx, val);
     ^~~~~~~~~~~~~~~~~
   In file included from arch/x86/include/asm/atomic.h:4:0,
                    from include/linux/atomic.h:4,
                    from include/linux/crypto.h:20,
                    from arch/x86/kernel/asm-offsets.c:8:
   include/linux/vmstat.h: In function 'mod_lruvec_state':
>> include/linux/kernel.h:859:51: error: dereferencing pointer to incomplete type 'struct mem_cgroup_per_node'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                                      ^
   include/linux/compiler.h:517:19: note: in definition of macro '__compiletime_assert'
      bool __cond = !(condition);    \
                      ^~~~~~~~~
   include/linux/compiler.h:537:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:46:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:859:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:859:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   include/linux/vmstat.h:396:7: note: in expansion of macro 'container_of'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
          ^~~~~~~~~~~~
   In file included from include/linux/compiler.h:58:0,
                    from arch/x86/include/asm/atomic.h:4,
                    from include/linux/atomic.h:4,
                    from include/linux/crypto.h:20,
                    from arch/x86/kernel/asm-offsets.c:8:
   include/linux/vmstat.h:396:35: error: invalid use of undefined type 'struct mem_cgroup_per_node'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
                                      ^
   include/linux/compiler-gcc.h:161:21: note: in definition of macro '__compiler_offsetof'
     __builtin_offsetof(a, b)
                        ^
   include/linux/kernel.h:862:28: note: in expansion of macro 'offsetof'
     ((type *)((char *)(ptr) - offsetof(type, member))); })
                               ^~~~~~~~
   include/linux/vmstat.h:396:7: note: in expansion of macro 'container_of'
     pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
          ^~~~~~~~~~~~
   In file included from include/linux/mm.h:1032:0,
                    from include/linux/highmem.h:7,
                    from include/linux/bio.h:21,
                    from include/linux/writeback.h:205,
                    from include/linux/memcontrol.h:28,
                    from include/linux/swap.h:8,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
>> include/linux/vmstat.h:397:2: error: implicit declaration of function 'mod_memcg_state' [-Werror=implicit-function-declaration]
     mod_memcg_state(pn->memcg, idx, val);
     ^~~~~~~~~~~~~~~
   include/linux/vmstat.h: In function '__mod_lruvec_page_state':
>> include/linux/vmstat.h:410:23: error: dereferencing pointer to incomplete type 'struct mem_cgroup'
     pn = page->mem_cgroup->nodeinfo[page_to_nid(page)];
                          ^~
   In file included from include/asm-generic/percpu.h:6:0,
                    from arch/x86/include/asm/percpu.h:542,
                    from arch/x86/include/asm/preempt.h:5,
                    from include/linux/preempt.h:80,
                    from include/linux/spinlock.h:50,
                    from include/linux/mmzone.h:7,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:14,
                    from include/linux/crypto.h:24,
                    from arch/x86/kernel/asm-offsets.c:8:
>> include/linux/vmstat.h:411:19: error: dereferencing pointer to incomplete type 'struct mem_cgroup_per_node'
     __this_cpu_add(pn->lruvec_stat->count[idx], val);
                      ^
   include/linux/percpu-defs.h:206:47: note: in definition of macro '__verify_pcpu_ptr'
     const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \
                                                  ^~~
>> include/linux/percpu-defs.h:409:32: note: in expansion of macro '__pcpu_size_call'
    #define raw_cpu_add(pcp, val)  __pcpu_size_call(raw_cpu_add_, pcp, val)
                                   ^~~~~~~~~~~~~~~~
>> include/linux/percpu-defs.h:445:2: note: in expansion of macro 'raw_cpu_add'
     raw_cpu_add(pcp, val);      \
     ^~~~~~~~~~~
   include/linux/vmstat.h:411:2: note: in expansion of macro '__this_cpu_add'
     __this_cpu_add(pn->lruvec_stat->count[idx], val);
     ^~~~~~~~~~~~~~
   include/linux/vmstat.h: In function 'mod_lruvec_page_state':
   include/linux/vmstat.h:424:17: error: dereferencing pointer to incomplete type 'struct mem_cgroup_per_node'
     this_cpu_add(pn->lruvec_stat->count[idx], val);
                    ^
   include/linux/percpu-defs.h:206:47: note: in definition of macro '__verify_pcpu_ptr'
     const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \
                                                  ^~~
   include/linux/percpu-defs.h:496:33: note: in expansion of macro '__pcpu_size_call'
    #define this_cpu_add(pcp, val)  __pcpu_size_call(this_cpu_add_, pcp, val)
                                    ^~~~~~~~~~~~~~~~
   include/linux/vmstat.h:424:2: note: in expansion of macro 'this_cpu_add'
     this_cpu_add(pn->lruvec_stat->count[idx], val);
     ^~~~~~~~~~~~
   In file included from include/linux/swap.h:8:0,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
   include/linux/memcontrol.h: At top level:
>> include/linux/memcontrol.h:267:20: error: conflicting types for 'mem_cgroup_disabled'
    static inline bool mem_cgroup_disabled(void)
                       ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/mm.h:1032:0,
                    from include/linux/highmem.h:7,
                    from include/linux/bio.h:21,
                    from include/linux/writeback.h:205,
                    from include/linux/memcontrol.h:28,
                    from include/linux/swap.h:8,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
   include/linux/vmstat.h:362:6: note: previous implicit declaration of 'mem_cgroup_disabled' was here
     if (mem_cgroup_disabled())
         ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/swap.h:8:0,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
>> include/linux/memcontrol.h:502:20: warning: conflicting types for '__mod_memcg_state'
    static inline void __mod_memcg_state(struct mem_cgroup *memcg,
                       ^~~~~~~~~~~~~~~~~
>> include/linux/memcontrol.h:502:20: error: static declaration of '__mod_memcg_state' follows non-static declaration
   In file included from include/linux/mm.h:1032:0,
                    from include/linux/highmem.h:7,
                    from include/linux/bio.h:21,
                    from include/linux/writeback.h:205,
                    from include/linux/memcontrol.h:28,
                    from include/linux/swap.h:8,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
   include/linux/vmstat.h:384:2: note: previous implicit declaration of '__mod_memcg_state' was here
     __mod_memcg_state(pn->memcg, idx, val);
     ^~~~~~~~~~~~~~~~~
   In file included from include/linux/swap.h:8:0,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
>> include/linux/memcontrol.h:509:20: warning: conflicting types for 'mod_memcg_state'
    static inline void mod_memcg_state(struct mem_cgroup *memcg,
                       ^~~~~~~~~~~~~~~
>> include/linux/memcontrol.h:509:20: error: static declaration of 'mod_memcg_state' follows non-static declaration
   In file included from include/linux/mm.h:1032:0,
                    from include/linux/highmem.h:7,
                    from include/linux/bio.h:21,
                    from include/linux/writeback.h:205,
                    from include/linux/memcontrol.h:28,
                    from include/linux/swap.h:8,
                    from include/linux/suspend.h:4,
                    from arch/x86/kernel/asm-offsets.c:12:
   include/linux/vmstat.h:397:2: note: previous implicit declaration of 'mod_memcg_state' was here
     mod_memcg_state(pn->memcg, idx, val);
     ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   make[2]: *** [arch/x86/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

vim +/mem_cgroup_disabled +362 include/linux/vmstat.h

   356						      enum node_stat_item idx)
   357	{
   358		struct mem_cgroup_per_node *pn;
   359		long val = 0;
   360		int cpu;
   361	
 > 362		if (mem_cgroup_disabled())
   363			return node_page_state(lruvec_pgdat(lruvec), idx);
   364	
 > 365		pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
   366		for_each_possible_cpu(cpu)
   367			val += per_cpu(pn->lruvec_stat->count[idx], cpu);
   368	
   369		if (val < 0)
   370			val = 0;
   371	
   372		return val;
   373	}
   374	
   375	static inline void __mod_lruvec_state(struct lruvec *lruvec,
   376					      enum node_stat_item idx, int val)
   377	{
   378		struct mem_cgroup_per_node *pn;
   379	
   380		__mod_node_page_state(lruvec_pgdat(lruvec), idx, val);
   381		if (mem_cgroup_disabled())
   382			return;
   383		pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
 > 384		__mod_memcg_state(pn->memcg, idx, val);
   385		__this_cpu_add(pn->lruvec_stat->count[idx], val);
   386	}
   387	
   388	static inline void mod_lruvec_state(struct lruvec *lruvec,
   389					    enum node_stat_item idx, int val)
   390	{
   391		struct mem_cgroup_per_node *pn;
   392	
   393		mod_node_page_state(lruvec_pgdat(lruvec), idx, val);
   394		if (mem_cgroup_disabled())
   395			return;
   396		pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec);
 > 397		mod_memcg_state(pn->memcg, idx, val);
   398		this_cpu_add(pn->lruvec_stat->count[idx], val);
   399	}
   400	
   401	static inline void __mod_lruvec_page_state(struct page *page,
   402						   enum node_stat_item idx, int val)
   403	{
   404		struct mem_cgroup_per_node *pn;
   405	
   406		__mod_node_page_state(page_pgdat(page), idx, val);
   407		if (mem_cgroup_disabled() || !page->mem_cgroup)
   408			return;
   409		__mod_memcg_state(page->mem_cgroup, idx, val);
 > 410		pn = page->mem_cgroup->nodeinfo[page_to_nid(page)];
 > 411		__this_cpu_add(pn->lruvec_stat->count[idx], val);
   412	}
   413	
   414	static inline void mod_lruvec_page_state(struct page *page,

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

Download attachment ".config.gz" of type "application/gzip" (60551 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ