Re: [PATCH v3 07/29] x86: bpf_jit, use ENTRY+ENDPROC

From: Ingo Molnar
Date: Mon Apr 24 2017 - 11:55:42 EST



* Jiri Slaby <jslaby@xxxxxxx> wrote:

> On 04/24/2017, 05:08 PM, David Miller wrote:
> > If you align the entry points, then the code sequence as a whole is
> > are no longer densely packed.
>
> Sure.
>
> > Or do I misunderstand how your macros work?
>
> Perhaps. So the suggested macros for the code are:
> #define BPF_FUNC_START_LOCAL(name) \
> SYM_START(name, SYM_V_LOCAL, SYM_A_NONE)
> #define BPF_FUNC_START(name) \
> SYM_START(name, SYM_V_GLOBAL, SYM_A_NONE)
>
> and they differ from the standard ones:
> #define SYM_FUNC_START_LOCAL(name) \
> SYM_START(name, SYM_V_LOCAL, SYM_A_ALIGN)
> #define SYM_FUNC_START(name) \
> SYM_START(name, SYM_V_GLOBAL, SYM_A_ALIGN)
>
>
> The difference is SYM_A_NONE vs. SYM_A_ALIGN, which means:
> #define SYM_A_ALIGN ALIGN
> #define SYM_A_NONE /* nothing */
>
> Does it look OK now?

No, the patch changes alignment which is undesirable, it needs to preserve the
existing (non-)alignment of the symbols!

Thanks,

Ingo