Re: [PATCH v3 05/11] vduse: Support automatic irq callback affinity

From: kernel test robot
Date: Tue Feb 28 2023 - 06:13:43 EST


Hi Xie,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/irq/core]
[also build test WARNING on linus/master next-20230228]
[cannot apply to mst-vhost/linux-next v6.2]
[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/Xie-Yongji/lib-group_cpus-Export-group_cpus_evenly/20230228-174438
patch link: https://lore.kernel.org/r/20230228094110.37-6-xieyongji%40bytedance.com
patch subject: [PATCH v3 05/11] vduse: Support automatic irq callback affinity
config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20230228/202302281954.jRA7Qzq4-lkp@xxxxxxxxx/config)
compiler: m68k-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/6c15cc28cb814c0e6cb80955bc59517e80c15ae2
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Xie-Yongji/lib-group_cpus-Export-group_cpus_evenly/20230228-174438
git checkout 6c15cc28cb814c0e6cb80955bc59517e80c15ae2
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/vdpa/vdpa_user/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202302281954.jRA7Qzq4-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/vdpa/vdpa_user/vduse_dev.c:725:1: warning: no previous prototype for 'create_affinity_masks' [-Wmissing-prototypes]
725 | create_affinity_masks(unsigned int nvecs, struct irq_affinity *affd)
| ^~~~~~~~~~~~~~~~~~~~~


vim +/create_affinity_masks +725 drivers/vdpa/vdpa_user/vduse_dev.c

723
724 struct cpumask *
> 725 create_affinity_masks(unsigned int nvecs, struct irq_affinity *affd)
726 {
727 unsigned int affvecs = 0, curvec, usedvecs, i;
728 struct cpumask *masks = NULL;
729
730 if (nvecs > affd->pre_vectors + affd->post_vectors)
731 affvecs = nvecs - affd->pre_vectors - affd->post_vectors;
732
733 if (!affd->calc_sets)
734 affd->calc_sets = default_calc_sets;
735
736 affd->calc_sets(affd, affvecs);
737
738 if (!affvecs)
739 return NULL;
740
741 masks = kcalloc(nvecs, sizeof(*masks), GFP_KERNEL);
742 if (!masks)
743 return NULL;
744
745 /* Fill out vectors at the beginning that don't need affinity */
746 for (curvec = 0; curvec < affd->pre_vectors; curvec++)
747 cpumask_setall(&masks[curvec]);
748
749 for (i = 0, usedvecs = 0; i < affd->nr_sets; i++) {
750 unsigned int this_vecs = affd->set_size[i];
751 int j;
752 struct cpumask *result = group_cpus_evenly(this_vecs);
753
754 if (!result) {
755 kfree(masks);
756 return NULL;
757 }
758
759 for (j = 0; j < this_vecs; j++)
760 cpumask_copy(&masks[curvec + j], &result[j]);
761 kfree(result);
762
763 curvec += this_vecs;
764 usedvecs += this_vecs;
765 }
766
767 /* Fill out vectors at the end that don't need affinity */
768 if (usedvecs >= affvecs)
769 curvec = affd->pre_vectors + affvecs;
770 else
771 curvec = affd->pre_vectors + usedvecs;
772 for (; curvec < nvecs; curvec++)
773 cpumask_setall(&masks[curvec]);
774
775 return masks;
776 }
777

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