Re: [PATCH v2 07/11] kcov: add trace and trace_size to struct kcov_state

From: kernel test robot
Date: Fri Jun 27 2025 - 08:35:28 EST


Hi Alexander,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/x86/core]
[cannot apply to akpm-mm/mm-everything tip/sched/core arnd-asm-generic/master akpm-mm/mm-nonmm-unstable masahiroy-kbuild/for-next masahiroy-kbuild/fixes shuah-kselftest/next shuah-kselftest/fixes linus/master mcgrof/modules-next v6.16-rc3 next-20250627]
[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/Alexander-Potapenko/x86-kcov-disable-instrumentation-of-arch-x86-kernel-tsc-c/20250626-214703
base: tip/x86/core
patch link: https://lore.kernel.org/r/20250626134158.3385080-8-glider%40google.com
patch subject: [PATCH v2 07/11] kcov: add trace and trace_size to struct kcov_state
config: x86_64-buildonly-randconfig-004-20250627 (https://download.01.org/0day-ci/archive/20250627/202506271946.HACEE9U0-lkp@xxxxxxxxx/config)
compiler: clang version 20.1.7 (https://github.com/llvm/llvm-project 6146a88f60492b520a36f8f8f3231e15f3cc6082)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250627/202506271946.HACEE9U0-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/202506271946.HACEE9U0-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> kernel/kcov.c:1013:15: warning: variable 'trace' set but not used [-Wunused-but-set-variable]
1013 | void *area, *trace;
| ^
>> kernel/kcov.c:1014:21: warning: variable 'trace_size' set but not used [-Wunused-but-set-variable]
1014 | unsigned int size, trace_size;
| ^
2 warnings generated.


vim +/trace +1013 kernel/kcov.c

1006
1007 /* See the comment before kcov_remote_start() for usage details. */
1008 void kcov_remote_stop(void)
1009 {
1010 struct task_struct *t = current;
1011 struct kcov *kcov;
1012 unsigned int mode;
> 1013 void *area, *trace;
> 1014 unsigned int size, trace_size;
1015 int sequence;
1016 unsigned long flags;
1017
1018 if (!in_task() && !in_softirq_really())
1019 return;
1020
1021 local_lock_irqsave(&kcov_percpu_data.lock, flags);
1022
1023 mode = READ_ONCE(t->kcov_mode);
1024 barrier();
1025 if (!kcov_mode_enabled(mode)) {
1026 local_unlock_irqrestore(&kcov_percpu_data.lock, flags);
1027 return;
1028 }
1029 /*
1030 * When in softirq, check if the corresponding kcov_remote_start()
1031 * actually found the remote handle and started collecting coverage.
1032 */
1033 if (in_serving_softirq() && !t->kcov_softirq) {
1034 local_unlock_irqrestore(&kcov_percpu_data.lock, flags);
1035 return;
1036 }
1037 /* Make sure that kcov_softirq is only set when in softirq. */
1038 if (WARN_ON(!in_serving_softirq() && t->kcov_softirq)) {
1039 local_unlock_irqrestore(&kcov_percpu_data.lock, flags);
1040 return;
1041 }
1042
1043 kcov = t->kcov;
1044 area = t->kcov_state.area;
1045 size = t->kcov_state.size;
1046 trace = t->kcov_state.trace;
1047 trace_size = t->kcov_state.trace_size;
1048 sequence = t->kcov_state.sequence;
1049
1050 kcov_stop(t);
1051 if (in_serving_softirq()) {
1052 t->kcov_softirq = 0;
1053 kcov_remote_softirq_stop(t);
1054 }
1055
1056 spin_lock(&kcov->lock);
1057 /*
1058 * KCOV_DISABLE could have been called between kcov_remote_start()
1059 * and kcov_remote_stop(), hence the sequence check.
1060 */
1061 if (sequence == kcov->state.sequence && kcov->remote)
1062 kcov_move_area(kcov->mode, kcov->state.area, kcov->state.size,
1063 area);
1064 spin_unlock(&kcov->lock);
1065
1066 if (in_task()) {
1067 spin_lock(&kcov_remote_lock);
1068 kcov_remote_area_put(area, size);
1069 spin_unlock(&kcov_remote_lock);
1070 }
1071
1072 local_unlock_irqrestore(&kcov_percpu_data.lock, flags);
1073
1074 /* Get in kcov_remote_start(). */
1075 kcov_put(kcov);
1076 }
1077 EXPORT_SYMBOL(kcov_remote_stop);
1078

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