Re: [PATCH] mm/madvise: allow MADV_DONTNEED to free memory that is MLOCK_ONFAULT

From: kbuild test robot
Date: Sat Jun 09 2018 - 07:52:08 EST


Hi Jason,

I love your patch! Perhaps something to improve:

[auto build test WARNING on mmotm/master]
[also build test WARNING on v4.17 next-20180608]
[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/Jason-Baron/mm-madvise-allow-MADV_DONTNEED-to-free-memory-that-is-MLOCK_ONFAULT/20180609-185549
base: git://git.cmpxchg.org/linux-mmotm.git master
config: alpha-allmodconfig (attached as .config)
compiler: alpha-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=alpha

All warnings (new ones prefixed by >>):

In file included from mm//internal.h:18:0,
from mm//swap.c:39:
include/uapi/asm-generic/mman-common.h:22:0: warning: "MAP_FIXED" redefined
#define MAP_FIXED 0x10 /* Interpret addr exactly */

In file included from include/uapi/linux/mman.h:5:0,
from include/linux/mman.h:9,
from mm//swap.c:20:
arch/alpha/include/uapi/asm/mman.h:17:0: note: this is the location of the previous definition
#define MAP_FIXED 0x100 /* Interpret addr exactly */

In file included from mm//internal.h:18:0,
from mm//swap.c:39:
include/uapi/asm-generic/mman-common.h:23:0: warning: "MAP_ANONYMOUS" redefined
#define MAP_ANONYMOUS 0x20 /* don't use a file */

In file included from include/uapi/linux/mman.h:5:0,
from include/linux/mman.h:9,
from mm//swap.c:20:
arch/alpha/include/uapi/asm/mman.h:18:0: note: this is the location of the previous definition
#define MAP_ANONYMOUS 0x10 /* don't use a file */

In file included from mm//internal.h:18:0,
from mm//swap.c:39:
include/uapi/asm-generic/mman-common.h:27:0: warning: "MAP_UNINITIALIZED" redefined
# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */

In file included from mm//swap.c:20:0:
include/linux/mman.h:25:0: note: this is the location of the previous definition
#define MAP_UNINITIALIZED 0

In file included from mm//internal.h:18:0,
from mm//swap.c:39:
>> include/uapi/asm-generic/mman-common.h:31:0: warning: "MAP_FIXED_NOREPLACE" redefined
#define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED which doesn't unmap underlying mapping */

In file included from include/uapi/linux/mman.h:5:0,
from include/linux/mman.h:9,
from mm//swap.c:20:
arch/alpha/include/uapi/asm/mman.h:35:0: note: this is the location of the previous definition
#define MAP_FIXED_NOREPLACE 0x200000/* MAP_FIXED which doesn't unmap underlying mapping */

In file included from mm//internal.h:18:0,
from mm//swap.c:39:
include/uapi/asm-generic/mman-common.h:39:0: warning: "MS_INVALIDATE" redefined
#define MS_INVALIDATE 2 /* invalidate the caches */

In file included from include/uapi/linux/mman.h:5:0,
from include/linux/mman.h:9,
from mm//swap.c:20:
arch/alpha/include/uapi/asm/mman.h:39:0: note: this is the location of the previous definition
#define MS_INVALIDATE 4 /* invalidate the caches */

In file included from mm//internal.h:18:0,
from mm//swap.c:39:
include/uapi/asm-generic/mman-common.h:40:0: warning: "MS_SYNC" redefined
#define MS_SYNC 4 /* synchronous memory sync */

In file included from include/uapi/linux/mman.h:5:0,
from include/linux/mman.h:9,
from mm//swap.c:20:
arch/alpha/include/uapi/asm/mman.h:38:0: note: this is the location of the previous definition
#define MS_SYNC 2 /* synchronous memory sync */

In file included from mm//internal.h:18:0,
from mm//swap.c:39:
>> include/uapi/asm-generic/mman-common.h:46:0: warning: "MADV_DONTNEED" redefined
#define MADV_DONTNEED 4 /* don't need these pages */

In file included from include/uapi/linux/mman.h:5:0,
from include/linux/mman.h:9,
from mm//swap.c:20:
arch/alpha/include/uapi/asm/mman.h:52:0: note: this is the location of the previous definition
#define MADV_DONTNEED 6 /* don't need these pages */


vim +/MAP_FIXED_NOREPLACE +31 include/uapi/asm-generic/mman-common.h

5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 17
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 18 #define MAP_SHARED 0x01 /* Share changes */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 19 #define MAP_PRIVATE 0x02 /* Changes are private */
1c972597 include/uapi/asm-generic/mman-common.h Dan Williams 2017-11-01 20 #define MAP_SHARED_VALIDATE 0x03 /* share + validate extension flags */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 21 #define MAP_TYPE 0x0f /* Mask for type of mapping */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 22 #define MAP_FIXED 0x10 /* Interpret addr exactly */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 23 #define MAP_ANONYMOUS 0x20 /* don't use a file */
ea637639 include/asm-generic/mman-common.h Jie Zhang 2009-12-14 24 #ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED
ea637639 include/asm-generic/mman-common.h Jie Zhang 2009-12-14 25 # define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */
ea637639 include/asm-generic/mman-common.h Jie Zhang 2009-12-14 26 #else
ea637639 include/asm-generic/mman-common.h Jie Zhang 2009-12-14 @27 # define MAP_UNINITIALIZED 0x0 /* Don't support this flag */
ea637639 include/asm-generic/mman-common.h Jie Zhang 2009-12-14 28 #endif
4ed28639 include/uapi/asm-generic/mman-common.h Michal Hocko 2018-04-10 29
4ed28639 include/uapi/asm-generic/mman-common.h Michal Hocko 2018-04-10 30 /* 0x0100 - 0x80000 flags are defined in asm-generic/mman.h */
4ed28639 include/uapi/asm-generic/mman-common.h Michal Hocko 2018-04-10 @31 #define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED which doesn't unmap underlying mapping */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 32
b0f205c2 include/uapi/asm-generic/mman-common.h Eric B Munson 2015-11-05 33 /*
b0f205c2 include/uapi/asm-generic/mman-common.h Eric B Munson 2015-11-05 34 * Flags for mlock
b0f205c2 include/uapi/asm-generic/mman-common.h Eric B Munson 2015-11-05 35 */
b0f205c2 include/uapi/asm-generic/mman-common.h Eric B Munson 2015-11-05 36 #define MLOCK_ONFAULT 0x01 /* Lock pages in range after they are faulted in, do not prefault */
b0f205c2 include/uapi/asm-generic/mman-common.h Eric B Munson 2015-11-05 37
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 38 #define MS_ASYNC 1 /* sync memory asynchronously */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 39 #define MS_INVALIDATE 2 /* invalidate the caches */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 40 #define MS_SYNC 4 /* synchronous memory sync */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 41
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 42 #define MADV_NORMAL 0 /* no further special treatment */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 43 #define MADV_RANDOM 1 /* expect random page references */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 44 #define MADV_SEQUENTIAL 2 /* expect sequential page references */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 45 #define MADV_WILLNEED 3 /* will need these pages */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 @46 #define MADV_DONTNEED 4 /* don't need these pages */
5f6164f3 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 47

:::::: The code at line 31 was first introduced by commit
:::::: 4ed28639519c7bad5f518e70b3284c6e0763e650 fs, elf: drop MAP_FIXED usage from elf_map

:::::: TO: Michal Hocko <mhocko@xxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip