All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Veronika Kabatova <vkabatov@redhat.com>,
	Andrii Nakryiko <andriin@fb.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: bpf <bpf@vger.kernel.org>
Subject: Re: Build failures: unresolved symbol vfs_getattr
Date: Mon, 14 Sep 2020 20:25:13 +0200	[thread overview]
Message-ID: <20200914182513.GK1714160@krava> (raw)
In-Reply-To: <748495289.11017858.1600094916732.JavaMail.zimbra@redhat.com>

On Mon, Sep 14, 2020 at 10:48:36AM -0400, Veronika Kabatova wrote:
> 
> Hello,
> 
> we tested the bpf-next tree with CKI and ran across build failures. The
> important part of the build log is:
> 
> 00:18:05   GEN     .version
> 00:18:05   CHK     include/generated/compile.h
> 00:18:05   LD      vmlinux.o
> 00:18:27   MODPOST vmlinux.symvers
> 00:18:27   MODINFO modules.builtin.modinfo
> 00:18:27   GEN     modules.builtin
> 00:18:27   LD      .tmp_vmlinux.btf
> 00:18:42   BTF     .btf.vmlinux.bin.o
> 00:19:13   LD      .tmp_vmlinux.kallsyms1
> 00:19:19   KSYM    .tmp_vmlinux.kallsyms1.o
> 00:19:22   LD      .tmp_vmlinux.kallsyms2
> 00:19:25   KSYM    .tmp_vmlinux.kallsyms2.o
> 00:19:28   LD      vmlinux
> 00:19:40   BTFIDS  vmlinux
> 00:19:40 FAILED unresolved symbol vfs_getattr
> 00:19:40 make[2]: *** [Makefile:1167: vmlinux] Error 255
> 00:19:40 make[1]: *** [scripts/Makefile.package:109: targz-pkg] Error 2
> 00:19:40 make: *** [Makefile:1528: targz-pkg] Error 2

hi,
it looks like broken BTF data to me, I checked that build
and found we have multiple records for functions, like
for filp_close:

	[23381] FUNC_PROTO '(anon)' ret_type_id=19 vlen=2
		'(anon)' type_id=464
		'id' type_id=960
	[23382] FUNC 'filp_close' type_id=23381 linkage=static


	[33073] FUNC_PROTO '(anon)' ret_type_id=19 vlen=2
		'filp' type_id=464
		'id' type_id=960
	[33074] FUNC 'filp_close' type_id=33073 linkage=static


or vfs_getattr:

	[33513] FUNC_PROTO '(anon)' ret_type_id=19 vlen=4
		'path' type_id=741
		'stat' type_id=1095
		'request_mask' type_id=29
		'query_flags' type_id=8

	[33514] FUNC 'vfs_getattr' type_id=33513 linkage=static

	[1094] FUNC_PROTO '(anon)' ret_type_id=19 vlen=4
		'(anon)' type_id=741
		'(anon)' type_id=1095
		'(anon)' type_id=29
		'(anon)' type_id=8

	[35099] FUNC 'vfs_getattr' type_id=1094 linkage=static


and because we go through all BTF data until we resolve all we have,
the doubled funcs will screw our internal counter and we skip a function

the change below will workaround that, but I think we should fail in
this case.. if I'm not missing something 2 FUNC records for one function
in BTF data

$ pahole --version
v1.17

HEAD is 2bab48c5b Merge branch 'improve-bpf-tcp-cc-init'

thoughts? thanks
jirka


---
diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c
index dfa540d8a02d..a33e56553e52 100644
--- a/tools/bpf/resolve_btfids/main.c
+++ b/tools/bpf/resolve_btfids/main.c
@@ -525,7 +525,7 @@ static int symbols_resolve(struct object *obj)
 		}
 
 		id = btf_id__find(root, str);
-		if (id) {
+		if (id && !id->id) {
 			id->id = type_id;
 			(*nr)--;
 		}


  reply	other threads:[~2020-09-14 18:25 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1723352278.11013122.1600093319730.JavaMail.zimbra@redhat.com>
2020-09-14 14:48 ` Build failures: unresolved symbol vfs_getattr Veronika Kabatova
2020-09-14 18:25   ` Jiri Olsa [this message]
2020-09-14 22:26     ` Andrii Nakryiko
2020-09-15  7:30       ` Jiri Olsa
2020-09-15 12:17         ` Jiri Olsa
2020-09-16  9:06           ` Jiri Olsa
2020-10-16 21:38             ` Jiri Olsa
2020-10-21 19:42               ` Jiri Olsa
2020-10-22 20:00                 ` Andrii Nakryiko
2020-10-23  5:36                   ` Jiri Olsa
2020-10-23  6:58                     ` Jiri Olsa
2020-10-23 18:22                       ` Andrii Nakryiko
2020-10-23 20:17                         ` Jiri Olsa
2020-10-23 20:32                           ` Andrii Nakryiko
2020-10-23 20:45                             ` Jiri Olsa
2020-10-23 22:02                               ` Andrii Nakryiko
2020-10-26 10:14                         ` Jiri Olsa
2020-10-26 22:06                           ` 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=20200914182513.GK1714160@krava \
    --to=jolsa@redhat.com \
    --cc=acme@redhat.com \
    --cc=andriin@fb.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=vkabatov@redhat.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.