Re: [PATCH 4/4] oom-reaper: use madvise_dontneed() logic to decide if unmap the VMA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kirill,

[auto build test WARNING on mmotm/master]
[also build test WARNING on v4.9 next-20161219]
[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/Kirill-A-Shutemov/mm-drop-zap_details-ignore_dirty/20161220-092938
base:   git://git.cmpxchg.org/linux-mmotm.git master
config: x86_64-randconfig-x004-201651 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   In file included from include/asm-generic/bug.h:4:0,
                    from arch/x86/include/asm/bug.h:35,
                    from include/linux/bug.h:4,
                    from include/linux/mmdebug.h:4,
                    from include/linux/mm.h:8,
                    from include/linux/mman.h:4,
                    from mm/madvise.c:8:
   mm/madvise.c: In function 'madvise_dontneed':
   mm/madvise.c:476:7: error: implicit declaration of function 'can_madv_dontneed_vma' [-Werror=implicit-function-declaration]
     if (!can_madv_dontneed_vma(vma))
          ^
   include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> mm/madvise.c:476:2: note: in expansion of macro 'if'
     if (!can_madv_dontneed_vma(vma))
     ^~
   cc1: some warnings being treated as errors

vim +/if +476 mm/madvise.c

   460	 *
   461	 * NB: This interface discards data rather than pushes it out to swap,
   462	 * as some implementations do.  This has performance implications for
   463	 * applications like large transactional databases which want to discard
   464	 * pages in anonymous maps after committing to backing store the data
   465	 * that was kept in them.  There is no reason to write this data out to
   466	 * the swap area if the application is discarding it.
   467	 *
   468	 * An interface that causes the system to free clean pages and flush
   469	 * dirty pages is already available as msync(MS_INVALIDATE).
   470	 */
   471	static long madvise_dontneed(struct vm_area_struct *vma,
   472				     struct vm_area_struct **prev,
   473				     unsigned long start, unsigned long end)
   474	{
   475		*prev = vma;
 > 476		if (!can_madv_dontneed_vma(vma))
   477			return -EINVAL;
   478	
   479		zap_page_range(vma, start, end - start);
   480		return 0;
   481	}
   482	
   483	/*
   484	 * Application wants to free up the pages and associated backing store.

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]