lkml.org 
[lkml]   [2023]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 1/3] maple_tree: introduce mas_prealloc_calc()
From
On 10/9/23 3:25 PM, kernel test robot wrote:
> Hi Sidhartha,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on akpm-mm/mm-everything]
> [also build test WARNING on linus/master v6.6-rc5 next-20231009]
> [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/Sidhartha-Kumar/maple_tree-introduce-mas_prealloc_calc/20231010-041859
> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link: https://lore.kernel.org/r/20231009201639.920512-2-sidhartha.kumar%40oracle.com
> patch subject: [PATCH 1/3] maple_tree: introduce mas_prealloc_calc()
> config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20231010/202310100603.qsn3ruBx-lkp@intel.com/config)
> compiler: m68k-linux-gcc (GCC) 13.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231010/202310100603.qsn3ruBx-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/202310100603.qsn3ruBx-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
>>> lib/maple_tree.c:5428:5: warning: no previous prototype for 'mas_prealloc_calc' [-Wmissing-prototypes]
> 5428 | int mas_prealloc_calc(struct ma_wr_state *wr_mas)
> | ^~~~~~~~~~~~~~~~~
>
>
> vim +/mas_prealloc_calc +5428 lib/maple_tree.c
>
> 5420
> 5421 /**
> 5422 * mas_prealloc_calc() - Calculate number of nodes needed for a
> 5423 * store operation.
> 5424 * @wr_mas: The maple write state
> 5425 *
> 5426 * Return: Number of nodes required for preallocation.
> 5427 */
>> 5428 int mas_prealloc_calc(struct ma_wr_state *wr_mas)

Adding static inline should fix this compilation error.

> 5429 {
> 5430 struct ma_state *mas = wr_mas->mas;
> 5431 unsigned char node_size;
> 5432
> 5433 if (unlikely(!mas->index && mas->last == ULONG_MAX))
> 5434 return 1;
> 5435
> 5436 /* Root expand */
> 5437 if (unlikely(mas_is_none(mas) || mas_is_ptr(mas)))
> 5438 return 1;
> 5439
> 5440 if (unlikely(!mas_wr_walk(wr_mas))) {
> 5441 /* Spanning store, use worst case for now */
> 5442 return 1 + mas_mt_height(mas) * 3;
> 5443 }
> 5444
> 5445 /* At this point, we are at the leaf node that needs to be altered. */
> 5446 /* Exact fit, no nodes needed. */
> 5447 if (wr_mas->r_min == mas->index && wr_mas->r_max == mas->last)
> 5448 return 0;
> 5449
> 5450 mas_wr_end_piv(wr_mas);
> 5451 node_size = mas_wr_new_end(wr_mas);
> 5452 if (node_size >= mt_slots[wr_mas->type]) {
> 5453 /* Split, worst case for now. */
> 5454 return 1 + mas_mt_height(mas) * 2;
> 5455 }
> 5456
> 5457 /* New root needs a singe node */
> 5458 if (unlikely(mte_is_root(mas->node)))
> 5459 return 1;
> 5460
> 5461 /* Potential spanning rebalance collapsing a node, use worst-case */
> 5462 if (node_size - 1 <= mt_min_slots[wr_mas->type])
> 5463 return mas_mt_height(mas) * 2 - 1;
> 5464
> 5465 /* node store, slot store needs one node */
> 5466 return 1;
> 5467 }
> 5468
>

\
 
 \ /
  Last update: 2023-10-11 00:15    [W:0.052 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site