Re: mm-memcontrol-per-lruvec-stats-infrastructure-fix-4

From: kbuild test robot
Date: Sat Jun 17 2017 - 14:12:22 EST


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-randconfig-i0-201725 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

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

scripts/Makefile.kasan:25: CONFIG_KASAN: compiler does not support all options. Trying minimal configuration
scripts/Makefile.kasan:25: CONFIG_KASAN: compiler does not support all options. Trying minimal configuration
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:2: 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
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 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:367:20: error: dereferencing pointer to incomplete type
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
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:256:29: note: in expansion of macro 'per_cpu_ptr'
#define per_cpu(var, cpu) (*per_cpu_ptr(&(var), cpu))
^
>> include/linux/vmstat.h:367:10: note: in expansion of macro 'per_cpu'
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
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:367:20: error: dereferencing pointer to incomplete type
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
include/linux/compiler-gcc.h:52:34: note: in definition of macro 'RELOC_HIDE'
__asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
^
include/linux/percpu-defs.h:223:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
SHIFT_PERCPU_PTR((ptr), per_cpu_offset((cpu))); \
^
include/linux/percpu-defs.h:256:29: note: in expansion of macro 'per_cpu_ptr'
#define per_cpu(var, cpu) (*per_cpu_ptr(&(var), cpu))
^
>> include/linux/vmstat.h:367:10: note: in expansion of macro 'per_cpu'
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
>> include/linux/vmstat.h:367:20: error: dereferencing pointer to incomplete type
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
include/linux/compiler-gcc.h:52:34: note: in definition of macro 'RELOC_HIDE'
__asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
^
include/linux/percpu-defs.h:223:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
SHIFT_PERCPU_PTR((ptr), per_cpu_offset((cpu))); \
^
include/linux/percpu-defs.h:256:29: note: in expansion of macro 'per_cpu_ptr'
#define per_cpu(var, cpu) (*per_cpu_ptr(&(var), cpu))
^
>> include/linux/vmstat.h:367:10: note: in expansion of macro 'per_cpu'
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
>> include/linux/vmstat.h:367:20: error: dereferencing pointer to incomplete type
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
include/linux/compiler-gcc.h:53:10: note: in definition of macro 'RELOC_HIDE'
(typeof(ptr)) (__ptr + (off)); \
^
include/linux/percpu-defs.h:223:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
SHIFT_PERCPU_PTR((ptr), per_cpu_offset((cpu))); \
^
include/linux/percpu-defs.h:256:29: note: in expansion of macro 'per_cpu_ptr'
#define per_cpu(var, cpu) (*per_cpu_ptr(&(var), cpu))
^
>> include/linux/vmstat.h:367:10: note: in expansion of macro 'per_cpu'
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
>> include/linux/vmstat.h:367:20: error: dereferencing pointer to incomplete type
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
include/linux/compiler-gcc.h:53:10: note: in definition of macro 'RELOC_HIDE'
(typeof(ptr)) (__ptr + (off)); \
^
include/linux/percpu-defs.h:223:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
SHIFT_PERCPU_PTR((ptr), per_cpu_offset((cpu))); \
^
include/linux/percpu-defs.h:256:29: note: in expansion of macro 'per_cpu_ptr'
#define per_cpu(var, cpu) (*per_cpu_ptr(&(var), cpu))
^
>> include/linux/vmstat.h:367:10: note: in expansion of macro 'per_cpu'
val += per_cpu(pn->lruvec_stat->count[idx], cpu);
^
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
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);
^
include/linux/vmstat.h:384:22: error: dereferencing pointer to incomplete type
__mod_memcg_state(pn->memcg, idx, val);
^
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:385:19: error: dereferencing pointer to incomplete type
__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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/percpu-defs.h:363:16: note: in definition of macro '__pcpu_size_call'
switch(sizeof(variable)) { \
^
include/linux/percpu-defs.h:445:2: note: in expansion of macro 'raw_cpu_add'
raw_cpu_add(pcp, val); \
^
include/linux/vmstat.h:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
In file included from arch/x86/include/asm/preempt.h:5:0,
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:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:128:17: note: in definition of macro 'percpu_add_op'
typedef typeof(var) pao_T__; \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:137:17: note: in definition of macro 'percpu_add_op'
switch (sizeof(var)) { \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:140:39: note: in definition of macro 'percpu_add_op'
asm("incb "__percpu_arg(0) : "+m" (var)); \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:142:39: note: in definition of macro 'percpu_add_op'
asm("decb "__percpu_arg(0) : "+m" (var)); \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:145:16: note: in definition of macro 'percpu_add_op'
: "+m" (var) \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:150:39: note: in definition of macro 'percpu_add_op'
asm("incw "__percpu_arg(0) : "+m" (var)); \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:152:39: note: in definition of macro 'percpu_add_op'
asm("decw "__percpu_arg(0) : "+m" (var)); \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:155:16: note: in definition of macro 'percpu_add_op'
: "+m" (var) \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:160:39: note: in definition of macro 'percpu_add_op'
asm("incl "__percpu_arg(0) : "+m" (var)); \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:162:39: note: in definition of macro 'percpu_add_op'
asm("decl "__percpu_arg(0) : "+m" (var)); \
^
>> include/linux/percpu-defs.h:364:11: note: in expansion of macro 'raw_cpu_add_1'
case 1: stem##1(variable, __VA_ARGS__);break; \
^
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:385:2: note: in expansion of macro '__this_cpu_add'
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
include/linux/vmstat.h:385:19: error: dereferencing pointer to incomplete type
__this_cpu_add(pn->lruvec_stat->count[idx], val);
^
arch/x86/include/asm/percpu.h:165:16: note: in definition of macro 'percpu_add_op'
: "+m" (var) \
^

vim +367 include/linux/vmstat.h

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;

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

Attachment: .config.gz
Description: application/gzip