Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1206533
| From | "Wangnan (F)" <wangnan0@huawei.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [llvm-dev] llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event |
| Date | 2015-08-13 08:30 +0200 |
| Message-ID | <pWUbv-3xi-3@gated-at.bofh.it> (permalink) |
| References | (8 earlier) <pTtUe-4n6-27@gated-at.bofh.it> <pWu7n-7pH-3@gated-at.bofh.it> <pWwiS-24c-7@gated-at.bofh.it> <pWx5g-3D9-3@gated-at.bofh.it> <pWE6K-5sr-17@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Thank you for your reply. Add He Kuang to CC list. On 2015/8/12 21:15, Brenden Blanco wrote: > Hi Wangnan, I've been authoring the BCC development, so I'll answer > those specific questions. >> >> Could you please give us further information about your clang rewriter? >> I guess you need a new .so when injecting those code into kernel? > The rewriter runs all of its passes in a single process, creating no > files on disk and having no external dependencies in terms of > toolchain. > 1. Entry point: bpf_module_create() - C API call to create module, can > take filename or directly a c string with the full contents of the > program > 2. Convert contents into a clang memory buffer > 3. Set up a clang driver::CompilerInvocation in the style of the clang > interpreter example > 4. Run a rewriter pass over the memory buffer file, annotating and/or > doing BPF specific magic on the input source > a. Open BPF maps with a call to bpf_create_map directly > b. Convert references to map operations with the specific FD of the new map > c. Convert arguments to bpf_probe_read calls as needed > d. Collect the externed function names to avoid section() hack in the language > 5. Re-run the CompilerInvocation on the modified sources > 6. JIT the llvm::Module to bpf arch > 7. Load the resulting in-memory ".o" to bpf_prog_load, keeping the FD > alive in the compiler process > 8. Attach the FD as necessary to perf events, socket, tc, etc. > 9. goto 1 > > The above steps are captured in the BCC github repo in src/cc, with > the clang specific bits inside of the frontends/clang subdirectory. > >> I'm not sure. Our target platform should be embedded devices like >> smartphone. >> Bringing full clang/llvm environment there is not acceptable. > The artifact from the build process of BCC is a shared library, which > has the clang/llvm .a embedded within them. It is not yet a single > binary, but not unfeasible to make it so. The clang toolchain itself > does not need to exist on the target. I have not attempted to > cross-compile BCC to any architecture, currently x86_64 only. > > If you have more BCC specific questions not involving clang/llvm, > perhaps you can ping Alexei/myself off of the llvm-dev list, in case > this discussion is not relevant to them. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event "Wangnan (F)" <wangnan0@huawei.com> - 2015-08-12 04:40 +0200
Re: [llvm-dev] llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event Alexei Starovoitov <alexei.starovoitov@gmail.com> - 2015-08-12 07:00 +0200
Re: [llvm-dev] llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event "Wangnan (F)" <wangnan0@huawei.com> - 2015-08-12 07:50 +0200
Re: [llvm-dev] llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event Brenden Blanco <bblanco@gmail.com> - 2015-08-12 15:20 +0200
Re: [llvm-dev] llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event "Wangnan (F)" <wangnan0@huawei.com> - 2015-08-13 08:30 +0200
csiph-web