All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com
Subject: Re: [PATCH v2] perf/bpf: Fix data races in BPF perf event handling
Date: Tue, 25 Aug 2026 11:25:37 +0800	[thread overview]
Message-ID: <202608251117.NUwDpYQx-lkp@intel.com> (raw)

:::::: 
:::::: Manual check reason: "linux-review patch is more than 7 days old, verify it wasn't already superseded"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260813060528.365959-1-kartikey406@gmail.com>
References: <20260813060528.365959-1-kartikey406@gmail.com>
TO: Deepanshu Kartikey <kartikey406@gmail.com>
TO: peterz@infradead.org
TO: mingo@redhat.com
TO: acme@kernel.org
TO: namhyung@kernel.org
TO: mark.rutland@arm.com
TO: alexander.shishkin@linux.intel.com
TO: jolsa@kernel.org
TO: olsajiri@gmail.com
TO: irogers@google.com
TO: adrian.hunter@intel.com
TO: james.clark@linaro.org
TO: song@kernel.org
TO: kpsingh@kernel.org
TO: mattbobrowski@google.com
TO: ast@kernel.org
TO: daniel@iogearbox.net
TO: andrii@kernel.org
TO: eddyz87@gmail.com
TO: memxor@gmail.com
TO: martin.lau@linux.dev
TO: yonghong.song@linux.dev
TO: emil@etsalapatis.com
TO: rostedt@goodmis.org
TO: mhiramat@kernel.org
TO: mathieu.desnoyers@efficios.com
CC: linux-perf-users@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: bpf@vger.kernel.org
CC: linux-trace-kernel@vger.kernel.org
CC: Deepanshu Kartikey <kartikey406@gmail.com>

Hi Deepanshu,

kernel test robot noticed the following build errors:

[auto build test ERROR on perf-tools-next/perf-tools-next]
[also build test ERROR on tip/perf/core perf-tools/perf-tools linus/master v7.2 next-20260821]
[cannot apply to linux-review/Deepanshu-Kartikey/perf-bpf-Fix-data-race-in-__perf_event_overflow/20260812-052331 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/Deepanshu-Kartikey/perf-bpf-Fix-data-races-in-BPF-perf-event-handling/20260813-113528
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/20260813060528.365959-1-kartikey406%40gmail.com
patch subject: [PATCH v2] perf/bpf: Fix data races in BPF perf event handling
:::::: branch date: 14 hours ago
:::::: commit date: 14 hours ago
config: sh-randconfig-r072-20260825 (https://download.01.org/0day-ci/archive/20260825/202608251117.NUwDpYQx-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 13.4.0
smatch: v0.5.0-9187-g5189e3fb
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260825/202608251117.NUwDpYQx-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/r/202608251117.NUwDpYQx-lkp@intel.com/

All errors (new ones prefixed by >>):

   kernel/events/core.c: In function '__perf_event_overflow':
>> kernel/events/core.c:10771:14: error: too many arguments to function 'bpf_overflow_handler'
   10771 |             !bpf_overflow_handler(event, data, regs, prog))
         |              ^~~~~~~~~~~~~~~~~~~~
   kernel/events/core.c:10726:19: note: declared here
   10726 | static inline int bpf_overflow_handler(struct perf_event *event,
         |                   ^~~~~~~~~~~~~~~~~~~~


vim +/bpf_overflow_handler +10771 kernel/events/core.c

4c03fe11b96bda kernel/events/core.c  Kyle Huey                 2024-04-11  10744  
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10745  /*
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10746   * Generic event overflow handling, sampling.
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10747   */
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10748  
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10749  static int __perf_event_overflow(struct perf_event *event,
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10750  				 int throttle, struct perf_sample_data *data,
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10751  				 struct pt_regs *regs)
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10752  {
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10753  	int events = atomic_read(&event->event_limit);
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10754  	int ret = 0;
6910c8cf9c180b kernel/events/core.c  Deepanshu Kartikey        2026-08-13  10755  	struct bpf_prog *prog;
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10756  
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10757  	/*
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10758  	 * Non-sampling counters might still use the PMI to fold short
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10759  	 * hardware counters, ignore those.
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10760  	 */
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10761  	if (unlikely(!is_sampling_event(event)))
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10762  		return 0;
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10763  
475113d937adfd kernel/events/core.c  Jiri Olsa                 2016-12-28  10764  	ret = __perf_event_account_interrupt(event, throttle);
cc1582c231ea04 kernel/events/core.c  Jin Yao                   2017-05-25  10765  
18d92bb57c3950 kernel/events/core.c  Adrian Hunter             2024-10-22  10766  	if (event->attr.aux_pause)
18d92bb57c3950 kernel/events/core.c  Adrian Hunter             2024-10-22  10767  		perf_event_aux_pause(event->aux_event, true);
18d92bb57c3950 kernel/events/core.c  Adrian Hunter             2024-10-22  10768  
6910c8cf9c180b kernel/events/core.c  Deepanshu Kartikey        2026-08-13  10769  	prog = READ_ONCE(event->prog);
6910c8cf9c180b kernel/events/core.c  Deepanshu Kartikey        2026-08-13  10770  	if (prog && prog->type == BPF_PROG_TYPE_PERF_EVENT &&
6910c8cf9c180b kernel/events/core.c  Deepanshu Kartikey        2026-08-13 @10771  	    !bpf_overflow_handler(event, data, regs, prog))
18d92bb57c3950 kernel/events/core.c  Adrian Hunter             2024-10-22  10772  		goto out;
c4fcc7d1f41532 kernel/events/core.c  Kyle Huey                 2024-04-11  10773  
2023b359214bbc kernel/perf_counter.c Peter Zijlstra            2009-05-05  10774  	/*
2023b359214bbc kernel/perf_counter.c Peter Zijlstra            2009-05-05  10775  	 * XXX event_limit might not quite work as expected on inherited
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar               2009-09-21  10776  	 * events
2023b359214bbc kernel/perf_counter.c Peter Zijlstra            2009-05-05  10777  	 */
2023b359214bbc kernel/perf_counter.c Peter Zijlstra            2009-05-05  10778  
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar               2009-09-21  10779  	event->pending_kill = POLL_IN;
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar               2009-09-21  10780  	if (events && atomic_dec_and_test(&event->event_limit)) {
79f146415623fe kernel/perf_counter.c Peter Zijlstra            2009-04-06  10781  		ret = 1;
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar               2009-09-21  10782  		event->pending_kill = POLL_HUP;
5aab90ce1ec449 kernel/events/core.c  Jiri Olsa                 2016-10-26  10783  		perf_event_disable_inatomic(event);
18dbcbfabfffc4 kernel/events/core.c  Kan Liang                 2025-08-11  10784  		event->pmu->stop(event, 0);
79f146415623fe kernel/perf_counter.c Peter Zijlstra            2009-04-06  10785  	}
79f146415623fe kernel/perf_counter.c Peter Zijlstra            2009-04-06  10786  
ca6c21327c6af0 kernel/events/core.c  Peter Zijlstra            2022-10-06  10787  	if (event->attr.sigtrap) {
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10788  		/*
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10789  		 * The desired behaviour of sigtrap vs invalid samples is a bit
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10790  		 * tricky; on the one hand, one should not loose the SIGTRAP if
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10791  		 * it is the first event, on the other hand, we should also not
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10792  		 * trigger the WARN or override the data address.
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10793  		 */
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10794  		bool valid_sample = sample_is_allowed(event, regs);
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10795  		unsigned int pending_id = 1;
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10796  		enum task_work_notify_mode notify_mode;
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10797  
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10798  		if (regs)
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10799  			pending_id = hash32_ptr((void *)instruction_pointer(regs)) ?: 1;
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10800  
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10801  		notify_mode = in_nmi() ? TWA_NMI_CURRENT : TWA_RESUME;
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10802  
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10803  		if (!event->pending_work &&
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10804  		    !task_work_add(current, &event->pending_task, notify_mode)) {
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10805  			event->pending_work = pending_id;
79bd2330108594 kernel/events/core.c  Ben Gainey                2024-07-30  10806  			local_inc(&event->ctx->nr_no_switch_fast);
56799bc0356587 kernel/events/core.c  Frederic Weisbecker       2025-03-04  10807  			WARN_ON_ONCE(!atomic_long_inc_not_zero(&event->refcount));
058244c683111d kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10808  
058244c683111d kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10809  			event->pending_addr = 0;
058244c683111d kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10810  			if (valid_sample && (data->sample_flags & PERF_SAMPLE_ADDR))
058244c683111d kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10811  				event->pending_addr = data->addr;
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10812  
030a976efae83f kernel/events/core.c  Peter Zijlstra            2022-11-19  10813  		} else if (event->attr.exclude_kernel && valid_sample) {
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10814  			/*
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10815  			 * Should not be able to return to user space without
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10816  			 * consuming pending_work; with exceptions:
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10817  			 *
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10818  			 *  1. Where !exclude_kernel, events can overflow again
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10819  			 *     in the kernel without returning to user space.
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10820  			 *
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10821  			 *  2. Events that can overflow again before the IRQ-
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10822  			 *     work without user space progress (e.g. hrtimer).
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10823  			 *     To approximate progress (with false negatives),
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10824  			 *     check 32-bit hash of the current IP.
bb88f9695460be kernel/events/core.c  Marco Elver               2022-10-31  10825  			 */
c5d93d23a26012 kernel/events/core.c  Sebastian Andrzej Siewior 2024-07-04  10826  			WARN_ON_ONCE(event->pending_work != pending_id);
ca6c21327c6af0 kernel/events/core.c  Peter Zijlstra            2022-10-06  10827  		}
ca6c21327c6af0 kernel/events/core.c  Peter Zijlstra            2022-10-06  10828  	}
ca6c21327c6af0 kernel/events/core.c  Peter Zijlstra            2022-10-06  10829  
aa6a5f3cb2b2ed kernel/events/core.c  Alexei Starovoitov        2016-09-01  10830  	READ_ONCE(event->overflow_handler)(event, data, regs);
453f19eea7dbad kernel/perf_event.c   Peter Zijlstra            2009-11-20  10831  
fed66e2cdd4f12 kernel/events/core.c  Peter Zijlstra            2015-06-11  10832  	if (*perf_event_fasync(event) && event->pending_kill) {
f506b3dc0ec454 kernel/events/core.c  Peter Zijlstra            2011-05-26  10833  		event->pending_wakeup = 1;
ca6c21327c6af0 kernel/events/core.c  Peter Zijlstra            2022-10-06  10834  		irq_work_queue(&event->pending_irq);
f506b3dc0ec454 kernel/events/core.c  Peter Zijlstra            2011-05-26  10835  	}
18d92bb57c3950 kernel/events/core.c  Adrian Hunter             2024-10-22  10836  out:
18d92bb57c3950 kernel/events/core.c  Adrian Hunter             2024-10-22  10837  	if (event->attr.aux_resume)
18d92bb57c3950 kernel/events/core.c  Adrian Hunter             2024-10-22  10838  		perf_event_aux_pause(event->aux_event, false);
f506b3dc0ec454 kernel/events/core.c  Peter Zijlstra            2011-05-26  10839  
79f146415623fe kernel/perf_counter.c Peter Zijlstra            2009-04-06  10840  	return ret;
f6c7d5fe58b484 kernel/perf_counter.c Peter Zijlstra            2009-04-06  10841  }
f6c7d5fe58b484 kernel/perf_counter.c Peter Zijlstra            2009-04-06  10842  

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

             reply	other threads:[~2026-08-25  3:26 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-25  3:25 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-08-25  3:38 [PATCH v2] perf/bpf: Fix data races in BPF perf event handling kernel test robot
2026-08-13  6:05 Deepanshu Kartikey
2026-08-13  6:22 ` sashiko-bot
2026-08-13  7:11 ` bot+bpf-ci
2026-08-13 11:05 ` Peter Zijlstra
2026-08-21  1:20   ` Deepanshu Kartikey

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=202608251117.NUwDpYQx-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=oe-kbuild@lists.linux.dev \
    /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.