Re: FW: BPF_PSEUDO_CALL question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 15, 2019 at 5:13 AM Ananyev, Konstantin
<konstantin.ananyev@xxxxxxxxx> wrote:
>
> Hi Alexei,
> I posted the question below on llvm-dev mailing list, but there is no answer so far.
> As you seems the author of BPF_PSEUDO_CALL in LLVM (and linux kernel) thought might
> be you know the answer?
> I looked through the patches, but didn't spot anything myself.
> Thanks
> Konstantin
>
> -----Original Message-----
> From: llvm-dev [mailto:llvm-dev-bounces@xxxxxxxxxxxxxx] On Behalf Of Ananyev, Konstantin via llvm-dev
> Sent: Wednesday, April 10, 2019 7:37 PM
> To: llvm-dev@xxxxxxxxxxxxxx
> Subject: [llvm-dev] BPF_PSEUDO_CALL question
>
>
> Hi everyone,
> with clang 6.0 and onwards, for the following code:
> $ cat t6.c
>
> #include <stdint.h>
>
> extern int ffx1(const void *p);
>
> uint64_t entry(const void *p)
> {
>         return ffx1(p);
> }
>
> clang -O2  -target bpfel -c t6.c
> generates for the call BPF_PSEUDO_CALL instruction:
> entry:
>        0:       85 10 00 00 ff ff ff ff         call -1
>        1:       67 00 00 00 20 00 00 00         r0 <<= 32
>        2:       c7 00 00 00 20 00 00 00         r0 s>>= 32
>        3:       95 00 00 00 00 00 00 00         exit
>
> Is there any way to force clang to generate proper BPF_CALL instruction,
> i.e: 85 00 00 00 ff ff ff ff (as it did in older versions)?

older version of llvm generated broken code.
there are only two call flavors:
- call imm -> calling particular kernel helper where imm==helper_id
- call pseudo +-off -> call another bpf function
there is no arbitrary call support yet.



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux