All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Yonghong Song <yhs@fb.com>
Cc: "Fāng-ruì Sòng" <maskray@google.com>,
	"Jiri Olsa" <jolsa@kernel.org>,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Mark Wielaard" <mjw@redhat.com>,
	"Nick Clifton" <nickc@redhat.com>,
	"Jesper Dangaard Brouer" <brouer@redhat.com>,
	"Network Development" <netdev@vger.kernel.org>,
	bpf <bpf@vger.kernel.org>, "Martin KaFai Lau" <kafai@fb.com>,
	"Song Liu" <songliubraving@fb.com>,
	"Andrii Nakryiko" <andriin@fb.com>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"KP Singh" <kpsingh@chromium.org>,
	clang-built-linux <clang-built-linux@googlegroups.com>
Subject: Re: [PATCH bpf-next] tools/resolve_btfids: Fix sections with wrong alignment
Date: Thu, 20 Aug 2020 12:18:10 +0200	[thread overview]
Message-ID: <20200820101810.GA336489@krava> (raw)
In-Reply-To: <ba7bbec7-9fb5-5f8f-131e-1e0aeff843fa@fb.com>

On Wed, Aug 19, 2020 at 08:23:10PM -0700, Yonghong Song wrote:
> 
> 
> On 8/19/20 7:27 PM, Fāng-ruì Sòng wrote:
> > > > >     section(36) .comment, size 44, link 0, flags 30, type=1
> > > > >     section(37) .debug_aranges, size 45684, link 0, flags 800, type=1
> > > > >      - fixing wrong alignment sh_addralign 16, expected 8
> > > > >     section(38) .debug_info, size 129104957, link 0, flags 800, type=1
> > > > >      - fixing wrong alignment sh_addralign 1, expected 8
> > > > >     section(39) .debug_abbrev, size 1152583, link 0, flags 800, type=1
> > > > >      - fixing wrong alignment sh_addralign 1, expected 8
> > > > >     section(40) .debug_line, size 7374522, link 0, flags 800, type=1
> > > > >      - fixing wrong alignment sh_addralign 1, expected 8
> > > > >     section(41) .debug_frame, size 702463, link 0, flags 800, type=1
> > > > >     section(42) .debug_str, size 1017571, link 0, flags 830, type=1
> > > > >      - fixing wrong alignment sh_addralign 1, expected 8
> > > > >     section(43) .debug_loc, size 3019453, link 0, flags 800, type=1
> > > > >      - fixing wrong alignment sh_addralign 1, expected 8
> > > > >     section(44) .debug_ranges, size 1744583, link 0, flags 800, type=1
> > > > >      - fixing wrong alignment sh_addralign 16, expected 8
> > > > >     section(45) .symtab, size 2955888, link 46, flags 0, type=2
> > > > >     section(46) .strtab, size 2613072, link 0, flags 0, type=3
> > 
> > I think this is resolve_btfids's bug. GNU ld and LLD are innocent.
> > These .debug_* sections work fine if their sh_addralign is 1.
> > When the section flag SHF_COMPRESSED is set, the meaningful alignment
> > is Elf64_Chdr::ch_addralign, after the header is uncompressed.
> > 
> > On Wed, Aug 19, 2020 at 2:30 PM Yonghong Song <yhs@fb.com> wrote:
> > > 
> > > 
> > > 
> > > On 8/19/20 11:16 AM, Nick Desaulniers wrote:
> > > > On Wed, Aug 19, 2020 at 10:36 AM Jiri Olsa <jolsa@redhat.com> wrote:
> > > > > 
> > > > > On Wed, Aug 19, 2020 at 08:31:51AM -0700, Yonghong Song wrote:
> > > > > > 
> > > > > > 
> > > > > > On 8/19/20 2:23 AM, Jiri Olsa wrote:
> > > > > > > The data of compressed section should be aligned to 4
> > > > > > > (for 32bit) or 8 (for 64 bit) bytes.
> > > > > > > 
> > > > > > > The binutils ld sets sh_addralign to 1, which makes libelf
> > > > > > > fail with misaligned section error during the update as
> > > > > > > reported by Jesper:
> > > > > > > 
> > > > > > >       FAILED elf_update(WRITE): invalid section alignment
> 
> Jiri,
> 
> Since Fangrui mentioned this is not a ld/lld bug, then changing
> alighment from 1 to 4 might have some adverse effect for the binary,
> I guess.

not sure about that.. Mark? ;-)

> 
> Do you think we could skip these .debug_* sections somehow in elf parsing in
> resolve_btfids? resolve_btfids does not need to read
> these sections. This way, no need to change their alignment either.

I'm don't think libelf interface allows for that, will check

jirka


  reply	other threads:[~2020-08-20 10:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-19  9:23 [PATCH bpf-next] tools/resolve_btfids: Fix sections with wrong alignment Jiri Olsa
2020-08-19 15:31 ` Yonghong Song
2020-08-19 17:36   ` Jiri Olsa
2020-08-19 18:16     ` Nick Desaulniers
2020-08-19 21:30       ` Yonghong Song
2020-08-20  2:27         ` Fāng-ruì Sòng
2020-08-20  3:23           ` Yonghong Song
2020-08-20 10:18             ` Jiri Olsa [this message]
2020-08-20 10:18             ` Mark Wielaard
2020-08-20 15:51               ` Yonghong Song
2020-08-20 17:36                 ` Mark Wielaard
2020-08-20 17:54                   ` Yonghong Song
2020-08-20 21:24                     ` Alexei Starovoitov
2020-08-19 17:02 ` Jesper Dangaard Brouer
2020-08-19 21:32 ` 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=20200820101810.GA336489@krava \
    --to=jolsa@redhat.com \
    --cc=andriin@fb.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=brouer@redhat.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=daniel@iogearbox.net \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kafai@fb.com \
    --cc=kpsingh@chromium.org \
    --cc=maskray@google.com \
    --cc=mjw@redhat.com \
    --cc=ndesaulniers@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=nickc@redhat.com \
    --cc=songliubraving@fb.com \
    --cc=yhs@fb.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.