From: kernel test robot <lkp@intel.com>
To: Gang Li <gang.li@linux.dev>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>,
Muchun Song <muchun.song@linux.dev>
Subject: mm/hugetlb.c:3424 gather_bootmem_prealloc_node() warn: unsigned '_x' is never less than zero.
Date: Sat, 15 Feb 2025 01:33:39 +0800 [thread overview]
Message-ID: <202502150114.XM31HL0I-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 128c8f96eb8638c060cd3532dc394d046ce64fe1
commit: b78b27d02930f6f0262353080d0f784ce7aa377e hugetlb: parallelize 1G hugetlb initialization
date: 12 months ago
config: riscv-randconfig-r073-20250213 (https://download.01.org/0day-ci/archive/20250215/202502150114.XM31HL0I-lkp@intel.com/config)
compiler: riscv32-linux-gcc (GCC) 14.2.0
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/202502150114.XM31HL0I-lkp@intel.com/
New smatch warnings:
mm/hugetlb.c:3424 gather_bootmem_prealloc_node() warn: unsigned '_x' is never less than zero.
Old smatch warnings:
include/asm-generic/io.h:1005 virt_to_phys() warn: unsigned '_x' is never less than zero.
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
vim +/_x +3424 mm/hugetlb.c
79359d6d24df2f Mike Kravetz 2023-10-18 3412
48b8d744ea841b Mike Kravetz 2021-06-30 3413 /*
48b8d744ea841b Mike Kravetz 2021-06-30 3414 * Put bootmem huge pages into the standard lists after mem_map is up.
5e0a760b44417f Kirill A. Shutemov 2023-12-28 3415 * Note: This only applies to gigantic (order > MAX_PAGE_ORDER) pages.
48b8d744ea841b Mike Kravetz 2021-06-30 3416 */
b78b27d02930f6 Gang Li 2024-02-22 3417 static void __init gather_bootmem_prealloc_node(unsigned long nid)
aa888a74977a8f Andi Kleen 2008-07-23 3418 {
d67e32f26713c3 Mike Kravetz 2023-10-18 3419 LIST_HEAD(folio_list);
aa888a74977a8f Andi Kleen 2008-07-23 3420 struct huge_bootmem_page *m;
d67e32f26713c3 Mike Kravetz 2023-10-18 3421 struct hstate *h = NULL, *prev_h = NULL;
aa888a74977a8f Andi Kleen 2008-07-23 3422
b78b27d02930f6 Gang Li 2024-02-22 3423 list_for_each_entry(m, &huge_boot_pages[nid], list) {
40d18ebffb3974 Mike Kravetz 2018-08-17 @3424 struct page *page = virt_to_page(m);
fde1c4ecf91640 Usama Arif 2023-09-13 3425 struct folio *folio = (void *)page;
d67e32f26713c3 Mike Kravetz 2023-10-18 3426
d67e32f26713c3 Mike Kravetz 2023-10-18 3427 h = m->hstate;
d67e32f26713c3 Mike Kravetz 2023-10-18 3428 /*
d67e32f26713c3 Mike Kravetz 2023-10-18 3429 * It is possible to have multiple huge page sizes (hstates)
d67e32f26713c3 Mike Kravetz 2023-10-18 3430 * in this list. If so, process each size separately.
d67e32f26713c3 Mike Kravetz 2023-10-18 3431 */
d67e32f26713c3 Mike Kravetz 2023-10-18 3432 if (h != prev_h && prev_h != NULL)
79359d6d24df2f Mike Kravetz 2023-10-18 3433 prep_and_add_bootmem_folios(prev_h, &folio_list);
d67e32f26713c3 Mike Kravetz 2023-10-18 3434 prev_h = h;
ee8f248d266ec6 Becky Bruce 2011-07-25 3435
48b8d744ea841b Mike Kravetz 2021-06-30 3436 VM_BUG_ON(!hstate_is_gigantic(h));
d1c6095572d0cf Sidhartha Kumar 2022-11-29 3437 WARN_ON(folio_ref_count(folio) != 1);
fde1c4ecf91640 Usama Arif 2023-09-13 3438
fde1c4ecf91640 Usama Arif 2023-09-13 3439 hugetlb_folio_init_vmemmap(folio, h,
fde1c4ecf91640 Usama Arif 2023-09-13 3440 HUGETLB_VMEMMAP_RESERVE_PAGES);
79359d6d24df2f Mike Kravetz 2023-10-18 3441 init_new_hugetlb_folio(h, folio);
d67e32f26713c3 Mike Kravetz 2023-10-18 3442 list_add(&folio->lru, &folio_list);
af0fb9df784174 Michal Hocko 2018-01-31 3443
b0320c7b7d1ac1 Rafael Aquini 2011-06-15 3444 /*
48b8d744ea841b Mike Kravetz 2021-06-30 3445 * We need to restore the 'stolen' pages to totalram_pages
48b8d744ea841b Mike Kravetz 2021-06-30 3446 * in order to fix confusing memory reports from free(1) and
48b8d744ea841b Mike Kravetz 2021-06-30 3447 * other side-effects, like CommitLimit going negative.
b0320c7b7d1ac1 Rafael Aquini 2011-06-15 3448 */
c78a7f3639932c Miaohe Lin 2021-02-24 3449 adjust_managed_page_count(page, pages_per_huge_page(h));
520495fe96d74e Cannon Matthews 2018-07-03 3450 cond_resched();
aa888a74977a8f Andi Kleen 2008-07-23 3451 }
d67e32f26713c3 Mike Kravetz 2023-10-18 3452
79359d6d24df2f Mike Kravetz 2023-10-18 3453 prep_and_add_bootmem_folios(h, &folio_list);
aa888a74977a8f Andi Kleen 2008-07-23 3454 }
fde1c4ecf91640 Usama Arif 2023-09-13 3455
:::::: The code at line 3424 was first introduced by commit
:::::: 40d18ebffb3974272a920c41f2d74431152cae98 mm/hugetlb: remove gigantic page support for HIGHMEM
:::::: TO: Mike Kravetz <mike.kravetz@oracle.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2025-02-14 17:33 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=202502150114.XM31HL0I-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=gang.li@linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=muchun.song@linux.dev \
--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.