From: kernel test robot <lkp@intel.com>
To: kernel@openeuler.org, Wang Wensheng <wangwensheng4@huawei.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [openeuler:OLK-5.10 2579/2579] mm/share_pool.c:4215:63: error: 'HUGETLB_ALLOC_NORECLAIM' undeclared
Date: Sat, 14 Dec 2024 09:31:30 +0800 [thread overview]
Message-ID: <202412140941.hd45mfxv-lkp@intel.com> (raw)
Hi Guo,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 6c3413fbf8c430b89f5d23f465e10e99ea145199
commit: 107e2b7c4b1d007583efab423cc48429c87c6408 [2579/2579] mm/sharepool: Fix sharepool hugepage cgroup uncount error.
config: arm64-randconfig-004-20241213 (https://download.01.org/0day-ci/archive/20241214/202412140941.hd45mfxv-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241214/202412140941.hd45mfxv-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412140941.hd45mfxv-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/share_pool.c:864:23: warning: no previous prototype for 'find_spg_node_by_spg' [-Wmissing-prototypes]
864 | struct sp_group_node *find_spg_node_by_spg(struct mm_struct *mm,
| ^~~~~~~~~~~~~~~~~~~~
mm/share_pool.c: In function 'sp_hugetlb_entry':
mm/share_pool.c:3073:21: error: implicit declaration of function 'huge_ptep_get' [-Werror=implicit-function-declaration]
3073 | pte_t pte = huge_ptep_get(ptep);
| ^~~~~~~~~~~~~
mm/share_pool.c:3073:21: error: invalid initializer
mm/share_pool.c: In function 'sp_unshare_kva':
mm/share_pool.c:3450:14: warning: variable 'is_hugepage' set but not used [-Wunused-but-set-variable]
3450 | bool is_hugepage = true;
| ^~~~~~~~~~~
mm/share_pool.c: At top level:
mm/share_pool.c:3942:6: warning: no previous prototype for 'spa_overview_show' [-Wmissing-prototypes]
3942 | void spa_overview_show(struct seq_file *seq)
| ^~~~~~~~~~~~~~~~~
mm/share_pool.c:4024:6: warning: no previous prototype for 'spg_overview_show' [-Wmissing-prototypes]
4024 | void spg_overview_show(struct seq_file *seq)
| ^~~~~~~~~~~~~~~~~
mm/share_pool.c: In function 'sharepool_no_page':
mm/share_pool.c:4215:41: error: 'HUGETLB_ALLOC_BUDDY' undeclared (first use in this function)
4215 | HUGETLB_ALLOC_BUDDY | HUGETLB_ALLOC_NORECLAIM);
| ^~~~~~~~~~~~~~~~~~~
mm/share_pool.c:4215:41: note: each undeclared identifier is reported only once for each function it appears in
>> mm/share_pool.c:4215:63: error: 'HUGETLB_ALLOC_NORECLAIM' undeclared (first use in this function)
4215 | HUGETLB_ALLOC_BUDDY | HUGETLB_ALLOC_NORECLAIM);
| ^~~~~~~~~~~~~~~~~~~~~~~
mm/share_pool.c:4221:30: error: implicit declaration of function 'huge_pte_none'; did you mean 'huge_pte_lock'? [-Werror=implicit-function-declaration]
4221 | if (!huge_pte_none(huge_ptep_get(ptep))) {
| ^~~~~~~~~~~~~
| huge_pte_lock
mm/share_pool.c:4234:23: error: implicit declaration of function 'huge_add_to_page_cache'; did you mean 'add_to_page_cache'? [-Werror=implicit-function-declaration]
4234 | err = huge_add_to_page_cache(page, mapping, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
| add_to_page_cache
mm/share_pool.c:4256:9: error: implicit declaration of function 'set_huge_pte_at'; did you mean 'set_huge_swap_pte_at'? [-Werror=implicit-function-declaration]
4256 | set_huge_pte_at(mm, haddr, ptep, new_pte);
| ^~~~~~~~~~~~~~~
| set_huge_swap_pte_at
mm/share_pool.c:4258:9: error: implicit declaration of function 'hugetlb_count_add'; did you mean 'hugetlb_count_sub'? [-Werror=implicit-function-declaration]
4258 | hugetlb_count_add(pages_per_huge_page(h), mm);
| ^~~~~~~~~~~~~~~~~
| hugetlb_count_sub
mm/share_pool.c: At top level:
mm/share_pool.c:4119:12: warning: 'proc_usage_show' defined but not used [-Wunused-function]
4119 | static int proc_usage_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~~~
mm/share_pool.c:4097:12: warning: 'proc_group_usage_show' defined but not used [-Wunused-function]
4097 | static int proc_group_usage_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~~~~~~~~~
mm/share_pool.c:4049:12: warning: 'spa_stat_show' defined but not used [-Wunused-function]
4049 | static int spa_stat_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PGP_KEY_PARSER
Depends on [n]: CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y] && ASYMMETRIC_PUBLIC_KEY_SUBTYPE [=n]
Selected by [y]:
- PGP_PRELOAD [=y] && CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y]
vim +/HUGETLB_ALLOC_NORECLAIM +4215 mm/share_pool.c
4180
4181 vm_fault_t sharepool_no_page(struct mm_struct *mm,
4182 struct vm_area_struct *vma,
4183 struct address_space *mapping, pgoff_t idx,
4184 unsigned long address, pte_t *ptep, unsigned int flags)
4185 {
4186 struct hstate *h = hstate_vma(vma);
4187 vm_fault_t ret = VM_FAULT_SIGBUS;
4188 unsigned long size;
4189 struct page *page;
4190 pte_t new_pte;
4191 spinlock_t *ptl;
4192 unsigned long haddr = address & huge_page_mask(h);
4193 bool new_page = false;
4194 int err;
4195 int node_id;
4196 struct sp_area *spa;
4197
4198 spa = vma->vm_private_data;
4199 if (!spa) {
4200 pr_err("share pool: vma is invalid, not from sp mmap\n");
4201 return ret;
4202 }
4203 node_id = spa->node_id;
4204
4205 retry:
4206 page = find_lock_page(mapping, idx);
4207 if (!page) {
4208 size = i_size_read(mapping->host) >> huge_page_shift(h);
4209 if (idx >= size)
4210 goto out;
4211
4212 page = alloc_huge_page(vma, haddr, 0);
4213 if (IS_ERR(page)) {
4214 page = hugetlb_alloc_hugepage(node_id,
> 4215 HUGETLB_ALLOC_BUDDY | HUGETLB_ALLOC_NORECLAIM);
4216 if (!page)
4217 page = ERR_PTR(-ENOMEM);
4218 }
4219 if (IS_ERR(page)) {
4220 ptl = huge_pte_lock(h, mm, ptep);
4221 if (!huge_pte_none(huge_ptep_get(ptep))) {
4222 ret = 0;
4223 spin_unlock(ptl);
4224 goto out;
4225 }
4226 spin_unlock(ptl);
4227 ret = vmf_error(PTR_ERR(page));
4228 goto out;
4229 }
4230 __SetPageUptodate(page);
4231 new_page = true;
4232
4233 /* sharepool pages are all shared */
4234 err = huge_add_to_page_cache(page, mapping, idx);
4235 if (err) {
4236 put_page(page);
4237 if (err == -EEXIST)
4238 goto retry;
4239 goto out;
4240 }
4241 }
4242
4243
4244 ptl = huge_pte_lock(h, mm, ptep);
4245 size = i_size_read(mapping->host) >> huge_page_shift(h);
4246 if (idx >= size)
4247 goto backout;
4248
4249 ret = 0;
4250 if (!huge_pte_none(huge_ptep_get(ptep)))
4251 goto backout;
4252
4253 page_dup_rmap(page, true);
4254 new_pte = make_huge_pte(vma, page, ((vma->vm_flags & VM_WRITE)
4255 && (vma->vm_flags & VM_SHARED)));
4256 set_huge_pte_at(mm, haddr, ptep, new_pte);
4257
4258 hugetlb_count_add(pages_per_huge_page(h), mm);
4259
4260 spin_unlock(ptl);
4261
4262 if (new_page) {
4263 SetPagePrivate(&page[1]);
4264 }
4265
4266 unlock_page(page);
4267 out:
4268 return ret;
4269
4270 backout:
4271 spin_unlock(ptl);
4272 unlock_page(page);
4273 put_page(page);
4274 goto out;
4275 }
4276
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-12-14 1:31 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202412140941.hd45mfxv-lkp@intel.com \
--to=lkp@intel.com \
--cc=kernel@openeuler.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=wangwensheng4@huawei.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.