-
-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add ebpf support #912
feat: add ebpf support #912
Conversation
add basic bpf map type. add basic perf type. update kprobe impl. add user app example.
@Chiichen @fslongjin 我重新整理了ebpf的提交代码,麻烦两位看看。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Godones 简单描述下这个 PR 之后对 eBPF 的支持到了什么程度(基本/可用/完整支持),以及支持/不支持哪些功能
最好能在内核文档里面写几个文档,描述你的设计&方案 |
与 @Godones 交流了一下,会在下次或者下下次社区会议上分享这个 PR 的工作内容,等会议结束后再合并一次主线(应该主要是文件映射那边有一些冲突要解决),再开始 review 这个 PR |
@Godones 已经合并了最新的主线,麻烦解决一下冲突,对齐一下主线的实现,我记得在mmap的实现那部分(ucontext)逻辑是有冲突的 |
可以 |
@Chiichen 似乎合并主线后无法通过CI? |
是的,我看应该是格式检查挂了,因为我在网页上解决的冲突,所以可能没有仔细去格式化,你就基于现有的分支代码解决冲突就可以了,应该格式化之后 ci 是不会挂的 |
@Chiichen 新的修改中主要是适配当前主线的mmap实现,以及修复了一些错误。由于主线的mmap并不能完全适用于所有文件的实现,我在 |
@Jomocool 麻烦帮忙看看mmap相关的修改 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
大概看了一半,可以先看看,以及CI没过,看看是什么原因~?
ci好像还是没过,我看别的PR,看起来好像是ci的问题? @fslongjin https://github.com/DragonOS-Community/DragonOS/actions/runs/10926795584/job/30564234565?pr=928 |
Waiting for pending review |
文档里面的几个图片需要重命名一下,改成有意义的名字。 |
ok |
e53352f
to
168347d
Compare
TODO 将当前 do_mmap 的实现,转移到sysfs下 |
168347d
to
134e89b
Compare
@Godones 似乎test_ebpf 还是没编过 |
需要把主线合并进来才行,主线的构建容器里面才装了bpf相关工具链。 |
应该是CI里面使用的依赖是较新的版本,我修改一下就可以 |
55a41a6
to
2d5de95
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@Godones 上次提到关于mmap的问题解决好了吗 |
这个需要另外一个同学完成它的修改 |
@fslongjin 那先把这个PR合了? |
* feat(kprobe): Add basic kprobe support for x86_64 * feat: add ebpf support (#912) - 实现bpf()一部分命令,包括几种基本map,相关的helper函数 - 实现部分perf相关的数据结构 - 暂时为文件实现简单mmap - 实现一个使用kprobe统计syscall 调用次数的ebpf程序 对eBPF支持程度(基本): - 简单的eBPF程序(没有指定特殊的Map) - 使用内核已经实现的Map的eBPF程序 - 可以和kprobe配合使用 - 内核Map相关的接口定义已经实现,添加新的Map较为简单 不支持的功能: - 区分不同的eBPF程序类型(Network/Cgroup)并限定可调用的helper函数集 - 与内核其它跟踪机制配合(tracepoint) - 其它helper和Map todo - [ ] 修改mmap,需要讨论,因为这个和块缓存层相关 - [x] 添加文档 - [x] 修复可能的错误 - [x] 增加rbpf版本信息 * feat: add /sys/devices/system/cpu/possible file * feat: add /sys/devices/system/cpu/online
对eBPF支持程度(基本):
不支持的功能:
todo