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

From: David Miller
Date: Mon Apr 24 2017 - 11:51:39 EST


From: Jiri Slaby <jslaby@xxxxxxx>
Date: Mon, 24 Apr 2017 17:41:06 +0200

> 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?

I said I'm not OK with the alignment, so personally I am not
with how these macros work and what they will do to the code
generated for BPF packet accesses.

But I'll defer to Alexei on this because I don't have the time
nor the energy to fight this.

Thanks.