Re: [PATCH 1/2] x86: Remove the prefetch() specific implementation on x86_64

From: kernel test robot
Date: Wed May 29 2024 - 16:04:32 EST


Hi Youling,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/master]
[also build test ERROR on linus/master v6.10-rc1 next-20240529]
[cannot apply to tip/auto-latest tip/x86/core bp/for-next]
[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/Youling-Tang/prefetch-Add-ARCH_HAS_PREFETCH-definition-when-the-architecture-is-not-defined/20240529-112345
base: tip/master
patch link: https://lore.kernel.org/r/20240529032059.899347-1-youling.tang%40linux.dev
patch subject: [PATCH 1/2] x86: Remove the prefetch() specific implementation on x86_64
config: x86_64-buildonly-randconfig-006-20240530 (https://download.01.org/0day-ci/archive/20240530/202405300328.eZmSYZrP-lkp@xxxxxxxxx/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240530/202405300328.eZmSYZrP-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/202405300328.eZmSYZrP-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

drivers/soc/fsl/dpio/dpio-service.c: In function 'dpaa2_io_store_next':
>> drivers/soc/fsl/dpio/dpio-service.c:745:17: error: implicit declaration of function 'prefetch'; did you mean 'prefetchw'? [-Werror=implicit-function-declaration]
745 | prefetch(&s->vaddr[s->idx]);
| ^~~~~~~~
| prefetchw
cc1: some warnings being treated as errors
--
drivers/soc/fsl/dpio/qbman-portal.c: In function 'qbman_swp_dqrr_next_direct':
>> drivers/soc/fsl/dpio/qbman-portal.c:1213:17: error: implicit declaration of function 'prefetch'; did you mean 'prefetchw'? [-Werror=implicit-function-declaration]
1213 | prefetch(qbman_get_cmd(s,
| ^~~~~~~~
| prefetchw
cc1: some warnings being treated as errors


vim +745 drivers/soc/fsl/dpio/dpio-service.c

780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 703
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 704 /**
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 705 * dpaa2_io_store_next() - Determine when the next dequeue result is available.
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 706 * @s: the dpaa2_io_store object.
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 707 * @is_last: indicate whether this is the last frame in the pull command.
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 708 *
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 709 * When an object driver performs dequeues to a dpaa2_io_store, this function
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 710 * can be used to determine when the next frame result is available. Once
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 711 * this function returns non-NULL, a subsequent call to it will try to find
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 712 * the next dequeue result.
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 713 *
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 714 * Note that if a pull-dequeue has a NULL result because the target FQ/channel
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 715 * was empty, then this function will also return NULL (rather than expecting
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 716 * the caller to always check for this. As such, "is_last" can be used to
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 717 * differentiate between "end-of-empty-dequeue" and "still-waiting".
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 718 *
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 719 * Return dequeue result for a valid dequeue result, or NULL for empty dequeue.
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 720 */
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 721 struct dpaa2_dq *dpaa2_io_store_next(struct dpaa2_io_store *s, int *is_last)
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 722 {
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 723 int match;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 724 struct dpaa2_dq *ret = &s->vaddr[s->idx];
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 725
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 726 match = qbman_result_has_new_result(s->swp, ret);
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 727 if (!match) {
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 728 *is_last = 0;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 729 return NULL;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 730 }
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 731
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 732 s->idx++;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 733
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 734 if (dpaa2_dq_is_pull_complete(ret)) {
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 735 *is_last = 1;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 736 s->idx = 0;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 737 /*
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 738 * If we get an empty dequeue result to terminate a zero-results
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 739 * vdqcr, return NULL to the caller rather than expecting him to
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 740 * check non-NULL results every time.
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 741 */
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 742 if (!(dpaa2_dq_flags(ret) & DPAA2_DQ_STAT_VALIDFRAME))
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 743 ret = NULL;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 744 } else {
f1e250bf365962 drivers/soc/fsl/dpio/dpio-service.c Ioana Ciocoi Radulescu 2018-12-14 @745 prefetch(&s->vaddr[s->idx]);
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 746 *is_last = 0;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 747 }
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 748
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 749 return ret;
780b626323d721 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Roy Pledge 2017-03-13 750 }
53639c64c686f0 drivers/staging/fsl-mc/bus/dpio/dpio-service.c Laurentiu Tudor 2017-11-17 751 EXPORT_SYMBOL_GPL(dpaa2_io_store_next);
e80081c34b0358 drivers/soc/fsl/dpio/dpio-service.c Roy Pledge 2018-12-18 752

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