Re: [PATCH 5.15 0/5] Support static calls with LLVM-built kernels

Thadeu Lima de Souza Cascardo
2024-03-16T11:08:47Z

On Sat, Mar 16, 2024 at 07:01:46AM -0400, Sasha Levin wrote:
> On Sat, Mar 16, 2024 at 07:02:19AM -0300, Thadeu Lima de Souza Cascardo wrote:
> > On Sat, Mar 16, 2024 at 05:41:16AM -0400, Sasha Levin wrote:
> > > On Wed, Mar 13, 2024 at 07:42:50AM -0300, Thadeu Lima de Souza Cascardo wrote:
> > > > Peter Zijlstra (4):
> > > > arch: Introduce CONFIG_FUNCTION_ALIGNMENT
> > > > x86/alternatives: Introduce int3_emulate_jcc()
> > > > x86/alternatives: Teach text_poke_bp() to patch Jcc.d32 instructions
> > > > x86/static_call: Add support for Jcc tail-calls
> > > >
> > > > Thomas Gleixner (1):
> > > > x86/asm: Differentiate between code and function alignment
> > >
> > > Is this not an issue on 6.1? I don't see d49a0626216b ("arch: Introduce
> > > CONFIG_FUNCTION_ALIGNMENT") in that tree.
> > >
> > > --
> > > Thanks,
> > > Sasha
> >
> > The fix is really the last patch, 923510c88d2b ("x86/static_call: Add support
> > for Jcc tail-calls"). I see that 6.1 got 3,4,5:
> >
> > 9d80f3e60043 x86/static_call: Add support for Jcc tail-calls
> > c51a456b4179 x86/alternatives: Teach text_poke_bp() to patch Jcc.d32 instructions
> > 75c066485bcb x86/alternatives: Introduce int3_emulate_jcc()
> >
> > I can resubmit the series without the first two patches if that is preferred.
>
> I'm just curious why we needed the first two patches on 5.15 but not on 6.1.
>
> --
> Thanks,
> Sasha
>

Because 923510c88d2b uses ASM_FUNC_ALIGN, which requires those two. I
didn't look at the 6.1 backport for reference. There, it was removed. It
seems to be a requirement for depth tracking that would not be necessary in
5.15 either.

I will send a v2.

Cascardo.