mm/slub.c:2142:15: warning: variable 'partial_slabs' set but not used

From: kernel test robot
Date: Tue Sep 05 2023 - 13:00:28 EST


Hi Vlastimil,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3f86ed6ec0b390c033eae7f9c487a3fea268e027
commit: bb192ed9aa7191a5d65548f82c42b6750d65f569 mm/slub: Convert most struct page to struct slab by spatch
date: 1 year, 8 months ago
:::::: branch date: 12 hours ago
:::::: commit date: 1 year, 8 months ago
config: i386-allnoconfig (https://download.01.org/0day-ci/archive/20230905/202309051941.72ZiILCM-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230905/202309051941.72ZiILCM-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/r/202309051941.72ZiILCM-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> mm/slub.c:2142:15: warning: variable 'partial_slabs' set but not used [-Wunused-but-set-variable]
unsigned int partial_slabs = 0;
^
mm/slub.c:1681:21: warning: unused function 'kmalloc_large_node_hook' [-Wunused-function]
static inline void *kmalloc_large_node_hook(void *ptr, size_t size, gfp_t flags)
^
2 warnings generated.


vim +/partial_slabs +2142 mm/slub.c

49e2258586b423 Christoph Lameter 2011-08-09 2132
81819f0fc8285a Christoph Lameter 2007-05-06 2133 /*
672bba3a4b2e65 Christoph Lameter 2007-05-09 2134 * Try to allocate a partial slab from a specific node.
81819f0fc8285a Christoph Lameter 2007-05-06 2135 */
8ba00bb68a067c Joonsoo Kim 2012-09-17 2136 static void *get_partial_node(struct kmem_cache *s, struct kmem_cache_node *n,
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2137 struct slab **ret_slab, gfp_t gfpflags)
81819f0fc8285a Christoph Lameter 2007-05-06 2138 {
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2139 struct slab *slab, *slab2;
49e2258586b423 Christoph Lameter 2011-08-09 2140 void *object = NULL;
4b1f449dedd2ff Vlastimil Babka 2021-05-11 2141 unsigned long flags;
bb192ed9aa7191 Vlastimil Babka 2021-11-03 @2142 unsigned int partial_slabs = 0;
81819f0fc8285a Christoph Lameter 2007-05-06 2143
81819f0fc8285a Christoph Lameter 2007-05-06 2144 /*
81819f0fc8285a Christoph Lameter 2007-05-06 2145 * Racy check. If we mistakenly see no partial slabs then we
81819f0fc8285a Christoph Lameter 2007-05-06 2146 * just allocate an empty slab. If we mistakenly try to get a
70b6d25ec59cbc Chen Tao 2020-10-15 2147 * partial slab and there is none available then get_partial()
672bba3a4b2e65 Christoph Lameter 2007-05-09 2148 * will return NULL.
81819f0fc8285a Christoph Lameter 2007-05-06 2149 */
81819f0fc8285a Christoph Lameter 2007-05-06 2150 if (!n || !n->nr_partial)
81819f0fc8285a Christoph Lameter 2007-05-06 2151 return NULL;
81819f0fc8285a Christoph Lameter 2007-05-06 2152
4b1f449dedd2ff Vlastimil Babka 2021-05-11 2153 spin_lock_irqsave(&n->list_lock, flags);
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2154 list_for_each_entry_safe(slab, slab2, &n->partial, slab_list) {
8ba00bb68a067c Joonsoo Kim 2012-09-17 2155 void *t;
49e2258586b423 Christoph Lameter 2011-08-09 2156
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2157 if (!pfmemalloc_match(slab, gfpflags))
8ba00bb68a067c Joonsoo Kim 2012-09-17 2158 continue;
8ba00bb68a067c Joonsoo Kim 2012-09-17 2159
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2160 t = acquire_slab(s, n, slab, object == NULL);
49e2258586b423 Christoph Lameter 2011-08-09 2161 if (!t)
9b1ea29bc0d7b9 Linus Torvalds 2021-03-10 2162 break;
49e2258586b423 Christoph Lameter 2011-08-09 2163
12d79634f8d7af Alex Shi 2011-09-07 2164 if (!object) {
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2165 *ret_slab = slab;
49e2258586b423 Christoph Lameter 2011-08-09 2166 stat(s, ALLOC_FROM_PARTIAL);
49e2258586b423 Christoph Lameter 2011-08-09 2167 object = t;
49e2258586b423 Christoph Lameter 2011-08-09 2168 } else {
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2169 put_cpu_partial(s, slab, 0);
8028dcea8abbbd Alex Shi 2012-02-03 2170 stat(s, CPU_PARTIAL_NODE);
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2171 partial_slabs++;
49e2258586b423 Christoph Lameter 2011-08-09 2172 }
b47291ef02b0be Vlastimil Babka 2021-11-05 2173 #ifdef CONFIG_SLUB_CPU_PARTIAL
345c905d13a4ec Joonsoo Kim 2013-06-19 2174 if (!kmem_cache_has_cpu_partial(s)
bb192ed9aa7191 Vlastimil Babka 2021-11-03 2175 || partial_slabs > s->cpu_partial_slabs / 2)
49e2258586b423 Christoph Lameter 2011-08-09 2176 break;
b47291ef02b0be Vlastimil Babka 2021-11-05 2177 #else
b47291ef02b0be Vlastimil Babka 2021-11-05 2178 break;
b47291ef02b0be Vlastimil Babka 2021-11-05 2179 #endif
49e2258586b423 Christoph Lameter 2011-08-09 2180
497b66f2ecc978 Christoph Lameter 2011-08-09 2181 }
4b1f449dedd2ff Vlastimil Babka 2021-05-11 2182 spin_unlock_irqrestore(&n->list_lock, flags);
497b66f2ecc978 Christoph Lameter 2011-08-09 2183 return object;
81819f0fc8285a Christoph Lameter 2007-05-06 2184 }
81819f0fc8285a Christoph Lameter 2007-05-06 2185

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