From: kernel test robot <lkp@intel.com>
To: Liu Zixian <liuzixian4@huawei.com>,
hughd@google.com, akpm@linux-foundation.org, linux-mm@kvack.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
linfeilong@huawei.com, liuzixian4@huawei.com,
willy@infradead.org
Subject: Re: [PATCH v2] shmem: support huge_fault to avoid pmd split
Date: Thu, 28 Jul 2022 13:09:32 +0800 [thread overview]
Message-ID: <202207281337.AGofErxA-lkp@intel.com> (raw)
In-Reply-To: <20220726132751.1639-1-liuzixian4@huawei.com>
Hi Liu,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on linus/master v5.19-rc8 next-20220727]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Liu-Zixian/shmem-support-huge_fault-to-avoid-pmd-split/20220726-212946
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
config: i386-randconfig-a004 (https://download.01.org/0day-ci/archive/20220728/202207281337.AGofErxA-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 8dfaecc4c24494337933aff9d9166486ca0949f1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/40060ce82c97d38c8e2d71f9d0e4ee818596bb14
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Liu-Zixian/shmem-support-huge_fault-to-avoid-pmd-split/20220726-212946
git checkout 40060ce82c97d38c8e2d71f9d0e4ee818596bb14
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> mm/shmem.c:2136:39: error: call to __compiletime_assert_272 declared with 'error' attribute: BUILD_BUG failed
unsigned long haddr = vmf->address & HPAGE_PMD_MASK;
^
include/linux/huge_mm.h:307:27: note: expanded from macro 'HPAGE_PMD_MASK'
#define HPAGE_PMD_MASK ({ BUILD_BUG(); 0; })
^
include/linux/build_bug.h:59:21: note: expanded from macro 'BUILD_BUG'
#define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:340:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:333:4: note: expanded from macro '__compiletime_assert'
prefix ## suffix(); \
^
<scratch space>:41:1: note: expanded from here
__compiletime_assert_272
^
1 error generated.
vim +/error +2136 mm/shmem.c
2132
2133 static vm_fault_t shmem_huge_fault(struct vm_fault *vmf, enum page_entry_size pe_size)
2134 {
2135 vm_fault_t ret = VM_FAULT_FALLBACK;
> 2136 unsigned long haddr = vmf->address & HPAGE_PMD_MASK;
2137 struct page *old_page, *new_page;
2138 int gfp_flags = GFP_HIGHUSER_MOVABLE | __GFP_COMP;
2139
2140 /* read or shared fault will not split huge pmd */
2141 if (!(vmf->flags & FAULT_FLAG_WRITE)
2142 || (vmf->vma->vm_flags & VM_SHARED))
2143 return VM_FAULT_FALLBACK;
2144 if (pe_size != PE_SIZE_PMD)
2145 return VM_FAULT_FALLBACK;
2146
2147 if (pmd_none(*vmf->pmd)) {
2148 if (shmem_fault(vmf) & VM_FAULT_ERROR)
2149 goto out;
2150 if (!PageTransHuge(vmf->page))
2151 goto out;
2152 old_page = vmf->page;
2153 } else {
2154 old_page = pmd_page(*vmf->pmd);
2155 page_remove_rmap(old_page, vmf->vma, true);
2156 pmdp_huge_clear_flush(vmf->vma, haddr, vmf->pmd);
2157 add_mm_counter(vmf->vma->vm_mm, MM_SHMEMPAGES, -HPAGE_PMD_NR);
2158 }
2159
2160 new_page = &vma_alloc_folio(gfp_flags, HPAGE_PMD_ORDER,
2161 vmf->vma, haddr, true)->page;
2162 if (!new_page)
2163 goto out;
2164 copy_user_huge_page(new_page, old_page, haddr, vmf->vma, HPAGE_PMD_NR);
2165 __SetPageUptodate(new_page);
2166
2167 ret = do_set_pmd(vmf, new_page);
2168
2169 out:
2170 if (vmf->page) {
2171 unlock_page(vmf->page);
2172 put_page(vmf->page);
2173 }
2174 return ret;
2175 }
2176
--
0-DAY CI Kernel Test Service
https://01.org/lkp
prev parent reply other threads:[~2022-07-28 5:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-26 13:27 [PATCH v2] shmem: support huge_fault to avoid pmd split Liu Zixian
2022-07-26 23:23 ` kernel test robot
2022-07-28 5:09 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202207281337.AGofErxA-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=hughd@google.com \
--cc=kbuild-all@lists.01.org \
--cc=linfeilong@huawei.com \
--cc=linux-mm@kvack.org \
--cc=liuzixian4@huawei.com \
--cc=llvm@lists.linux.dev \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).