Re: [PATCH] mm: Always flush VMA ranges affected by zap_page_range

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

 



Hi Mel,

[auto build test ERROR on mmotm/master]
[also build test ERROR on v4.13-rc2 next-20170724]
[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/Mel-Gorman/mm-Always-flush-VMA-ranges-affected-by-zap_page_range/20170725-102436
base:   git://git.cmpxchg.org/linux-mmotm.git master
config: ia64-allyesconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
        wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=ia64 

All errors (new ones prefixed by >>):

   mm/memory.c: In function 'zap_page_range':
>> mm/memory.c:1497:3: error: implicit declaration of function '__tlb_adjust_range' [-Werror=implicit-function-declaration]
      __tlb_adjust_range(&tlb, start, end);
      ^~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/__tlb_adjust_range +1497 mm/memory.c

  1466	
  1467	/**
  1468	 * zap_page_range - remove user pages in a given range
  1469	 * @vma: vm_area_struct holding the applicable pages
  1470	 * @start: starting address of pages to zap
  1471	 * @size: number of bytes to zap
  1472	 *
  1473	 * Caller must protect the VMA list
  1474	 */
  1475	void zap_page_range(struct vm_area_struct *vma, unsigned long start,
  1476			unsigned long size)
  1477	{
  1478		struct mm_struct *mm = vma->vm_mm;
  1479		struct mmu_gather tlb;
  1480		unsigned long end = start + size;
  1481	
  1482		lru_add_drain();
  1483		tlb_gather_mmu(&tlb, mm, start, end);
  1484		update_hiwater_rss(mm);
  1485		mmu_notifier_invalidate_range_start(mm, start, end);
  1486		for ( ; vma && vma->vm_start < end; vma = vma->vm_next) {
  1487			unmap_single_vma(&tlb, vma, start, end, NULL);
  1488	
  1489			/*
  1490			 * zap_page_range does not specify whether mmap_sem should be
  1491			 * held for read or write. That allows parallel zap_page_range
  1492			 * operations to unmap a PTE and defer a flush meaning that
  1493			 * this call observes pte_none and fails to flush the TLB.
  1494			 * Rather than adding a complex API, ensure that no stale
  1495			 * TLB entries exist when this call returns.
  1496			 */
> 1497			__tlb_adjust_range(&tlb, start, end);
  1498		}
  1499	
  1500		mmu_notifier_invalidate_range_end(mm, start, end);
  1501		tlb_finish_mmu(&tlb, start, end);
  1502	}
  1503	

---
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]
  Powered by Linux