All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: mm/vmscan.c:3504 walk_pte_range() error: uninitialized symbol 'dirty'.
Date: Wed, 10 Dec 2025 10:29:14 +0800	[thread overview]
Message-ID: <202512101022.PEbwpbWW-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Yu Zhao <yuzhao@google.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   cb015814f8b6eebcbb8e46e111d108892c5e6821
commit: a52dcec56c5b96250f15efbd7de3d3ea6ce863d9 mm/mglru: fix PTE-mapped large folios
date:   11 months ago
:::::: branch date: 23 hours ago
:::::: commit date: 11 months ago
config: m68k-randconfig-r071-20251209 (https://download.01.org/0day-ci/archive/20251210/202512101022.PEbwpbWW-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 14.3.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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202512101022.PEbwpbWW-lkp@intel.com/

smatch warnings:
mm/vmscan.c:3504 walk_pte_range() error: uninitialized symbol 'dirty'.
mm/vmscan.c:3609 walk_pmd_range_locked() error: uninitialized symbol 'dirty'.
mm/vmscan.c:4215 lru_gen_look_around() error: uninitialized symbol 'dirty'.

vim +/dirty +3504 mm/vmscan.c

a52dcec56c5b96 Yu Zhao        2024-12-30  3449  
bd74fdaea14602 Yu Zhao        2022-09-18  3450  static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
bd74fdaea14602 Yu Zhao        2022-09-18  3451  			   struct mm_walk *args)
bd74fdaea14602 Yu Zhao        2022-09-18  3452  {
bd74fdaea14602 Yu Zhao        2022-09-18  3453  	int i;
a52dcec56c5b96 Yu Zhao        2024-12-30  3454  	bool dirty;
bd74fdaea14602 Yu Zhao        2022-09-18  3455  	pte_t *pte;
bd74fdaea14602 Yu Zhao        2022-09-18  3456  	spinlock_t *ptl;
bd74fdaea14602 Yu Zhao        2022-09-18  3457  	unsigned long addr;
bd74fdaea14602 Yu Zhao        2022-09-18  3458  	int total = 0;
bd74fdaea14602 Yu Zhao        2022-09-18  3459  	int young = 0;
a52dcec56c5b96 Yu Zhao        2024-12-30  3460  	struct folio *last = NULL;
bd74fdaea14602 Yu Zhao        2022-09-18  3461  	struct lru_gen_mm_walk *walk = args->private;
bd74fdaea14602 Yu Zhao        2022-09-18  3462  	struct mem_cgroup *memcg = lruvec_memcg(walk->lruvec);
bd74fdaea14602 Yu Zhao        2022-09-18  3463  	struct pglist_data *pgdat = lruvec_pgdat(walk->lruvec);
cc25bbe10a86a7 Kinsey Ho      2024-02-14  3464  	DEFINE_MAX_SEQ(walk->lruvec);
a52dcec56c5b96 Yu Zhao        2024-12-30  3465  	int gen = lru_gen_from_seq(max_seq);
2441774f2d2890 Qi Zheng       2024-09-26  3466  	pmd_t pmdval;
bd74fdaea14602 Yu Zhao        2022-09-18  3467  
a52dcec56c5b96 Yu Zhao        2024-12-30  3468  	pte = pte_offset_map_rw_nolock(args->mm, pmd, start & PMD_MASK, &pmdval, &ptl);
52fc048320adf1 Hugh Dickins   2023-06-08  3469  	if (!pte)
52fc048320adf1 Hugh Dickins   2023-06-08  3470  		return false;
a52dcec56c5b96 Yu Zhao        2024-12-30  3471  
52fc048320adf1 Hugh Dickins   2023-06-08  3472  	if (!spin_trylock(ptl)) {
52fc048320adf1 Hugh Dickins   2023-06-08  3473  		pte_unmap(pte);
a52dcec56c5b96 Yu Zhao        2024-12-30  3474  		return true;
52fc048320adf1 Hugh Dickins   2023-06-08  3475  	}
bd74fdaea14602 Yu Zhao        2022-09-18  3476  
2441774f2d2890 Qi Zheng       2024-09-26  3477  	if (unlikely(!pmd_same(pmdval, pmdp_get_lockless(pmd)))) {
2441774f2d2890 Qi Zheng       2024-09-26  3478  		pte_unmap_unlock(pte, ptl);
2441774f2d2890 Qi Zheng       2024-09-26  3479  		return false;
2441774f2d2890 Qi Zheng       2024-09-26  3480  	}
2441774f2d2890 Qi Zheng       2024-09-26  3481  
bd74fdaea14602 Yu Zhao        2022-09-18  3482  	arch_enter_lazy_mmu_mode();
bd74fdaea14602 Yu Zhao        2022-09-18  3483  restart:
bd74fdaea14602 Yu Zhao        2022-09-18  3484  	for (i = pte_index(start), addr = start; addr != end; i++, addr += PAGE_SIZE) {
bd74fdaea14602 Yu Zhao        2022-09-18  3485  		unsigned long pfn;
bd74fdaea14602 Yu Zhao        2022-09-18  3486  		struct folio *folio;
c33c794828f212 Ryan Roberts   2023-06-12  3487  		pte_t ptent = ptep_get(pte + i);
bd74fdaea14602 Yu Zhao        2022-09-18  3488  
bd74fdaea14602 Yu Zhao        2022-09-18  3489  		total++;
bd74fdaea14602 Yu Zhao        2022-09-18  3490  		walk->mm_stats[MM_LEAF_TOTAL]++;
bd74fdaea14602 Yu Zhao        2022-09-18  3491  
1d4832becdc2cd Yu Zhao        2024-10-19  3492  		pfn = get_pte_pfn(ptent, args->vma, addr, pgdat);
bd74fdaea14602 Yu Zhao        2022-09-18  3493  		if (pfn == -1)
bd74fdaea14602 Yu Zhao        2022-09-18  3494  			continue;
bd74fdaea14602 Yu Zhao        2022-09-18  3495  
798c0330c2ca07 Yu Zhao        2024-12-30  3496  		folio = get_pfn_folio(pfn, memcg, pgdat);
bd74fdaea14602 Yu Zhao        2022-09-18  3497  		if (!folio)
bd74fdaea14602 Yu Zhao        2022-09-18  3498  			continue;
bd74fdaea14602 Yu Zhao        2022-09-18  3499  
1d4832becdc2cd Yu Zhao        2024-10-19  3500  		if (!ptep_clear_young_notify(args->vma, addr, pte + i))
1d4832becdc2cd Yu Zhao        2024-10-19  3501  			continue;
bd74fdaea14602 Yu Zhao        2022-09-18  3502  
a52dcec56c5b96 Yu Zhao        2024-12-30  3503  		if (last != folio) {
a52dcec56c5b96 Yu Zhao        2024-12-30 @3504  			walk_update_folio(walk, last, gen, dirty);
bd74fdaea14602 Yu Zhao        2022-09-18  3505  
a52dcec56c5b96 Yu Zhao        2024-12-30  3506  			last = folio;
a52dcec56c5b96 Yu Zhao        2024-12-30  3507  			dirty = false;
a52dcec56c5b96 Yu Zhao        2024-12-30  3508  		}
bd74fdaea14602 Yu Zhao        2022-09-18  3509  
a52dcec56c5b96 Yu Zhao        2024-12-30  3510  		if (pte_dirty(ptent))
a52dcec56c5b96 Yu Zhao        2024-12-30  3511  			dirty = true;
a52dcec56c5b96 Yu Zhao        2024-12-30  3512  
a52dcec56c5b96 Yu Zhao        2024-12-30  3513  		young++;
a52dcec56c5b96 Yu Zhao        2024-12-30  3514  		walk->mm_stats[MM_LEAF_YOUNG]++;
bd74fdaea14602 Yu Zhao        2022-09-18  3515  	}
bd74fdaea14602 Yu Zhao        2022-09-18  3516  
a52dcec56c5b96 Yu Zhao        2024-12-30  3517  	walk_update_folio(walk, last, gen, dirty);
a52dcec56c5b96 Yu Zhao        2024-12-30  3518  	last = NULL;
a52dcec56c5b96 Yu Zhao        2024-12-30  3519  
bd74fdaea14602 Yu Zhao        2022-09-18  3520  	if (i < PTRS_PER_PTE && get_next_vma(PMD_MASK, PAGE_SIZE, args, &start, &end))
bd74fdaea14602 Yu Zhao        2022-09-18  3521  		goto restart;
bd74fdaea14602 Yu Zhao        2022-09-18  3522  
bd74fdaea14602 Yu Zhao        2022-09-18  3523  	arch_leave_lazy_mmu_mode();
52fc048320adf1 Hugh Dickins   2023-06-08  3524  	pte_unmap_unlock(pte, ptl);
bd74fdaea14602 Yu Zhao        2022-09-18  3525  
bd74fdaea14602 Yu Zhao        2022-09-18  3526  	return suitable_to_scan(total, young);
bd74fdaea14602 Yu Zhao        2022-09-18  3527  }
bd74fdaea14602 Yu Zhao        2022-09-18  3528  
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3529  static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area_struct *vma,
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3530  				  struct mm_walk *args, unsigned long *bitmap, unsigned long *first)
bd74fdaea14602 Yu Zhao        2022-09-18  3531  {
bd74fdaea14602 Yu Zhao        2022-09-18  3532  	int i;
a52dcec56c5b96 Yu Zhao        2024-12-30  3533  	bool dirty;
bd74fdaea14602 Yu Zhao        2022-09-18  3534  	pmd_t *pmd;
bd74fdaea14602 Yu Zhao        2022-09-18  3535  	spinlock_t *ptl;
a52dcec56c5b96 Yu Zhao        2024-12-30  3536  	struct folio *last = NULL;
bd74fdaea14602 Yu Zhao        2022-09-18  3537  	struct lru_gen_mm_walk *walk = args->private;
bd74fdaea14602 Yu Zhao        2022-09-18  3538  	struct mem_cgroup *memcg = lruvec_memcg(walk->lruvec);
bd74fdaea14602 Yu Zhao        2022-09-18  3539  	struct pglist_data *pgdat = lruvec_pgdat(walk->lruvec);
cc25bbe10a86a7 Kinsey Ho      2024-02-14  3540  	DEFINE_MAX_SEQ(walk->lruvec);
a52dcec56c5b96 Yu Zhao        2024-12-30  3541  	int gen = lru_gen_from_seq(max_seq);
bd74fdaea14602 Yu Zhao        2022-09-18  3542  
bd74fdaea14602 Yu Zhao        2022-09-18  3543  	VM_WARN_ON_ONCE(pud_leaf(*pud));
bd74fdaea14602 Yu Zhao        2022-09-18  3544  
bd74fdaea14602 Yu Zhao        2022-09-18  3545  	/* try to batch at most 1+MIN_LRU_BATCH+1 entries */
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3546  	if (*first == -1) {
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3547  		*first = addr;
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3548  		bitmap_zero(bitmap, MIN_LRU_BATCH);
bd74fdaea14602 Yu Zhao        2022-09-18  3549  		return;
bd74fdaea14602 Yu Zhao        2022-09-18  3550  	}
bd74fdaea14602 Yu Zhao        2022-09-18  3551  
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3552  	i = addr == -1 ? 0 : pmd_index(addr) - pmd_index(*first);
bd74fdaea14602 Yu Zhao        2022-09-18  3553  	if (i && i <= MIN_LRU_BATCH) {
bd74fdaea14602 Yu Zhao        2022-09-18  3554  		__set_bit(i - 1, bitmap);
bd74fdaea14602 Yu Zhao        2022-09-18  3555  		return;
bd74fdaea14602 Yu Zhao        2022-09-18  3556  	}
bd74fdaea14602 Yu Zhao        2022-09-18  3557  
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3558  	pmd = pmd_offset(pud, *first);
bd74fdaea14602 Yu Zhao        2022-09-18  3559  
bd74fdaea14602 Yu Zhao        2022-09-18  3560  	ptl = pmd_lockptr(args->mm, pmd);
bd74fdaea14602 Yu Zhao        2022-09-18  3561  	if (!spin_trylock(ptl))
bd74fdaea14602 Yu Zhao        2022-09-18  3562  		goto done;
bd74fdaea14602 Yu Zhao        2022-09-18  3563  
bd74fdaea14602 Yu Zhao        2022-09-18  3564  	arch_enter_lazy_mmu_mode();
bd74fdaea14602 Yu Zhao        2022-09-18  3565  
bd74fdaea14602 Yu Zhao        2022-09-18  3566  	do {
bd74fdaea14602 Yu Zhao        2022-09-18  3567  		unsigned long pfn;
bd74fdaea14602 Yu Zhao        2022-09-18  3568  		struct folio *folio;
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3569  
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3570  		/* don't round down the first address */
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3571  		addr = i ? (*first & PMD_MASK) + i * PMD_SIZE : *first;
bd74fdaea14602 Yu Zhao        2022-09-18  3572  
1d4832becdc2cd Yu Zhao        2024-10-19  3573  		if (!pmd_present(pmd[i]))
bd74fdaea14602 Yu Zhao        2022-09-18  3574  			goto next;
bd74fdaea14602 Yu Zhao        2022-09-18  3575  
bd74fdaea14602 Yu Zhao        2022-09-18  3576  		if (!pmd_trans_huge(pmd[i])) {
1d4832becdc2cd Yu Zhao        2024-10-19  3577  			if (!walk->force_scan && should_clear_pmd_young() &&
1d4832becdc2cd Yu Zhao        2024-10-19  3578  			    !mm_has_notifiers(args->mm))
bd74fdaea14602 Yu Zhao        2022-09-18  3579  				pmdp_test_and_clear_young(vma, addr, pmd + i);
bd74fdaea14602 Yu Zhao        2022-09-18  3580  			goto next;
bd74fdaea14602 Yu Zhao        2022-09-18  3581  		}
bd74fdaea14602 Yu Zhao        2022-09-18  3582  
1d4832becdc2cd Yu Zhao        2024-10-19  3583  		pfn = get_pmd_pfn(pmd[i], vma, addr, pgdat);
1d4832becdc2cd Yu Zhao        2024-10-19  3584  		if (pfn == -1)
1d4832becdc2cd Yu Zhao        2024-10-19  3585  			goto next;
1d4832becdc2cd Yu Zhao        2024-10-19  3586  
798c0330c2ca07 Yu Zhao        2024-12-30  3587  		folio = get_pfn_folio(pfn, memcg, pgdat);
bd74fdaea14602 Yu Zhao        2022-09-18  3588  		if (!folio)
bd74fdaea14602 Yu Zhao        2022-09-18  3589  			goto next;
bd74fdaea14602 Yu Zhao        2022-09-18  3590  
1d4832becdc2cd Yu Zhao        2024-10-19  3591  		if (!pmdp_clear_young_notify(vma, addr, pmd + i))
bd74fdaea14602 Yu Zhao        2022-09-18  3592  			goto next;
bd74fdaea14602 Yu Zhao        2022-09-18  3593  
a52dcec56c5b96 Yu Zhao        2024-12-30  3594  		if (last != folio) {
a52dcec56c5b96 Yu Zhao        2024-12-30  3595  			walk_update_folio(walk, last, gen, dirty);
bd74fdaea14602 Yu Zhao        2022-09-18  3596  
a52dcec56c5b96 Yu Zhao        2024-12-30  3597  			last = folio;
a52dcec56c5b96 Yu Zhao        2024-12-30  3598  			dirty = false;
a52dcec56c5b96 Yu Zhao        2024-12-30  3599  		}
bd74fdaea14602 Yu Zhao        2022-09-18  3600  
a52dcec56c5b96 Yu Zhao        2024-12-30  3601  		if (pmd_dirty(pmd[i]))
a52dcec56c5b96 Yu Zhao        2024-12-30  3602  			dirty = true;
a52dcec56c5b96 Yu Zhao        2024-12-30  3603  
a52dcec56c5b96 Yu Zhao        2024-12-30  3604  		walk->mm_stats[MM_LEAF_YOUNG]++;
bd74fdaea14602 Yu Zhao        2022-09-18  3605  next:
bd74fdaea14602 Yu Zhao        2022-09-18  3606  		i = i > MIN_LRU_BATCH ? 0 : find_next_bit(bitmap, MIN_LRU_BATCH, i) + 1;
bd74fdaea14602 Yu Zhao        2022-09-18  3607  	} while (i <= MIN_LRU_BATCH);
bd74fdaea14602 Yu Zhao        2022-09-18  3608  
a52dcec56c5b96 Yu Zhao        2024-12-30 @3609  	walk_update_folio(walk, last, gen, dirty);
a52dcec56c5b96 Yu Zhao        2024-12-30  3610  
bd74fdaea14602 Yu Zhao        2022-09-18  3611  	arch_leave_lazy_mmu_mode();
bd74fdaea14602 Yu Zhao        2022-09-18  3612  	spin_unlock(ptl);
bd74fdaea14602 Yu Zhao        2022-09-18  3613  done:
b5ff4133617d0e T.J. Alumbaugh 2023-01-18  3614  	*first = -1;
bd74fdaea14602 Yu Zhao        2022-09-18  3615  }
bd74fdaea14602 Yu Zhao        2022-09-18  3616  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2025-12-10  2:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-10  2:29 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-08-29 22:30 mm/vmscan.c:3504 walk_pte_range() error: uninitialized symbol 'dirty' kernel test robot
2025-05-15 15:55 kernel test robot
2025-05-23 10:47 ` Dan Carpenter
2025-05-23 22:27 ` Andrew Morton
2025-05-26 12:32   ` Dan Carpenter
2025-05-28  0:03     ` Andrew Morton

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=202512101022.PEbwpbWW-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@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.