From: kernel test robot <lkp@intel.com>
To: kernel@openeuler.org, Yongqiang Liu <duanzi@zju.edu.cn>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [openeuler:openEuler-1.0-LTS 20162/23799] mm/share_pool.c:4577:64: error: 'HUGETLB_ALLOC_BUDDY' undeclared
Date: Sat, 28 Sep 2024 22:11:08 +0800 [thread overview]
Message-ID: <202409282248.mtMRfV3U-lkp@intel.com> (raw)
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 3841d75a6dcd12d108aaf56560b99431d18169e4
commit: 0886320b818787f720824229f153f161c89faf70 [20162/23799] mm/sharepool: Charge Buddy hugepage to memcg
config: arm64-randconfig-003-20240928 (https://download.01.org/0day-ci/archive/20240928/202409282248.mtMRfV3U-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240928/202409282248.mtMRfV3U-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/202409282248.mtMRfV3U-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/share_pool.c: In function 'mg_sp_group_id_by_pid':
mm/share_pool.c:1086:29: warning: ordered comparison of pointer with integer zero [-Wextra]
1086 | if (!spg_ids || num <= 0)
| ^~
mm/share_pool.c: In function 'sp_compact_nodes':
mm/share_pool.c:2149:9: error: implicit declaration of function 'sysctl_compaction_handler'; did you mean 'sysctl_memcg_qos_handler'? [-Werror=implicit-function-declaration]
2149 | sysctl_compaction_handler(NULL, 1, NULL, NULL, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| sysctl_memcg_qos_handler
mm/share_pool.c: In function 'sp_hugetlb_entry':
mm/share_pool.c:3299:21: error: implicit declaration of function 'huge_ptep_get' [-Werror=implicit-function-declaration]
3299 | pte_t pte = huge_ptep_get(ptep);
| ^~~~~~~~~~~~~
mm/share_pool.c:3299:21: error: invalid initializer
mm/share_pool.c: In function 'sharepool_no_page':
mm/share_pool.c:4577:32: error: implicit declaration of function 'hugetlb_alloc_hugepage'; did you mean 'vmalloc_hugepage'? [-Werror=implicit-function-declaration]
4577 | page = hugetlb_alloc_hugepage(node_id, HUGETLB_ALLOC_BUDDY);
| ^~~~~~~~~~~~~~~~~~~~~~
| vmalloc_hugepage
>> mm/share_pool.c:4577:64: error: 'HUGETLB_ALLOC_BUDDY' undeclared (first use in this function)
4577 | page = hugetlb_alloc_hugepage(node_id, HUGETLB_ALLOC_BUDDY);
| ^~~~~~~~~~~~~~~~~~~
mm/share_pool.c:4577:64: note: each undeclared identifier is reported only once for each function it appears in
mm/share_pool.c:4585:30: error: implicit declaration of function 'huge_pte_none'; did you mean 'huge_pte_lock'? [-Werror=implicit-function-declaration]
4585 | if (!huge_pte_none(huge_ptep_get(ptep))) {
| ^~~~~~~~~~~~~
| huge_pte_lock
mm/share_pool.c:4606:23: error: implicit declaration of function 'huge_add_to_page_cache'; did you mean 'add_to_page_cache'? [-Werror=implicit-function-declaration]
4606 | err = huge_add_to_page_cache(page, mapping, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
| add_to_page_cache
mm/share_pool.c:4631:9: error: implicit declaration of function 'set_huge_pte_at'; did you mean 'set_huge_swap_pte_at'? [-Werror=implicit-function-declaration]
4631 | set_huge_pte_at(mm, haddr, ptep, new_pte);
| ^~~~~~~~~~~~~~~
| set_huge_swap_pte_at
mm/share_pool.c:4633:9: error: implicit declaration of function 'hugetlb_count_add'; did you mean 'hugetlb_count_sub'? [-Werror=implicit-function-declaration]
4633 | hugetlb_count_add(pages_per_huge_page(h), mm);
| ^~~~~~~~~~~~~~~~~
| hugetlb_count_sub
mm/share_pool.c: In function 'sp_alloc_pages':
mm/share_pool.c:4797:61: error: 'HUGETLB_ALLOC_NONE' undeclared (first use in this function); did you mean 'HUGETLB_ANON_FILE'?
4797 | page = hugetlb_alloc_hugepage(NUMA_NO_NODE, HUGETLB_ALLOC_NONE);
| ^~~~~~~~~~~~~~~~~~
| HUGETLB_ANON_FILE
mm/share_pool.c: At top level:
mm/share_pool.c:4492:12: warning: 'proc_overview_show' defined but not used [-Wunused-function]
4492 | static int proc_overview_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~~~~~~
mm/share_pool.c:4440:12: warning: 'proc_stat_show' defined but not used [-Wunused-function]
4440 | static int proc_stat_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~~
mm/share_pool.c:4377:12: warning: 'spa_stat_show' defined but not used [-Wunused-function]
4377 | static int spa_stat_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/HUGETLB_ALLOC_BUDDY +4577 mm/share_pool.c
4541
4542 vm_fault_t sharepool_no_page(struct mm_struct *mm,
4543 struct vm_area_struct *vma,
4544 struct address_space *mapping, pgoff_t idx,
4545 unsigned long address, pte_t *ptep, unsigned int flags)
4546 {
4547 struct hstate *h = hstate_vma(vma);
4548 vm_fault_t ret = VM_FAULT_SIGBUS;
4549 unsigned long size;
4550 struct page *page;
4551 pte_t new_pte;
4552 spinlock_t *ptl;
4553 unsigned long haddr = address & huge_page_mask(h);
4554 bool new_page = false;
4555 int err;
4556 int node_id;
4557 struct sp_area *spa;
4558 bool charge_hpage = false;
4559 struct mem_cgroup *memcg;
4560
4561 spa = vma->vm_private_data;
4562 if (!spa) {
4563 pr_err("share pool: vma is invalid, not from sp mmap\n");
4564 return ret;
4565 }
4566 node_id = spa->node_id;
4567
4568 retry:
4569 page = find_lock_page(mapping, idx);
4570 if (!page) {
4571 size = i_size_read(mapping->host) >> huge_page_shift(h);
4572 if (idx >= size)
4573 goto out;
4574
4575 page = alloc_huge_page(vma, haddr, 0);
4576 if (IS_ERR(page)) {
> 4577 page = hugetlb_alloc_hugepage(node_id, HUGETLB_ALLOC_BUDDY);
4578 if (!page)
4579 page = ERR_PTR(-ENOMEM);
4580 else if (!PageKmemcg(page))
4581 charge_hpage = true;
4582 }
4583 if (IS_ERR(page)) {
4584 ptl = huge_pte_lock(h, mm, ptep);
4585 if (!huge_pte_none(huge_ptep_get(ptep))) {
4586 ret = 0;
4587 spin_unlock(ptl);
4588 goto out;
4589 }
4590 spin_unlock(ptl);
4591 ret = vmf_error(PTR_ERR(page));
4592 goto out;
4593 }
4594
4595 if (charge_hpage &&
4596 mem_cgroup_try_charge_delay(page, vma->vm_mm, GFP_KERNEL, &memcg, true)) {
4597 put_page(page);
4598 ret = vmf_error(-ENOMEM);
4599 goto out;
4600 }
4601
4602 __SetPageUptodate(page);
4603 new_page = true;
4604
4605 /* sharepool pages are all shared */
4606 err = huge_add_to_page_cache(page, mapping, idx);
4607 if (err) {
4608 if (charge_hpage) {
4609 mem_cgroup_cancel_charge(page, memcg, true);
4610 charge_hpage = false;
4611 }
4612 put_page(page);
4613 if (err == -EEXIST)
4614 goto retry;
4615 goto out;
4616 }
4617 }
4618
4619 ptl = huge_pte_lock(h, mm, ptep);
4620 size = i_size_read(mapping->host) >> huge_page_shift(h);
4621 if (idx >= size)
4622 goto backout;
4623
4624 ret = 0;
4625 if (!huge_pte_none(huge_ptep_get(ptep)))
4626 goto backout;
4627
4628 page_dup_rmap(page, true);
4629 new_pte = make_huge_pte(vma, page, ((vma->vm_flags & VM_WRITE)
4630 && (vma->vm_flags & VM_SHARED)));
4631 set_huge_pte_at(mm, haddr, ptep, new_pte);
4632
4633 hugetlb_count_add(pages_per_huge_page(h), mm);
4634
4635 if (charge_hpage)
4636 mem_cgroup_commit_charge(page, memcg, false, true);
4637
4638 spin_unlock(ptl);
4639
4640 if (new_page)
4641 SetPagePrivate(&page[1]);
4642
4643 unlock_page(page);
4644 out:
4645 return ret;
4646
4647 backout:
4648 spin_unlock(ptl);
4649 unlock_page(page);
4650 if (charge_hpage)
4651 mem_cgroup_cancel_charge(page, memcg, true);
4652 put_page(page);
4653 goto out;
4654 }
4655 EXPORT_SYMBOL(sharepool_no_page);
4656
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-09-28 14:11 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=202409282248.mtMRfV3U-lkp@intel.com \
--to=lkp@intel.com \
--cc=duanzi@zju.edu.cn \
--cc=kernel@openeuler.org \
--cc=oe-kbuild-all@lists.linux.dev \
/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.