From: kernel test robot <lkp@intel.com>
To: Andrii Nakryiko <andrii@kernel.org>,
linux-trace-kernel@vger.kernel.org, rostedt@goodmis.org,
mhiramat@kernel.org, oleg@redhat.com
Cc: oe-kbuild-all@lists.linux.dev, peterz@infradead.org,
mingo@redhat.com, bpf@vger.kernel.org, jolsa@kernel.org,
paulmck@kernel.org, clm@meta.com,
Andrii Nakryiko <andrii@kernel.org>
Subject: Re: [PATCH 04/12] uprobes: revamp uprobe refcounting and lifetime management
Date: Wed, 26 Jun 2024 14:02:40 +0800 [thread overview]
Message-ID: <202406261300.ebbfM0XJ-lkp@intel.com> (raw)
In-Reply-To: <20240625002144.3485799-5-andrii@kernel.org>
Hi Andrii,
kernel test robot noticed the following build warnings:
[auto build test WARNING on next-20240624]
[also build test WARNING on v6.10-rc5]
[cannot apply to perf-tools-next/perf-tools-next tip/perf/core perf-tools/perf-tools linus/master acme/perf/core v6.10-rc5 v6.10-rc4 v6.10-rc3]
[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/Andrii-Nakryiko/uprobes-update-outdated-comment/20240626-001728
base: next-20240624
patch link: https://lore.kernel.org/r/20240625002144.3485799-5-andrii%40kernel.org
patch subject: [PATCH 04/12] uprobes: revamp uprobe refcounting and lifetime management
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20240626/202406261300.ebbfM0XJ-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240626/202406261300.ebbfM0XJ-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/202406261300.ebbfM0XJ-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/events/uprobes.c:638: warning: Function parameter or struct member 'uprobe' not described in '__get_uprobe'
>> kernel/events/uprobes.c:638: warning: expecting prototype for Caller has to make sure that(). Prototype was for __get_uprobe() instead
vim +638 kernel/events/uprobes.c
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 625
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 626 /**
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 627 * Caller has to make sure that:
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 628 * a) either uprobe's refcnt is positive before this call;
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 629 * b) or uprobes_treelock is held (doesn't matter if for read or write),
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 630 * preventing uprobe's destructor from removing it from uprobes_tree.
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 631 *
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 632 * In the latter case, uprobe's destructor will "resurrect" uprobe instance if
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 633 * it detects that its refcount went back to being positive again inbetween it
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 634 * dropping to zero at some point and (potentially delayed) destructor
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 635 * callback actually running.
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 636 */
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 637 static struct uprobe *__get_uprobe(struct uprobe *uprobe)
f231722a2b27ee Oleg Nesterov 2015-07-21 @638 {
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 639 s64 v;
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 640
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 641 v = atomic64_add_return(UPROBE_REFCNT_GET, &uprobe->ref);
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 642
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 643 /*
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 644 * If the highest bit is set, we need to clear it. If cmpxchg() fails,
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 645 * we don't retry because there is another CPU that just managed to
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 646 * update refcnt and will attempt the same "fix up". Eventually one of
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 647 * them will succeed to clear highset bit.
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 648 */
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 649 if (unlikely(v < 0))
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 650 (void)atomic64_cmpxchg(&uprobe->ref, v, v & ~(1ULL << 63));
b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 651
f231722a2b27ee Oleg Nesterov 2015-07-21 652 return uprobe;
f231722a2b27ee Oleg Nesterov 2015-07-21 653 }
f231722a2b27ee Oleg Nesterov 2015-07-21 654
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-06-26 6:02 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-25 0:21 [PATCH 00/12] uprobes: add batched register/unregister APIs and per-CPU RW semaphore Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 01/12] uprobes: update outdated comment Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 02/12] uprobes: grab write mmap lock in unapply_uprobe() Andrii Nakryiko
2024-06-25 1:29 ` Masami Hiramatsu
2024-06-25 14:49 ` Oleg Nesterov
2024-06-25 17:37 ` Andrii Nakryiko
2024-06-25 19:07 ` Oleg Nesterov
2024-06-26 16:38 ` Andrii Nakryiko
2024-06-25 10:50 ` Oleg Nesterov
2024-06-25 0:21 ` [PATCH 03/12] uprobes: simplify error handling for alloc_uprobe() Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 04/12] uprobes: revamp uprobe refcounting and lifetime management Andrii Nakryiko
2024-06-25 14:44 ` Oleg Nesterov
2024-06-25 17:30 ` Andrii Nakryiko
2024-06-26 6:02 ` kernel test robot [this message]
2024-06-26 16:39 ` Andrii Nakryiko
2024-06-27 2:29 ` Masami Hiramatsu
2024-06-27 16:43 ` Andrii Nakryiko
2024-07-01 21:59 ` Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 05/12] uprobes: move offset and ref_ctr_offset into uprobe_consumer Andrii Nakryiko
2024-06-27 3:06 ` Masami Hiramatsu
2024-06-25 0:21 ` [PATCH 06/12] uprobes: add batch uprobe register/unregister APIs Andrii Nakryiko
2024-06-26 11:27 ` Jiri Olsa
2024-06-26 16:44 ` Andrii Nakryiko
2024-06-27 13:04 ` Masami Hiramatsu
2024-06-27 16:47 ` Andrii Nakryiko
2024-06-28 6:28 ` Masami Hiramatsu
2024-06-28 16:34 ` Andrii Nakryiko
2024-06-29 23:30 ` Masami Hiramatsu
2024-07-01 17:55 ` Andrii Nakryiko
2024-07-01 22:15 ` Andrii Nakryiko
2024-07-02 1:01 ` Masami Hiramatsu
2024-07-02 1:34 ` Andrii Nakryiko
2024-07-02 15:19 ` Masami Hiramatsu
2024-07-02 16:53 ` Steven Rostedt
2024-07-02 21:23 ` Andrii Nakryiko
2024-07-02 23:16 ` Masami Hiramatsu
2024-06-25 0:21 ` [PATCH 07/12] uprobes: inline alloc_uprobe() logic into __uprobe_register() Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 08/12] uprobes: split uprobe allocation and uprobes_tree insertion steps Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 09/12] uprobes: batch uprobes_treelock during registration Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 10/12] uprobes: improve lock batching for uprobe_unregister_batch Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 11/12] uprobes,bpf: switch to batch uprobe APIs for BPF multi-uprobes Andrii Nakryiko
2024-06-25 0:21 ` [PATCH 12/12] uprobes: switch uprobes_treelock to per-CPU RW semaphore Andrii Nakryiko
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=202406261300.ebbfM0XJ-lkp@intel.com \
--to=lkp@intel.com \
--cc=andrii@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=clm@meta.com \
--cc=jolsa@kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oleg@redhat.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/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.