Project Proposal for bpftime - eBPF Foundation

1.2. Project Description (what it does, why it is valuable, origin and history)

General Information

1.1. Name of Project

bpftime

1.2. Project Description (what it does, why it is valuable, origin and history)

bpftime is an userspace eBPF runtime that allows existing eBPF applications to operate in unprivileged userspace using the same libraries and toolchains. It offers Uprobe and Syscall tracepoints for eBPF, with significant performance improvements over kernel uprobe and without requiring manual code instrumentation or process restarts. The runtime facilitates interprocess eBPF maps in userspace shared memory, and is also compatible with kernel eBPF maps, allowing for seamless operation with the kernel's eBPF infrastructure. It includes a high-performance LLVM JIT for various architectures, alongside a lightweight JIT for x86 and an interpreter.

The project was started in 2023 by Yusheng Zheng and Tong Yu, as interns sponsored by PLCT lab, ISCAS. It's hosted and maintained by the eunomia-bpf community.

1.3. How does this project align with the Foundation's Mission Statement to encourage/foster the deployment and use of eBPF in the industry (e.g., not merely allow using eBPF as an option)

  1. Enable eBPF tools like bcc and bpftrace, or more complex commercial eBPF observability agents, to run in userspace on more platforms, on lower version kernels, in non-privileged container environments, or potentially in other platforms like MacOS, Windows, FreeBSD, etc, without any modification to the eBPF applications.
  2. Have better performance in some cases, for example, the uprobes and LLVM JIT/AOT.
  3. Enable more usecases and innovations, for example, use bpf_override_return for userspace functions, use XDP in DPDK applications, etc.

For more details, please refer to:

  1. Our blog: https://eunomia.dev/blogs/bpftime/
  2. Our talk at Linux Plumbers 2023: https://lpc.events/event/17/contributions/1639/
  3. arxiv: https://arxiv.org/abs/2311.07923

1.4. Project website URL

https://eunomia.dev/bpftime/

1.5. Social media accounts, if any

A Discord server: https://discord.gg/jvM73AFdB8

2.1. Project Logo URL or attachment (Vector Graphic: SVG, EPS), if any.

No logo for bpftime yet.

2.2. Project license. We recommend an OSI-approved license, so if the license is not one on the list, explain why.

MIT License

2.3. Existing financial sponsorship, if any.

The PLCT lab, ISCAS, has some open Internships positions for the project. Some professors from universities also provide some one time sponsorship for the project.

See https://github.com/eunomia-bpf/bpftime#acknowledgement for more details.

2.4. Was the project previously accepted by any other consortium or foundation? If so, does the project now accept the eBPF Foundation as its primary support body?

This project has not been accepted by any other consortium or foundation. We are open to accepting the eBPF Foundation as our primary support body.

2.5. Trademark status, if any.

2.6. Proposed Technical Charter, based on the [template]. Include doc as attachment or give URL of doc. It is ok to change the text (e.g., "Technical Steering Committee") to match the actual structure of the project; projects are free to use whatever governance structure they want.

Technical Information

3.1. High level assessment of project synergy with any existing projects under the eBPF Foundation, including how the project compliments/overlaps with existing projects, and potential ways to harmonize over time. Responses may be included both inline and/or in accompanying documentation.

3.2. Project Code of Conduct URL. We recommend one based on the Contributor Covenant v2.0 or the LF Projects Code of Conduct.

3.3. Source control URL

https://github.com/eunomia-bpf/bpftime

3.4. Issue tracker URL

https://github.com/eunomia-bpf/bpftime/issues

3.5. External dependencies (including licenses, and indicate whether each is a build time or runtime dependency)

3.6. Standards implemented by the project, if any. Include links to any such standards.

https://www.kernel.org/doc/html/next/bpf/instruction-set.html - eBPF instruction set

Which is tested by the bpf_conformance

3.7. Release methodology and mechanics

3.8. List of project's official communication channels (slack, irc, mailing lists)

3.9. Project Security Response Policy for handling any vulnerabilities reported

3.10. Expected budget request. See [Project Benefits] for items that may be requested for potential support.

3.11. Any additional information the BSC and Board should take into consideration when reviewing your proposal.

继续阅读

返回索引

Ecosystem & Other Projects

Explore the eunomia-bpf ecosystem with additional tools for eBPF benchmarking, AI monitoring agents, and compatibility libraries.

上一篇 / 上一页

使用 eBPF 对 AI/ML 工作负载进行追踪和性能分析 - 操作系统大赛赛题

随着人工智能(AI)技术的快速发展,以及 LLM 模型变得日益复杂,对计算资源的需求也在持续增长。在这种背景下,有效监控和优化AI 工作负载的性能成为了一个重要议题。当模型训练一个超参数组合可能需要数十万美元时,投资于加速这些工作可能会节省大量成本。成本指标可以是美元数额、兆瓦足迹和二氧化碳排放量。提高效率的关键在于可观测性和分析,而很大程度上可观测性是技术、工具、数据集和仪表盘的综合体,它使我们能够首先评估基础设施在不同粒度水平上实现

下一篇 / 下一页

实现内核与用户态共同工作的 eBPF 安全框架 - 操作系统大赛赛题

bpftime 是一个用户空间的 eBPF 运行时,可让现有的 eBPF 应用程序直接在非特权用户空间中运行,使用相同的库和工具链,并且获取到追踪分析的结果。它为 eBPF 提供 Uprobe 和 Syscall tracepoint 等追踪点,比内核 uprobe 的开销降低约10倍,不需要手动的代码插桩或进程重启,可以实现对于源代码和编译流程的无侵入式分析。它也可以和 DPDK 等结合,在用户态网络中实现 XDP 的功能,并和内核

最后更新
2025年2月12日
首次发布
2024年2月3日
贡献者
weekendfish, 云微, yunwei37

这个页面有帮助吗?