Re: [v5 6/7] mm: Defer TLB flush by keeping both src and dst folios at migration

From: kernel test robot
Date: Thu Jan 11 2024 - 17:13:15 EST


Hi Byungchul,

kernel test robot noticed the following build warnings:

[auto build test WARNING on akpm-mm/mm-everything]
[also build test WARNING on tip/sched/core tip/x86/core arm64/for-next/core tip/x86/mm linus/master v6.7 next-20240111]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Byungchul-Park/x86-tlb-Add-APIs-manipulating-tlb-batch-s-arch-data/20240111-141049
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20240111060757.13563-7-byungchul%40sk.com
patch subject: [v5 6/7] mm: Defer TLB flush by keeping both src and dst folios at migration
config: x86_64-randconfig-161-20240111 (https://download.01.org/0day-ci/archive/20240112/202401120637.ZuSqfagi-lkp@xxxxxxxxx/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/20240112/202401120637.ZuSqfagi-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401120637.ZuSqfagi-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> mm/migrate.c:152:6: warning: no previous prototype for 'migrc_flush_start' [-Wmissing-prototypes]
152 | void migrc_flush_start(void)
| ^~~~~~~~~~~~~~~~~
>> mm/migrate.c:161:6: warning: no previous prototype for 'migrc_flush_end' [-Wmissing-prototypes]
161 | void migrc_flush_end(struct arch_tlbflush_unmap_batch *arch)
| ^~~~~~~~~~~~~~~


vim +/migrc_flush_start +152 mm/migrate.c

151
> 152 void migrc_flush_start(void)
153 {
154 unsigned long flags;
155
156 spin_lock_irqsave(&migrc_lock, flags);
157 migrc_flushing++;
158 spin_unlock_irqrestore(&migrc_lock, flags);
159 }
160
> 161 void migrc_flush_end(struct arch_tlbflush_unmap_batch *arch)
162 {
163 LIST_HEAD(folios);
164 struct folio *f, *f2;
165 unsigned long flags;
166
167 spin_lock_irqsave(&migrc_lock, flags);
168 if (!arch_tlbbatch_done(&migrc_ubc.arch, arch)) {
169 list_splice_init(&migrc_folios, &folios);
170 migrc_ubc.flush_required = false;
171 migrc_ubc.writable = false;
172 }
173 migrc_flushing--;
174 spin_unlock_irqrestore(&migrc_lock, flags);
175
176 list_for_each_entry_safe(f, f2, &folios, lru) {
177 folio_put_small_nopcp(f);
178 atomic_dec(&folio_zone(f)->migrc_pending_nr);
179 }
180 }
181

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