Re: [PATCH 3/5] perf: Add pmu get/put

From: kernel test robot
Date: Wed Oct 09 2024 - 06:45:58 EST


Hi Lucas,

kernel test robot noticed the following build warnings:

[auto build test WARNING on perf-tools-next/perf-tools-next]
[cannot apply to tip/perf/core perf-tools/perf-tools acme/perf/core linus/master v6.12-rc2 next-20241008]
[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/Lucas-De-Marchi/perf-Add-dummy-pmu-module/20241009-023728
base: https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git perf-tools-next
patch link: https://lore.kernel.org/r/20241008183501.1354695-4-lucas.demarchi%40intel.com
patch subject: [PATCH 3/5] perf: Add pmu get/put
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20241009/202410091848.aRUoRWWD-lkp@xxxxxxxxx/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241009/202410091848.aRUoRWWD-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/202410091848.aRUoRWWD-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> kernel/events/core.c:5235:17: warning: unused variable 'module' [-Wunused-variable]
5235 | struct module *module;
| ^~~~~~
1 warning generated.


vim +/module +5235 kernel/events/core.c

5232
5233 static void _free_event(struct perf_event *event)
5234 {
> 5235 struct module *module;
5236
5237 irq_work_sync(&event->pending_irq);
5238 irq_work_sync(&event->pending_disable_irq);
5239 perf_pending_task_sync(event);
5240
5241 unaccount_event(event);
5242
5243 security_perf_event_free(event);
5244
5245 if (event->rb) {
5246 /*
5247 * Can happen when we close an event with re-directed output.
5248 *
5249 * Since we have a 0 refcount, perf_mmap_close() will skip
5250 * over us; possibly making our ring_buffer_put() the last.
5251 */
5252 mutex_lock(&event->mmap_mutex);
5253 ring_buffer_attach(event, NULL);
5254 mutex_unlock(&event->mmap_mutex);
5255 }
5256
5257 if (is_cgroup_event(event))
5258 perf_detach_cgroup(event);
5259
5260 if (!event->parent) {
5261 if (event->attr.sample_type & PERF_SAMPLE_CALLCHAIN)
5262 put_callchain_buffers();
5263 }
5264
5265 perf_event_free_bpf_prog(event);
5266 perf_addr_filters_splice(event, NULL);
5267 kfree(event->addr_filter_ranges);
5268
5269 if (event->destroy)
5270 event->destroy(event);
5271
5272 /*
5273 * Must be after ->destroy(), due to uprobe_perf_close() using
5274 * hw.target.
5275 */
5276 if (event->hw.target)
5277 put_task_struct(event->hw.target);
5278
5279 if (event->pmu_ctx)
5280 put_pmu_ctx(event->pmu_ctx);
5281
5282 /*
5283 * perf_event_free_task() relies on put_ctx() being 'last', in particular
5284 * all task references must be cleaned up.
5285 */
5286 if (event->ctx)
5287 put_ctx(event->ctx);
5288
5289 exclusive_event_destroy(event);
5290
5291 pmu_module_put(&event->pmu);
5292
5293 call_rcu(&event->rcu_head, free_event_rcu);
5294 }
5295

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