[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202210010702.CeCIYBvq-lkp@intel.com>
Date: Sat, 1 Oct 2022 07:12:46 +0800
From: kernel test robot <lkp@...el.com>
To: David Vernet <void@...ifault.com>, ast@...nel.org,
daniel@...earbox.net, andrii@...nel.org, martin.lau@...ux.dev
Cc: kbuild-all@...ts.01.org, kernel-team@...com, bpf@...r.kernel.org,
linux-kernel@...r.kernel.org, yhs@...com, song@...nel.org,
john.fastabend@...il.com, kpsingh@...nel.org, sdf@...gle.com,
haoluo@...gle.com, jolsa@...nel.org, tj@...nel.org,
memxor@...il.com
Subject: Re: [PATCH 1/2] bpf: Add kfuncs for storing struct task_struct * as
a kptr
Hi David,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on bpf-next/master]
[also build test WARNING on next-20220930]
[cannot apply to bpf/master linus/master v6.0-rc7]
[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/David-Vernet/Support-storing-struct-task_struct-objects-as-kptrs/20221001-044848
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: m68k-allyesconfig
compiler: m68k-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/bcd8fc859e8153905211ff7ac025680507884bb8
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review David-Vernet/Support-storing-struct-task_struct-objects-as-kptrs/20221001-044848
git checkout bcd8fc859e8153905211ff7ac025680507884bb8
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash kernel/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
All warnings (new ones prefixed by >>):
>> kernel/bpf/helpers.c:1720:21: warning: no previous prototype for 'bpf_task_acquire' [-Wmissing-prototypes]
1720 | struct task_struct *bpf_task_acquire(struct task_struct *p)
| ^~~~~~~~~~~~~~~~
>> kernel/bpf/helpers.c:1732:21: warning: no previous prototype for 'bpf_task_kptr_get' [-Wmissing-prototypes]
1732 | struct task_struct *bpf_task_kptr_get(struct task_struct **pp)
| ^~~~~~~~~~~~~~~~~
>> kernel/bpf/helpers.c:1751:22: warning: no previous prototype for 'bpf_task_release' [-Wmissing-prototypes]
1751 | __used noinline void bpf_task_release(struct task_struct *p)
| ^~~~~~~~~~~~~~~~
vim +/bpf_task_acquire +1720 kernel/bpf/helpers.c
1713
1714 /**
1715 * bpf_task_acquire - Acquire a reference to a task. A task acquired by this
1716 * kfunc which is not stored in a map as a kptr, must be released by calling
1717 * bpf_task_release().
1718 */
1719 __used noinline
> 1720 struct task_struct *bpf_task_acquire(struct task_struct *p)
1721 {
1722 refcount_inc(&p->rcu_users);
1723 return p;
1724 }
1725
1726 /**
1727 * bpf_task_kptr_get - Acquire a reference on a struct task_struct * kptr. A
1728 * task kptr acquired by this kfunc which is not stored in a map as a kptr,
1729 * must be released by calling bpf_task_release().
1730 */
1731 __used noinline
> 1732 struct task_struct *bpf_task_kptr_get(struct task_struct **pp)
1733 {
1734 struct task_struct *p;
1735
1736 rcu_read_lock();
1737 p = READ_ONCE(*pp);
1738 if (p && !refcount_inc_not_zero(&p->rcu_users))
1739 p = NULL;
1740 rcu_read_unlock();
1741
1742 return p;
1743 }
1744
1745 /**
1746 * bpf_task_release - Release the reference acquired on a struct task_struct *.
1747 * If this kfunc is invoked in an RCU read region, the task_struct is
1748 * guaranteed to not be freed until the current grace period has ended, even if
1749 * its refcount drops to 0.
1750 */
> 1751 __used noinline void bpf_task_release(struct task_struct *p)
1752 {
1753 if (!p)
1754 return;
1755
1756 put_task_struct_rcu_user(p);
1757 }
1758
--
0-DAY CI Kernel Test Service
https://01.org/lkp
View attachment "config" of type "text/plain" (279398 bytes)
Powered by blists - more mailing lists