From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22B10C433EF for ; Thu, 11 Nov 2021 13:47:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0247A61152 for ; Thu, 11 Nov 2021 13:47:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233529AbhKKNub (ORCPT ); Thu, 11 Nov 2021 08:50:31 -0500 Received: from mga04.intel.com ([192.55.52.120]:46172 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232699AbhKKNu3 (ORCPT ); Thu, 11 Nov 2021 08:50:29 -0500 X-IronPort-AV: E=McAfee;i="6200,9189,10164"; a="231635273" X-IronPort-AV: E=Sophos;i="5.87,226,1631602800"; d="gz'50?scan'50,208,50";a="231635273" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2021 05:47:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,226,1631602800"; d="gz'50?scan'50,208,50";a="602618762" Received: from lkp-server02.sh.intel.com (HELO c20d8bc80006) ([10.239.97.151]) by orsmga004.jf.intel.com with ESMTP; 11 Nov 2021 05:47:36 -0800 Received: from kbuild by c20d8bc80006 with local (Exim 4.92) (envelope-from ) id 1mlAQR-000GYm-H8; Thu, 11 Nov 2021 13:47:35 +0000 Date: Thu, 11 Nov 2021 21:46:37 +0800 From: kernel test robot To: Qi Zheng , akpm@linux-foundation.org, tglx@linutronix.de, kirill.shutemov@linux.intel.com, mika.penttila@nextfour.com, david@redhat.com, jgg@nvidia.com Cc: kbuild-all@lists.01.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, songmuchun@bytedance.com Subject: Re: [PATCH v3 02/15] mm: introduce is_huge_pmd() helper Message-ID: <202111112105.ExMahDDX-lkp@intel.com> References: <20211110105428.32458-3-zhengqi.arch@bytedance.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="qDbXVdCdHGoSgWSk" Content-Disposition: inline In-Reply-To: <20211110105428.32458-3-zhengqi.arch@bytedance.com> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --qDbXVdCdHGoSgWSk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Qi, Thank you for the patch! Yet something to improve: [auto build test ERROR on hnaz-mm/master] [also build test ERROR on tip/perf/core tip/x86/core linus/master v5.15 next-20211111] [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] url: https://github.com/0day-ci/linux/commits/Qi-Zheng/Free-user-PTE-page-table-pages/20211110-185837 base: https://github.com/hnaz/linux-mm master config: ia64-defconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 11.2.0 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/0day-ci/linux/commit/ce86336fbabb116520ad01162faf5c8d4a1ce124 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Qi-Zheng/Free-user-PTE-page-table-pages/20211110-185837 git checkout ce86336fbabb116520ad01162faf5c8d4a1ce124 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=ia64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): mm/memory.c: In function 'copy_pmd_range': >> mm/memory.c:1149:21: error: implicit declaration of function 'is_huge_pmd'; did you mean 'is_hugepd'? [-Werror=implicit-function-declaration] 1149 | if (is_huge_pmd(*src_pmd)) { | ^~~~~~~~~~~ | is_hugepd In file included from : In function 'zap_pmd_range', inlined from 'zap_pud_range' at mm/memory.c:1499:10, inlined from 'zap_p4d_range' at mm/memory.c:1520:10, inlined from 'unmap_page_range' at mm/memory.c:1541:10: include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_304' declared with attribute error: BUILD_BUG failed 335 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ include/linux/compiler_types.h:316:25: note: in definition of macro '__compiletime_assert' 316 | prefix ## suffix(); \ | ^~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_compiletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_ON_MSG' 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^~~~~~~~~~~~~~~~ include/linux/huge_mm.h:328:27: note: in expansion of macro 'BUILD_BUG' 328 | #define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; }) | ^~~~~~~~~ mm/memory.c:1444:44: note: in expansion of macro 'HPAGE_PMD_SIZE' 1444 | if (next - addr != HPAGE_PMD_SIZE) | ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- mm/mprotect.c: In function 'change_pmd_range': >> mm/mprotect.c:260:21: error: implicit declaration of function 'is_huge_pmd'; did you mean 'is_hugepd'? [-Werror=implicit-function-declaration] 260 | if (is_huge_pmd(*pmd)) { | ^~~~~~~~~~~ | is_hugepd In file included from : In function 'change_pmd_range', inlined from 'change_pud_range' at mm/mprotect.c:307:12, inlined from 'change_p4d_range' at mm/mprotect.c:327:12, inlined from 'change_protection_range' at mm/mprotect.c:352:12: include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_298' declared with attribute error: BUILD_BUG failed 335 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ include/linux/compiler_types.h:316:25: note: in definition of macro '__compiletime_assert' 316 | prefix ## suffix(); \ | ^~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_compiletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_ON_MSG' 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^~~~~~~~~~~~~~~~ include/linux/huge_mm.h:328:27: note: in expansion of macro 'BUILD_BUG' 328 | #define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; }) | ^~~~~~~~~ mm/mprotect.c:261:44: note: in expansion of macro 'HPAGE_PMD_SIZE' 261 | if (next - addr != HPAGE_PMD_SIZE) { | ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- mm/mremap.c: In function 'move_page_tables': >> mm/mremap.c:535:21: error: implicit declaration of function 'is_huge_pmd'; did you mean 'is_hugepd'? [-Werror=implicit-function-declaration] 535 | if (is_huge_pmd(*old_pmd)) { | ^~~~~~~~~~~ | is_hugepd In file included from : include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_304' declared with attribute error: BUILD_BUG failed 335 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ include/linux/compiler_types.h:316:25: note: in definition of macro '__compiletime_assert' 316 | prefix ## suffix(); \ | ^~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_compiletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_ON_MSG' 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^~~~~~~~~~~~~~~~ include/linux/huge_mm.h:328:27: note: in expansion of macro 'BUILD_BUG' 328 | #define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; }) | ^~~~~~~~~ mm/mremap.c:536:39: note: in expansion of macro 'HPAGE_PMD_SIZE' 536 | if (extent == HPAGE_PMD_SIZE && | ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +1149 mm/memory.c 1132 1133 static inline int 1134 copy_pmd_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, 1135 pud_t *dst_pud, pud_t *src_pud, unsigned long addr, 1136 unsigned long end) 1137 { 1138 struct mm_struct *dst_mm = dst_vma->vm_mm; 1139 struct mm_struct *src_mm = src_vma->vm_mm; 1140 pmd_t *src_pmd, *dst_pmd; 1141 unsigned long next; 1142 1143 dst_pmd = pmd_alloc(dst_mm, dst_pud, addr); 1144 if (!dst_pmd) 1145 return -ENOMEM; 1146 src_pmd = pmd_offset(src_pud, addr); 1147 do { 1148 next = pmd_addr_end(addr, end); > 1149 if (is_huge_pmd(*src_pmd)) { 1150 int err; 1151 VM_BUG_ON_VMA(next-addr != HPAGE_PMD_SIZE, src_vma); 1152 err = copy_huge_pmd(dst_mm, src_mm, dst_pmd, src_pmd, 1153 addr, dst_vma, src_vma); 1154 if (err == -ENOMEM) 1155 return -ENOMEM; 1156 if (!err) 1157 continue; 1158 /* fall through */ 1159 } 1160 if (pmd_none_or_clear_bad(src_pmd)) 1161 continue; 1162 if (copy_pte_range(dst_vma, src_vma, dst_pmd, src_pmd, 1163 addr, next)) 1164 return -ENOMEM; 1165 } while (dst_pmd++, src_pmd++, addr = next, addr != end); 1166 return 0; 1167 } 1168 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --qDbXVdCdHGoSgWSk Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 DkfPEHni9kH7yE+W2/8DHXKWDf9KAQA= --qDbXVdCdHGoSgWSk-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5625518314562087756==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v3 02/15] mm: introduce is_huge_pmd() helper Date: Thu, 11 Nov 2021 21:46:37 +0800 Message-ID: <202111112105.ExMahDDX-lkp@intel.com> In-Reply-To: <20211110105428.32458-3-zhengqi.arch@bytedance.com> List-Id: --===============5625518314562087756== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Qi, Thank you for the patch! Yet something to improve: [auto build test ERROR on hnaz-mm/master] [also build test ERROR on tip/perf/core tip/x86/core linus/master v5.15 nex= t-20211111] [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] url: https://github.com/0day-ci/linux/commits/Qi-Zheng/Free-user-PTE-pag= e-table-pages/20211110-185837 base: https://github.com/hnaz/linux-mm master config: ia64-defconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 11.2.0 reproduce (this is a W=3D1 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/0day-ci/linux/commit/ce86336fbabb116520ad01162= faf5c8d4a1ce124 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Qi-Zheng/Free-user-PTE-page-table-= pages/20211110-185837 git checkout ce86336fbabb116520ad01162faf5c8d4a1ce124 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dgcc-11.2.0 make.cross= ARCH=3Dia64 = If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): mm/memory.c: In function 'copy_pmd_range': >> mm/memory.c:1149:21: error: implicit declaration of function 'is_huge_pm= d'; did you mean 'is_hugepd'? [-Werror=3Dimplicit-function-declaration] 1149 | if (is_huge_pmd(*src_pmd)) { | ^~~~~~~~~~~ | is_hugepd In file included from : In function 'zap_pmd_range', inlined from 'zap_pud_range' at mm/memory.c:1499:10, inlined from 'zap_p4d_range' at mm/memory.c:1520:10, inlined from 'unmap_page_range' at mm/memory.c:1541:10: include/linux/compiler_types.h:335:45: error: call to '__compiletime_ass= ert_304' declared with attribute error: BUILD_BUG failed 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^ include/linux/compiler_types.h:316:25: note: in definition of macro '__c= ompiletime_assert' 316 | prefix ## suffix(); = \ | ^~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_= ON_MSG' 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^~~~~~~~~~~~~~~~ include/linux/huge_mm.h:328:27: note: in expansion of macro 'BUILD_BUG' 328 | #define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; }) | ^~~~~~~~~ mm/memory.c:1444:44: note: in expansion of macro 'HPAGE_PMD_SIZE' 1444 | if (next - addr !=3D HPAGE_PMD_SIZE) | ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- mm/mprotect.c: In function 'change_pmd_range': >> mm/mprotect.c:260:21: error: implicit declaration of function 'is_huge_p= md'; did you mean 'is_hugepd'? [-Werror=3Dimplicit-function-declaration] 260 | if (is_huge_pmd(*pmd)) { | ^~~~~~~~~~~ | is_hugepd In file included from : In function 'change_pmd_range', inlined from 'change_pud_range' at mm/mprotect.c:307:12, inlined from 'change_p4d_range' at mm/mprotect.c:327:12, inlined from 'change_protection_range' at mm/mprotect.c:352:12: include/linux/compiler_types.h:335:45: error: call to '__compiletime_ass= ert_298' declared with attribute error: BUILD_BUG failed 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^ include/linux/compiler_types.h:316:25: note: in definition of macro '__c= ompiletime_assert' 316 | prefix ## suffix(); = \ | ^~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_= ON_MSG' 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^~~~~~~~~~~~~~~~ include/linux/huge_mm.h:328:27: note: in expansion of macro 'BUILD_BUG' 328 | #define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; }) | ^~~~~~~~~ mm/mprotect.c:261:44: note: in expansion of macro 'HPAGE_PMD_SIZE' 261 | if (next - addr !=3D HPAGE_PMD_SIZE) { | ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- mm/mremap.c: In function 'move_page_tables': >> mm/mremap.c:535:21: error: implicit declaration of function 'is_huge_pmd= '; did you mean 'is_hugepd'? [-Werror=3Dimplicit-function-declaration] 535 | if (is_huge_pmd(*old_pmd)) { | ^~~~~~~~~~~ | is_hugepd In file included from : include/linux/compiler_types.h:335:45: error: call to '__compiletime_ass= ert_304' declared with attribute error: BUILD_BUG failed 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^ include/linux/compiler_types.h:316:25: note: in definition of macro '__c= ompiletime_assert' 316 | prefix ## suffix(); = \ | ^~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_= ON_MSG' 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^~~~~~~~~~~~~~~~ include/linux/huge_mm.h:328:27: note: in expansion of macro 'BUILD_BUG' 328 | #define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; }) | ^~~~~~~~~ mm/mremap.c:536:39: note: in expansion of macro 'HPAGE_PMD_SIZE' 536 | if (extent =3D=3D HPAGE_PMD_SIZE && | ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +1149 mm/memory.c 1132 = 1133 static inline int 1134 copy_pmd_range(struct vm_area_struct *dst_vma, struct vm_area_struct= *src_vma, 1135 pud_t *dst_pud, pud_t *src_pud, unsigned long addr, 1136 unsigned long end) 1137 { 1138 struct mm_struct *dst_mm =3D dst_vma->vm_mm; 1139 struct mm_struct *src_mm =3D src_vma->vm_mm; 1140 pmd_t *src_pmd, *dst_pmd; 1141 unsigned long next; 1142 = 1143 dst_pmd =3D pmd_alloc(dst_mm, dst_pud, addr); 1144 if (!dst_pmd) 1145 return -ENOMEM; 1146 src_pmd =3D pmd_offset(src_pud, addr); 1147 do { 1148 next =3D pmd_addr_end(addr, end); > 1149 if (is_huge_pmd(*src_pmd)) { 1150 int err; 1151 VM_BUG_ON_VMA(next-addr !=3D HPAGE_PMD_SIZE, src_vma); 1152 err =3D copy_huge_pmd(dst_mm, src_mm, dst_pmd, src_pmd, 1153 addr, dst_vma, src_vma); 1154 if (err =3D=3D -ENOMEM) 1155 return -ENOMEM; 1156 if (!err) 1157 continue; 1158 /* fall through */ 1159 } 1160 if (pmd_none_or_clear_bad(src_pmd)) 1161 continue; 1162 if (copy_pte_range(dst_vma, src_vma, dst_pmd, src_pmd, 1163 addr, next)) 1164 return -ENOMEM; 1165 } while (dst_pmd++, src_pmd++, addr =3D next, addr !=3D end); 1166 return 0; 1167 } 1168 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============5625518314562087756== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 --===============5625518314562087756==--