* [vbabka:slub-percpu-sheaves-v1r0 8/12] mm/slub.c:5029:18: warning: 'i' is used uninitialized
@ 2024-07-13 5:29 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-07-13 5:29 UTC (permalink / raw)
To: Vlastimil Babka; +Cc: oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git slub-percpu-sheaves-v1r0
head: 9cb4096680ee90fe6be1b22ff3961174fa8e3ee4
commit: 6912a14dbbe63891a545d4cd35b60bcd3dee3d40 [8/12] mm/slub: add opt-in caching layer of percpu sheaves
config: openrisc-allnoconfig (https://download.01.org/0day-ci/archive/20240713/202407131305.sMLSPyd9-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240713/202407131305.sMLSPyd9-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/202407131305.sMLSPyd9-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/slub.c: In function 'pcs_flush_all':
mm/slub.c:2434:36: warning: variable 'rcu_free' set but not used [-Wunused-but-set-variable]
2434 | struct slab_sheaf *spare, *rcu_free;
| ^~~~~~~~
mm/slub.c: In function 'slab_post_alloc_hook':
mm/slub.c:4299:29: warning: variable 'obj_exts' set but not used [-Wunused-but-set-variable]
4299 | struct slabobj_ext *obj_exts;
| ^~~~~~~~
mm/slub.c: In function 'free_to_pcs_bulk':
>> mm/slub.c:5029:18: warning: 'i' is used uninitialized [-Wuninitialized]
5029 | while (i < size) {
| ~~^~~~~~
mm/slub.c:5024:25: note: 'i' was declared here
5024 | unsigned batch, i;
| ^
vim +/i +5029 mm/slub.c
5013
5014 /*
5015 * Bulk free objects to the percpu sheaves.
5016 * Unlike free_to_pcs() this has includes the calls to all necessary hooks
5017 * and the fallback to freeing to slab pages.
5018 */
5019 static void free_to_pcs_bulk(struct kmem_cache *s, size_t size, void **p)
5020 {
5021 struct slub_percpu_sheaves *pcs;
5022 struct slab_sheaf *main;
5023 unsigned long flags;
5024 unsigned batch, i;
5025 bool init;
5026
5027 init = slab_want_init_on_free(s);
5028
> 5029 while (i < size) {
5030 struct slab *slab = virt_to_slab(p[i]);
5031
5032 memcg_slab_free_hook(s, slab, p[i], 1);
5033 alloc_tagging_slab_free_hook(s, slab, p[i], 1);
5034
5035 if (unlikely(!slab_free_hook(s, p[i], init))) {
5036 p[i] = p[--size];
5037 if (!size)
5038 return;
5039 continue;
5040 }
5041
5042 i++;
5043 }
5044
5045 next_batch:
5046 local_lock_irqsave(&s->cpu_sheaves->lock, flags);
5047 pcs = this_cpu_ptr(s->cpu_sheaves);
5048
5049 if (unlikely(pcs->main->size == s->sheaf_capacity)) {
5050
5051 struct slab_sheaf *empty;
5052
5053 if (!pcs->spare) {
5054 empty = barn_get_empty_sheaf(pcs->barn);
5055 if (empty) {
5056 pcs->spare = pcs->main;
5057 pcs->main = empty;
5058 goto do_free;
5059 }
5060 goto no_empty;
5061 }
5062
5063 if (pcs->spare->size < s->sheaf_capacity) {
5064 stat(s, SHEAF_SWAP);
5065 swap(pcs->main, pcs->spare);
5066 goto do_free;
5067 }
5068
5069 empty = barn_replace_full_sheaf(pcs->barn, pcs->main);
5070
5071 if (!IS_ERR(empty)) {
5072 pcs->main = empty;
5073 goto do_free;
5074 }
5075
5076 no_empty:
5077 local_unlock_irqrestore(&s->cpu_sheaves->lock, flags);
5078
5079 /*
5080 * if we depleted all empty sheafs in the barn or there are to
5081 * many full sheafs, free the rest to slab pages
5082 */
5083
5084 __kmem_cache_free_bulk(s, size, p);
5085 return;
5086 }
5087
5088 do_free:
5089 main = pcs->main;
5090 batch = min(size, s->sheaf_capacity - main->size);
5091
5092 memcpy(main->objects + main->size, p, batch * sizeof(void *));
5093 main->size += batch;
5094
5095 local_unlock_irqrestore(&s->cpu_sheaves->lock, flags);
5096
5097 stat_add(s, FREE_PCS, batch);
5098
5099 if (batch < size) {
5100 p += batch;
5101 size -= batch;
5102 goto next_batch;
5103 }
5104 }
5105
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-07-13 5:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-13 5:29 [vbabka:slub-percpu-sheaves-v1r0 8/12] mm/slub.c:5029:18: warning: 'i' is used uninitialized kernel test robot
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.