linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Yu Zhao <yuzhao@google.com>
Cc: oe-kbuild-all@lists.linux.dev,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	James Houghton <jthoughton@google.com>
Subject: [linux-next:pending-fixes 301/373] mm/vmscan.c:3498: undefined reference to `pmdp_test_and_clear_young'
Date: Fri, 25 Oct 2024 21:12:37 +0800	[thread overview]
Message-ID: <202410252141.djLwbAYF-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git pending-fixes
head:   a06df994e3b96f0f6b97e5d2679c41f60d182bbe
commit: 1ee09e54a76f75dcf5d59737d81bec1624bf4764 [301/373] mm: multi-gen LRU: use {ptep,pmdp}_clear_young_notify()
config: i386-buildonly-randconfig-004-20241025 (https://download.01.org/0day-ci/archive/20241025/202410252141.djLwbAYF-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241025/202410252141.djLwbAYF-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/202410252141.djLwbAYF-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: mm/vmscan.o: in function `walk_pmd_range_locked':
>> mm/vmscan.c:3498: undefined reference to `pmdp_test_and_clear_young'


vim +3498 mm/vmscan.c

  3440	
  3441	static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area_struct *vma,
  3442					  struct mm_walk *args, unsigned long *bitmap, unsigned long *first)
  3443	{
  3444		int i;
  3445		pmd_t *pmd;
  3446		spinlock_t *ptl;
  3447		struct lru_gen_mm_walk *walk = args->private;
  3448		struct mem_cgroup *memcg = lruvec_memcg(walk->lruvec);
  3449		struct pglist_data *pgdat = lruvec_pgdat(walk->lruvec);
  3450		DEFINE_MAX_SEQ(walk->lruvec);
  3451		int old_gen, new_gen = lru_gen_from_seq(max_seq);
  3452	
  3453		VM_WARN_ON_ONCE(pud_leaf(*pud));
  3454	
  3455		/* try to batch at most 1+MIN_LRU_BATCH+1 entries */
  3456		if (*first == -1) {
  3457			*first = addr;
  3458			bitmap_zero(bitmap, MIN_LRU_BATCH);
  3459			return;
  3460		}
  3461	
  3462		i = addr == -1 ? 0 : pmd_index(addr) - pmd_index(*first);
  3463		if (i && i <= MIN_LRU_BATCH) {
  3464			__set_bit(i - 1, bitmap);
  3465			return;
  3466		}
  3467	
  3468		pmd = pmd_offset(pud, *first);
  3469	
  3470		ptl = pmd_lockptr(args->mm, pmd);
  3471		if (!spin_trylock(ptl))
  3472			goto done;
  3473	
  3474		arch_enter_lazy_mmu_mode();
  3475	
  3476		do {
  3477			unsigned long pfn;
  3478			struct folio *folio;
  3479	
  3480			/* don't round down the first address */
  3481			addr = i ? (*first & PMD_MASK) + i * PMD_SIZE : *first;
  3482	
  3483			if (pmd_present(pmd[i]) && !pmd_trans_huge(pmd[i])) {
  3484				if (!walk->force_scan && should_clear_pmd_young() &&
  3485				    !mm_has_notifiers(args->mm))
  3486					pmdp_test_and_clear_young(vma, addr, pmd + i);
  3487				goto next;
  3488			}
  3489	
  3490			pfn = get_pmd_pfn(pmd[i], vma, addr, pgdat);
  3491			if (pfn == -1)
  3492				goto next;
  3493	
  3494			folio = get_pfn_folio(pfn, memcg, pgdat, walk->can_swap);
  3495			if (!folio)
  3496				goto next;
  3497	
> 3498			if (!pmdp_clear_young_notify(vma, addr, pmd + i))
  3499				goto next;
  3500	
  3501			walk->mm_stats[MM_LEAF_YOUNG]++;
  3502	
  3503			if (pmd_dirty(pmd[i]) && !folio_test_dirty(folio) &&
  3504			    !(folio_test_anon(folio) && folio_test_swapbacked(folio) &&
  3505			      !folio_test_swapcache(folio)))
  3506				folio_mark_dirty(folio);
  3507	
  3508			old_gen = folio_update_gen(folio, new_gen);
  3509			if (old_gen >= 0 && old_gen != new_gen)
  3510				update_batch_size(walk, folio, old_gen, new_gen);
  3511	next:
  3512			i = i > MIN_LRU_BATCH ? 0 : find_next_bit(bitmap, MIN_LRU_BATCH, i) + 1;
  3513		} while (i <= MIN_LRU_BATCH);
  3514	
  3515		arch_leave_lazy_mmu_mode();
  3516		spin_unlock(ptl);
  3517	done:
  3518		*first = -1;
  3519	}
  3520	

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


             reply	other threads:[~2024-10-25 13:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-25 13:12 kernel test robot [this message]
2024-10-25 19:21 ` James Houghton
2024-10-30 11:28   ` Arnd Bergmann

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=202410252141.djLwbAYF-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=jthoughton@google.com \
    --cc=linux-mm@kvack.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=yuzhao@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox