All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yonghong Song <yonghong.song@linux.dev>
To: David Vernet <void@manifault.com>, bpf@vger.kernel.org
Cc: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
	martin.lau@linux.dev, song@kernel.org, john.fastabend@gmail.com,
	kpsingh@kernel.org, sdf@google.com, haoluo@google.com,
	jolsa@kernel.org, linux-kernel@vger.kernel.org,
	kernel-team@meta.com, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH bpf-next] bpf: Disable -Wmissing-declarations for globally-linked kfuncs
Date: Wed, 16 Aug 2023 20:38:40 -0700	[thread overview]
Message-ID: <2d530dec-e6c2-5e3a-ccf2-d65039a9969d@linux.dev> (raw)
In-Reply-To: <20230816150634.1162838-1-void@manifault.com>



On 8/16/23 8:06 AM, David Vernet wrote:
> We recently got an lkp warning about missing declarations, as in e.g.
> [0]. This warning is largely redundant with -Wmissing-prototypes, which
> we already disable for kfuncs that have global linkage and are meant to
> be exported in BTF, and called from BPF programs. Let's also disable
> -Wmissing-declarations for kfuncs. For what it's worth, I wasn't able to
> reproduce the warning even on W <= 3, so I can't actually be 100% sure
> this fixes the issue.
> 
> [0]: https://lore.kernel.org/all/202308162115.Hn23vv3n-lkp@intel.com/

Okay, I just got a similar email to [0] which complains
   bpf_obj_new_impl, ..., bpf_cast_to_kern_ctx
missing declarations.

In the email, the used compiler is
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0

Unfortunately, I did not have gcc-7 to verify this.
Also, what is the minimum gcc version kernel supports? 5.1?

> 
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202308162115.Hn23vv3n-lkp@intel.com/
> Signed-off-by: David Vernet <void@manifault.com>
> ---
>   Documentation/bpf/kfuncs.rst                          | 4 +++-
>   kernel/bpf/bpf_iter.c                                 | 2 ++
>   kernel/bpf/cpumask.c                                  | 2 ++
>   kernel/bpf/helpers.c                                  | 2 ++
>   kernel/bpf/map_iter.c                                 | 2 ++
>   kernel/cgroup/rstat.c                                 | 2 ++
>   kernel/trace/bpf_trace.c                              | 2 ++
>   net/bpf/test_run.c                                    | 2 ++
>   net/core/filter.c                                     | 4 ++++
>   net/core/xdp.c                                        | 2 ++
>   net/ipv4/fou_bpf.c                                    | 2 ++
>   net/netfilter/nf_conntrack_bpf.c                      | 2 ++
>   net/netfilter/nf_nat_bpf.c                            | 2 ++
>   net/xfrm/xfrm_interface_bpf.c                         | 2 ++
>   tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c | 2 ++
>   15 files changed, 33 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/bpf/kfuncs.rst b/Documentation/bpf/kfuncs.rst
> index 0d2647fb358d..62ce5a7b92b4 100644
> --- a/Documentation/bpf/kfuncs.rst
> +++ b/Documentation/bpf/kfuncs.rst
> @@ -36,10 +36,12 @@ prototype in a header for the wrapper kfunc.
>   
>   An example is given below::
>   
> -        /* Disables missing prototype warnings */
> +        /* Disables missing prototypes and declarations warnings */
>           __diag_push();
>           __diag_ignore_all("-Wmissing-prototypes",
>                             "Global kfuncs as their definitions will be in BTF");
> +        __diag_ignore_all("-Wmissing-declarations",
> +                          "Global kfuncs as their definitions will be in BTF");
>   
>           __bpf_kfunc struct task_struct *bpf_find_get_task_by_vpid(pid_t nr)
>           {
> diff --git a/kernel/bpf/bpf_iter.c b/kernel/bpf/bpf_iter.c
> index 96856f130cbf..b8def6e4e5e8 100644
> --- a/kernel/bpf/bpf_iter.c
> +++ b/kernel/bpf/bpf_iter.c
> @@ -785,6 +785,8 @@ struct bpf_iter_num_kern {
>   __diag_push();
>   __diag_ignore_all("-Wmissing-prototypes",
>   		  "Global functions as their definitions will be in vmlinux BTF");
> +__diag_ignore_all("-Wmissing-declarations",
> +		  "Global functions as their definitions will be in vmlinux BTF");
>   
>   __bpf_kfunc int bpf_iter_num_new(struct bpf_iter_num *it, int start, int end)
>   {
[...]

  reply	other threads:[~2023-08-17  3:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-16 15:06 [PATCH bpf-next] bpf: Disable -Wmissing-declarations for globally-linked kfuncs David Vernet
2023-08-17  3:38 ` Yonghong Song [this message]
2023-08-17  3:48   ` Alexei Starovoitov
2023-08-17  4:01     ` David Vernet
2023-08-17 14:35       ` Daniel Borkmann
2023-08-17 14:45         ` Anton Protopopov
2023-08-17  6:08     ` Yonghong Song

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=2d530dec-e6c2-5e3a-ccf2-d65039a9969d@linux.dev \
    --to=yonghong.song@linux.dev \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=haoluo@google.com \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kernel-team@meta.com \
    --cc=kpsingh@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=martin.lau@linux.dev \
    --cc=sdf@google.com \
    --cc=song@kernel.org \
    --cc=void@manifault.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.