bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrii Nakryiko <andrii.nakryiko@gmail.com>
To: Giuliano Procida <gprocida@google.com>
Cc: dwarves@vger.kernel.org, kernel-team@android.com,
	maennich@google.com, Alexei Starovoitov <ast@kernel.org>,
	Andrii Nakryiko <andrii@kernel.org>, bpf <bpf@vger.kernel.org>,
	Kernel Team <kernel-team@fb.com>
Subject: Re: [PATCH 3/3] btf_encoder: Set .BTF section alignment to 16
Date: Wed, 20 Jan 2021 23:16:31 -0800	[thread overview]
Message-ID: <CAEf4BzazvC9H=K_A9KamGTB3iKtjuNxd4hEvwFOnkPdnszo6Bw@mail.gmail.com> (raw)
In-Reply-To: <20210118160139.1971039-4-gprocida@google.com>

On Mon, Jan 18, 2021 at 8:01 AM Giuliano Procida <gprocida@google.com> wrote:
>
> This is to avoid misaligned access when memory-mapping ELF sections.
>
> Signed-off-by: Giuliano Procida <gprocida@google.com>
> ---
>  libbtf.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/libbtf.c b/libbtf.c
> index 7552d8e..2f12d53 100644
> --- a/libbtf.c
> +++ b/libbtf.c
> @@ -797,6 +797,14 @@ static int btf_elf__write(const char *filename, struct btf *btf)
>                         goto unlink;
>                 }
>
> +               snprintf(cmd, sizeof(cmd), "%s --set-section-alignment .BTF=16 %s",
> +                        llvm_objcopy, filename);

does it align inside the ELF file to 16 bytes, or does it request the
linker to align it at 16 byte alignment in memory? Given .BTF section
is not loadable, trying to understand the implications.


> +               if (system(cmd)) {

Also curious, if objcopy emits error (saying that
--set-section-alignment argument is not recognized), will that error
be shown in stdout? or system() consumes it without redirecting it to
stdout?

> +                       /* non-fatal, this is a nice-to-have and it's only supported from LLVM 10 */
> +                       fprintf(stderr, "%s: warning: failed to align .BTF section in '%s': %d!\n",
> +                               __func__, filename, errno);

Probably better to emit this warning only in verbose mode, otherwise
lots of people will start complaining that they get some new warnings
from pahole.


> +               }
> +
>                 err = 0;
>         unlink:
>                 unlink(tmp_fn);
> --
> 2.30.0.284.gd98b1dd5eaa7-goog
>

  reply	other threads:[~2021-01-21  7:18 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-18 16:01 [PATCH 0/3] Small fixes and improvements Giuliano Procida
2021-01-18 16:01 ` [PATCH 1/3] btf_encoder: Fix handling of restrict qualifier Giuliano Procida
2021-01-21  7:07   ` Andrii Nakryiko
2021-01-21 13:04     ` Arnaldo Carvalho de Melo
2021-01-18 16:01 ` [PATCH 2/3] btf_encoder: Improve error-handling around objcopy Giuliano Procida
2021-01-21  7:09   ` Andrii Nakryiko
2021-01-18 16:01 ` [PATCH 3/3] btf_encoder: Set .BTF section alignment to 16 Giuliano Procida
2021-01-21  7:16   ` Andrii Nakryiko [this message]
     [not found]     ` <CAGvU0HmE+gs8eNQcXmFrEERHaiGEnMgqxBho4Ny3DLCe6WR55Q@mail.gmail.com>
2021-01-21 20:07       ` Andrii Nakryiko
2021-01-25 12:53         ` Giuliano Procida
2021-01-26  0:28           ` Andrii Nakryiko
2021-01-26 11:43             ` Giuliano Procida
2021-01-27 15:08         ` Giuliano Procida
2021-01-27 18:06           ` Giuliano Procida
2021-01-27 19:56             ` Andrii Nakryiko
2021-01-21 11:35 ` [PATCH dwarves v2 0/3] Small fixes and improvements Giuliano Procida
2021-01-21 11:35   ` [PATCH dwarves v2 1/3] btf_encoder: Fix handling of restrict qualifier Giuliano Procida
2021-01-21 13:21     ` Arnaldo Carvalho de Melo
2021-01-21 11:35   ` [PATCH dwarves v2 2/3] btf_encoder: Improve error-handling around objcopy Giuliano Procida
2021-01-21 13:24     ` Arnaldo Carvalho de Melo
2021-01-21 11:35   ` [PATCH dwarves v2 3/3] btf_encoder: Set .BTF section alignment to 16 Giuliano Procida
2021-01-21 13:23     ` Arnaldo Carvalho de Melo

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='CAEf4BzazvC9H=K_A9KamGTB3iKtjuNxd4hEvwFOnkPdnszo6Bw@mail.gmail.com' \
    --to=andrii.nakryiko@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=dwarves@vger.kernel.org \
    --cc=gprocida@google.com \
    --cc=kernel-team@android.com \
    --cc=kernel-team@fb.com \
    --cc=maennich@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).