Re: [PATCH 1/2] tracing: Fix cpu buffers unavailable due to 'record_disabled' messed

From: Zheng Yejian
Date: Fri Aug 04 2023 - 21:56:36 EST


On 2023/8/5 09:15, kernel test robot wrote:
Hi Zheng,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on rostedt-trace/for-next v6.5-rc4 next-20230804]
[cannot apply to rostedt-trace/for-next-urgent]
[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/Zheng-Yejian/tracing-Fix-cpu-buffers-unavailable-due-to-record_disabled-messed/20230804-204751
base: linus/master
patch link: https://lore.kernel.org/r/20230804124549.2562977-2-zhengyejian1%40huawei.com
patch subject: [PATCH 1/2] tracing: Fix cpu buffers unavailable due to 'record_disabled' messed
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20230805/202308050731.PQutr3r0-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230805/202308050731.PQutr3r0-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/202308050731.PQutr3r0-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

kernel/trace/trace.c: In function 'tracing_set_cpumask':
kernel/trace/trace.c:5280:60: error: 'struct trace_array' has no member named 'max_buffer'; did you mean 'array_buffer'?
5280 | ring_buffer_record_disable_cpu(tr->max_buffer.buffer, cpu);
| ^~~~~~~~~~
| array_buffer
kernel/trace/trace.c:5286:59: error: 'struct trace_array' has no member named 'max_buffer'; did you mean 'array_buffer'?
5286 | ring_buffer_record_enable_cpu(tr->max_buffer.buffer, cpu);
| ^~~~~~~~~~
| array_buffer


Thank you, robot!
I'll fix it in v2 soon.


vim +5280 kernel/trace/trace.c

5260
5261 int tracing_set_cpumask(struct trace_array *tr,
5262 cpumask_var_t tracing_cpumask_new)
5263 {
5264 int cpu;
5265
5266 if (!tr)
5267 return -EINVAL;
5268
5269 local_irq_disable();
5270 arch_spin_lock(&tr->max_lock);
5271 for_each_tracing_cpu(cpu) {
5272 /*
5273 * Increase/decrease the disabled counter if we are
5274 * about to flip a bit in the cpumask:
5275 */
5276 if (cpumask_test_cpu(cpu, tr->tracing_cpumask) &&
5277 !cpumask_test_cpu(cpu, tracing_cpumask_new)) {
5278 atomic_inc(&per_cpu_ptr(tr->array_buffer.data, cpu)->disabled);
5279 ring_buffer_record_disable_cpu(tr->array_buffer.buffer, cpu);
5280 ring_buffer_record_disable_cpu(tr->max_buffer.buffer, cpu);
5281 }
5282 if (!cpumask_test_cpu(cpu, tr->tracing_cpumask) &&
5283 cpumask_test_cpu(cpu, tracing_cpumask_new)) {
5284 atomic_dec(&per_cpu_ptr(tr->array_buffer.data, cpu)->disabled);
5285 ring_buffer_record_enable_cpu(tr->array_buffer.buffer, cpu);
5286 ring_buffer_record_enable_cpu(tr->max_buffer.buffer, cpu);
5287 }
5288 }
5289 arch_spin_unlock(&tr->max_lock);
5290 local_irq_enable();
5291
5292 cpumask_copy(tr->tracing_cpumask, tracing_cpumask_new);
5293
5294 return 0;
5295 }
5296