All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <daniel@iogearbox.net>
To: John Fastabend <john.fastabend@gmail.com>,
	Stanislav Fomichev <sdf@google.com>,
	netdev@vger.kernel.org, bpf@vger.kernel.org
Cc: davem@davemloft.net, ast@kernel.org, Andrii Nakryiko <andriin@fb.com>
Subject: Re: [PATCH bpf] bpf: force .BTF section start to zero when dumping from vmlinux
Date: Fri, 29 Nov 2019 16:16:36 +0100	[thread overview]
Message-ID: <a727a688-2555-b7e3-ab29-43f46a3c3e52@iogearbox.net> (raw)
In-Reply-To: <5ddf4ef366a69_3c082aca725cc5bcbb@john-XPS-13-9370.notmuch>

On 11/28/19 5:37 AM, John Fastabend wrote:
> Stanislav Fomichev wrote:
>> While trying to figure out why fentry_fexit selftest doesn't pass for me
>> (old pahole, broken BTF), I found out that my latest patch can break vmlinux
>> .BTF generation. objcopy preserves section start when doing --only-section,
>> so there is a chance (depending on where pahole inserts .BTF section) to
>> have leading empty zeroes. Let's explicitly force section offset to zero.
>>
>> Before:
>> $ objcopy --set-section-flags .BTF=alloc -O binary \
>> 	--only-section=.BTF vmlinux .btf.vmlinux.bin
>> $ xxd .btf.vmlinux.bin | head -n1
>> 00000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
>>
>> After:
>> $ objcopy --change-section-address .BTF=0 \
>> 	--set-section-flags .BTF=alloc -O binary \
>> 	--only-section=.BTF vmlinux .btf.vmlinux.bin
>> $ xxd .btf.vmlinux.bin | head -n1
>> 00000000: 9feb 0100 1800 0000 0000 0000 80e1 1c00  ................
>>            ^BTF magic
>>
>> As part of this change, I'm also dropping '2>/dev/null' from objcopy
>> invocation to be able to catch possible other issues (objcopy doesn't
>> produce any warnings for me anymore, it did before with --dump-section).
> 
> Agree dropping /dev/null seems like a good choice. Otherwise seems reasonable
> to me.
> 
> Acked-by: John Fastabend <john.fastabend@gmail.com>

Could reproduce as well:

root@apoc:~/bpf# xxd .btf.vmlinux.bin.old | head -n1                   (original)
00000000: 9feb 0100 1800 0000 0000 0000 5088 2000  ............P. .

root@apoc:~/bpf# ls -l .btf.vmlinux.bin.old
-rw-r--r-- 1 root root 3439882 Nov 29 15:59 .btf.vmlinux.bin.old


root@apoc:~/bpf# xxd .btf.vmlinux.bin.new-buggy | head -n1             ('bpf: Support pre-2.25-binutils objcopy for vmlinux BTF')
00000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................

root@apoc:~/bpf# ls -l .btf.vmlinux.bin.new-buggy
-rwxr-xr-x 1 root root 45705482 Nov 29 16:01 .btf.vmlinux.bin.new-buggy


root@apoc:~/bpf# xxd .btf.vmlinux.bin.new-fixed | head -n1             ('bpf: Force .BTF section start to zero when dumping from vmlinux')
00000000: 9feb 0100 1800 0000 0000 0000 5088 2000  ............P. .

root@apoc:~/bpf# ls -l .btf.vmlinux.bin.new-fixed
-rwxr-xr-x 1 root root 3439882 Nov 29 16:02 .btf.vmlinux.bin.new-fixed


root@apoc:~/bpf# diff .btf.vmlinux.bin.old .btf.vmlinux.bin.new-buggy
Binary files .btf.vmlinux.bin.old and .btf.vmlinux.bin.new-buggy differ

root@apoc:~/bpf# diff .btf.vmlinux.bin.old .btf.vmlinux.bin.new-fixed
root@apoc:~/bpf#


Applied, thanks!

      reply	other threads:[~2019-11-29 15:38 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-27 22:57 [PATCH bpf] bpf: force .BTF section start to zero when dumping from vmlinux Stanislav Fomichev
2019-11-28  4:37 ` John Fastabend
2019-11-29 15:16   ` Daniel Borkmann [this message]

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=a727a688-2555-b7e3-ab29-43f46a3c3e52@iogearbox.net \
    --to=daniel@iogearbox.net \
    --cc=andriin@fb.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=davem@davemloft.net \
    --cc=john.fastabend@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=sdf@google.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.