From: kernel test robot <lkp@intel.com>
To: Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Rosalie Fang <rosaliefang@google.com>
Subject: Re: [PATCH] perf/core: Fix slow perf_event_task_exit() with LBR callstacks
Date: Tue, 13 Jan 2026 08:24:12 +0800 [thread overview]
Message-ID: <202601130832.k1P5IrSS-lkp@intel.com> (raw)
In-Reply-To: <20260112165157.1919624-1-namhyung@kernel.org>
Hi Namhyung,
kernel test robot noticed the following build warnings:
[auto build test WARNING on perf-tools-next/perf-tools-next]
[also build test WARNING on tip/perf/core perf-tools/perf-tools linus/master v6.19-rc5 next-20260109]
[cannot apply to acme/perf/core]
[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/Namhyung-Kim/perf-core-Fix-slow-perf_event_task_exit-with-LBR-callstacks/20260113-005301
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/20260112165157.1919624-1-namhyung%40kernel.org
patch subject: [PATCH] perf/core: Fix slow perf_event_task_exit() with LBR callstacks
config: hexagon-randconfig-r122-20260113 (https://download.01.org/0day-ci/archive/20260113/202601130832.k1P5IrSS-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260113/202601130832.k1P5IrSS-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601130832.k1P5IrSS-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/events/core.c:1486:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:1486:15: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:1486:15: sparse: struct perf_event_context *
kernel/events/core.c:1499:28: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:1499:28: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:1499:28: sparse: struct perf_event_context *
kernel/events/core.c:3669:20: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:3669:20: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:3669:20: sparse: struct perf_event_context *
kernel/events/core.c:3673:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:3673:18: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:3673:18: sparse: struct perf_event_context *
kernel/events/core.c:3674:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:3674:23: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:3674:23: sparse: struct perf_event_context *
kernel/events/core.c:3727:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:3727:25: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:3727:25: sparse: struct perf_event_context *
kernel/events/core.c:3728:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:3728:25: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:3728:25: sparse: struct perf_event_context *
kernel/events/core.c:4111:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:4111:15: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:4111:15: sparse: struct perf_event_context *
kernel/events/core.c:4519:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:4519:15: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:4519:15: sparse: struct perf_event_context *
kernel/events/core.c:5008:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:5008:25: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:5008:25: sparse: struct perf_event_context *
kernel/events/core.c:6651:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:6651:9: sparse: struct perf_buffer [noderef] __rcu *
kernel/events/core.c:6651:9: sparse: struct perf_buffer *
>> kernel/events/core.c:5283:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct perf_ctx_data [noderef] __rcu **___op @@ got struct perf_ctx_data **__ai_oldp @@
>> kernel/events/core.c:5283:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct perf_ctx_data [noderef] __rcu *__new @@ got struct perf_ctx_data *[assigned] cd @@
kernel/events/core.c:5294:37: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct perf_ctx_data [noderef] __rcu **___op @@ got struct perf_ctx_data **__ai_oldp @@
kernel/events/core.c:6166:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __poll_t [usertype] events @@ got int @@
kernel/events/core.c:6402:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:6402:22: sparse: struct perf_buffer [noderef] __rcu *
kernel/events/core.c:6402:22: sparse: struct perf_buffer *
kernel/events/core.c:6526:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:6526:14: sparse: struct perf_buffer [noderef] __rcu *
kernel/events/core.c:6526:14: sparse: struct perf_buffer *
kernel/events/core.c:6559:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:6559:14: sparse: struct perf_buffer [noderef] __rcu *
kernel/events/core.c:6559:14: sparse: struct perf_buffer *
kernel/events/core.c:6672:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:6672:14: sparse: struct perf_buffer [noderef] __rcu *
kernel/events/core.c:6672:14: sparse: struct perf_buffer *
kernel/events/core.c:6688:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:6688:14: sparse: struct perf_buffer [noderef] __rcu *
kernel/events/core.c:6688:14: sparse: struct perf_buffer *
kernel/events/core.c:8667:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:8667:15: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:8667:15: sparse: struct perf_event_context *
kernel/events/core.c:8755:13: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:8755:13: sparse: struct perf_buffer [noderef] __rcu *
kernel/events/core.c:8755:13: sparse: struct perf_buffer *
kernel/events/core.c:8859:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *real_parent @@
kernel/events/core.c:8859:61: sparse: expected struct task_struct *p
kernel/events/core.c:8859:61: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/events/core.c:8861:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *real_parent @@
kernel/events/core.c:8861:61: sparse: expected struct task_struct *p
kernel/events/core.c:8861:61: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/events/core.c:9597:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:9597:15: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:9597:15: sparse: struct perf_event_context *
kernel/events/core.c:10792:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:10792:9: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:10792:9: sparse: struct swevent_hlist *
kernel/events/core.c:10831:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:10831:17: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:10831:17: sparse: struct swevent_hlist *
kernel/events/core.c:11106:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:11106:23: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:11106:23: sparse: struct perf_event_context *
kernel/events/core.c:14213:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:14213:9: sparse: struct perf_event_context [noderef] __rcu *
kernel/events/core.c:14213:9: sparse: struct perf_event_context *
kernel/events/core.c:14733:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:14733:17: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:14733:17: sparse: struct swevent_hlist *
kernel/events/core.c:184:9: sparse: sparse: context imbalance in 'perf_ctx_lock' - wrong count at exit
kernel/events/core.c:200:9: sparse: sparse: context imbalance in 'perf_ctx_unlock' - unexpected unlock
kernel/events/core.c: note: in included file (through include/linux/rbtree.h, include/linux/mm_types.h, include/linux/mmzone.h, ...):
include/linux/rcupdate.h:895:9: sparse: sparse: context imbalance in 'perf_lock_task_context' - different lock contexts for basic block
kernel/events/core.c:1533:17: sparse: sparse: context imbalance in 'perf_pin_task_context' - unexpected unlock
kernel/events/core.c:3009:9: sparse: sparse: context imbalance in '__perf_install_in_context' - wrong count at exit
kernel/events/core.c:4982:17: sparse: sparse: context imbalance in 'find_get_context' - unexpected unlock
kernel/events/core.c: note: in included file:
kernel/events/internal.h:204:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *src @@
kernel/events/core.c:10645:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:10645:17: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:10645:17: sparse: struct swevent_hlist *
kernel/events/core.c:10665:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:10665:17: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:10665:17: sparse: struct swevent_hlist *
kernel/events/core.c:10781:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:10781:16: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:10781:16: sparse: struct swevent_hlist *
kernel/events/core.c:10781:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:10781:16: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:10781:16: sparse: struct swevent_hlist *
kernel/events/core.c:10781:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/events/core.c:10781:16: sparse: struct swevent_hlist [noderef] __rcu *
kernel/events/core.c:10781:16: sparse: struct swevent_hlist *
vim +5283 kernel/events/core.c
5271
5272 static int
5273 attach_task_ctx_data(struct task_struct *task, struct kmem_cache *ctx_cache,
5274 bool global)
5275 {
5276 struct perf_ctx_data *cd, *old = NULL;
5277
5278 cd = alloc_perf_ctx_data(ctx_cache, global);
5279 if (!cd)
5280 return -ENOMEM;
5281
5282 for (;;) {
> 5283 if (try_cmpxchg(&task->perf_ctx_data, &old, cd)) {
5284 if (old)
5285 perf_free_ctx_data_rcu(old);
5286 /*
5287 * Above try_cmpxchg() pairs with try_cmpxchg() from
5288 * detach_task_ctx_data() such that
5289 * if we race with perf_event_exit_task(), we must
5290 * observe PF_EXITING.
5291 */
5292 if (task->flags & PF_EXITING) {
5293 /* detach_task_ctx_data() may free it already */
5294 if (try_cmpxchg(&task->perf_ctx_data, &cd, NULL))
5295 perf_free_ctx_data_rcu(cd);
5296 }
5297 return 0;
5298 }
5299
5300 if (!old) {
5301 /*
5302 * After seeing a dead @old, we raced with
5303 * removal and lost, try again to install @cd.
5304 */
5305 continue;
5306 }
5307
5308 if (refcount_inc_not_zero(&old->refcount)) {
5309 free_perf_ctx_data(cd); /* unused */
5310 return 0;
5311 }
5312
5313 /*
5314 * @old is a dead object, refcount==0 is stable, try and
5315 * replace it with @cd.
5316 */
5317 }
5318 return 0;
5319 }
5320
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-01-13 0:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-12 16:51 [PATCH] perf/core: Fix slow perf_event_task_exit() with LBR callstacks Namhyung Kim
2026-01-13 0:24 ` kernel test robot [this message]
2026-01-13 14:58 ` kernel test robot
2026-01-13 21:21 ` Namhyung Kim
2026-01-15 21:44 ` [tip: perf/core] " tip-bot2 for Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202601130832.k1P5IrSS-lkp@intel.com \
--to=lkp@intel.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=rosaliefang@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.