Dante
已过滤: . 继续显示

@dantezy@dabr.ca
#bpftrace #ebpf
t.me/danteslimbo/3336
周末开始想一个问题:在 kretprobe 里面怎样获取 probed 函数的名字。见 t.me/danteslimbo/3327
首先 bpf_get_func_ip 和 PR_REGS_IP 都不行(实测)。
第二个思路就是把所有寄存器都打出来看看,看有哪个寄存器存了可用的地址,用来算出 probed 函数的地址——并没有。
Nameless One 给了一个思路:在 kprobe 的时候存一下地址,在 kretprobe 的时候读出来,我觉得这是正路,但是有点麻烦,后面我把 bio 也做进来再采用这种办法吧。
还有第三个思路就是看 bpftrace 的 probe 看它怎样实现的。当时我以为 bpftrace 也是通过 offset 算地址的思路,所以对着 bpftrace --emit-elf 的 bpf 汇编算了半天,还学了一下如何直接写汇编 ebpf t.me/danteslimbo/3330
昨天想了一下,去看 bpftrace 的翻译出来的 ebpf 内容(用 -dd),把翻译出来 llvm IR 扔进 chatgpt 里面,发现它定义了一个 printf_t 结构体,然后往这个结构体里面写满0,就从 perf_event_output 扔出来,更加迷茫了。
当然 Nameless One 很快找到正确的答案了(此处有掌声)。
看一下
shell
bpftrace -dd -e 'kretprobe:blk_put_request,kretprobe:blk_mq_free_request, kretprobe:blk_mq_alloc_request { printf("%s\n", probe); }'
的结果就会知道答案,简单来说,这里 probed 了三个 kretprobe, bpftrace 会生成三个 prog,在里面给 printf_t 赋值为 {0,0}, {1,0}, {2,0}, 然后在用户态把这个硬编码翻译回来。
哎。
t.me/danteslimbo/3336
周末开始想一个问题:在 kretprobe 里面怎样获取 probed 函数的名字。见 t.me/danteslimbo/3327
首先 bpf_get_func_ip 和 PR_REGS_IP 都不行(实测)。
第二个思路就是把所有寄存器都打出来看看,看有哪个寄存器存了可用的地址,用来算出 probed 函数的地址——并没有。
Nameless One 给了一个思路:在 kprobe 的时候存一下地址,在 kretprobe 的时候读出来,我觉得这是正路,但是有点麻烦,后面我把 bio 也做进来再采用这种办法吧。
还有第三个思路就是看 bpftrace 的 probe 看它怎样实现的。当时我以为 bpftrace 也是通过 offset 算地址的思路,所以对着 bpftrace --emit-elf 的 bpf 汇编算了半天,还学了一下如何直接写汇编 ebpf t.me/danteslimbo/3330
昨天想了一下,去看 bpftrace 的翻译出来的 ebpf 内容(用 -dd),把翻译出来 llvm IR 扔进 chatgpt 里面,发现它定义了一个 printf_t 结构体,然后往这个结构体里面写满0,就从 perf_event_output 扔出来,更加迷茫了。
当然 Nameless One 很快找到正确的答案了(此处有掌声)。
看一下
shell
bpftrace -dd -e 'kretprobe:blk_put_request,kretprobe:blk_mq_free_request, kretprobe:blk_mq_alloc_request { printf("%s\n", probe); }'
的结果就会知道答案,简单来说,这里 probed 了三个 kretprobe, bpftrace 会生成三个 prog,在里面给 printf_t 赋值为 {0,0}, {1,0}, {2,0}, 然后在用户态把这个硬编码翻译回来。
哎。
0
0
1
已过滤: . 继续显示

@dantezy@dabr.ca
t.me/danteslimbo/3327
dust 抄了 purw 拿 probed 函数的方法:从 ip 寄存器里面拿指令地址,再用指令地址从符号表反查函数名。
但这方法放 blk_mq_alloc_request 不灵了,因为这里挂的是 kretprobe ,ip 的地址指向 kretprobe_trampoline. 昨天拿 bpftrace 琢磨了半天,把所有寄存器都打出来看了一下,最后还是不知道怎样拿到 blk_mq_alloc_request 的地址。
不过我倒是学了一点别的伎俩:
1. bpftrace 有一个 --emit-elf 参数,可以把 bpftrace script 导出成 elf 文件,然后就可以用 llvm-objdump 分析了。
2. bpftrace 的 print 其实用了一个 perf_event 往外吐数据。
回到 dust 我决定先用 addr = 0 标注这是从 blk_mq_alloc_request 返回的事件,先糊弄过去了。
github.com/dantesli...
dust 抄了 purw 拿 probed 函数的方法:从 ip 寄存器里面拿指令地址,再用指令地址从符号表反查函数名。
但这方法放 blk_mq_alloc_request 不灵了,因为这里挂的是 kretprobe ,ip 的地址指向 kretprobe_trampoline. 昨天拿 bpftrace 琢磨了半天,把所有寄存器都打出来看了一下,最后还是不知道怎样拿到 blk_mq_alloc_request 的地址。
不过我倒是学了一点别的伎俩:
1. bpftrace 有一个 --emit-elf 参数,可以把 bpftrace script 导出成 elf 文件,然后就可以用 llvm-objdump 分析了。
2. bpftrace 的 print 其实用了一个 perf_event 往外吐数据。
回到 dust 我决定先用 addr = 0 标注这是从 blk_mq_alloc_request 返回的事件,先糊弄过去了。
github.com/dantesli...
0
0
1
已过滤: . 继续显示

已过滤: . 继续显示

已过滤: . 继续显示

@dantezy@dabr.ca
查看详情

Telegram
Dante's Limbo
#ebpf #dust 给 dust 加上了 github action: https://github.com/danteslimbo/dust/actions/workflows/makefile.yml 有空继续抄 #pwru
0
0
1
已过滤: . 继续显示

@dantezy@dabr.ca
我要夫子自道地卖一下广告:
dust
一个抄 pwru 的 ebpf 小工具,主要作用就是跟踪一个 io request 的生命周期。别的不说,能省一点穿越层层调用链看调用次序。
github.com/dantesli...
dust
一个抄 pwru 的 ebpf 小工具,主要作用就是跟踪一个 io request 的生命周期。别的不说,能省一点穿越层层调用链看调用次序。
github.com/dantesli...

GitHub
GitHub - danteslimbo/dust
Contribute to danteslimbo/dust development by creating an account on GitHub.
0
0
1
已过滤: . 继续显示

@dantezy@dabr.ca
#吐槽
t.me/danteslimbo/3253
之前说过一个同学跑去搞玄学组织。今天群里接了一个 LLM chatbot,可以问它问题,然后,在回答所有问题之前,它都会加一段六壬神算的分析,画风如下:
xsx 33 A股下半年最高到多少点?
**六壬排盘:**
* 年命:丙午
* 月令:甲申
* 日建:庚戌
* 时辰:戊寅
**取用神:**
* 事体:财爻(己酉)
* 世爻:庚戌日建(代表求测者)
* 应爻:己酉财爻(代表股市)
**综合分析:**
**空间:**
* 财爻临白虎,主财运不佳,股市走势疲软。
* 白虎空亡,不利于聚集财气,股市难有起色。
**时间:**
* 日干庚金自合,主时间不确定,股市波动不定。
* 天盘庚金与地盘己酉相冲,冲力受损,股市难以快速上涨。
**外环境:**
* 官鬼临腾蛇,有外力干预,股市受政策影响较大。
* 旬空逢劫杀,外力难以发挥正面作用,股市缺乏支撑。
**人际:**
* 世爻自刑,求测者心态不定,难以把握投资时机。
* 应爻伏吟,股市走势反复无常,难以预测。
**外力:**
* 旬空逢六合,外力难以发挥作用。
* 天罗地网卦,外援受阻,无法及时提振股市。
**判断:**
综合以上分析,A股下半年最高点位预计在3500点左右。
**原因:**
* 财爻临白虎空亡,财运不佳,股市难有起色。
* 外环境阻力较大,外力难以发挥正面作用,股市缺乏上涨动力。
* 求测者心态不定,难以把握投资时机,影响获利空间。
**结论:**
预计A股下半年最高点位在3500点左右,股市走势整体震荡疲软,缺乏持续上涨动力。求测者需谨慎投资,把握好止损点,避免因追涨杀跌而遭受较大损失。
这,有种红夷大炮配合葵花宝典的诡异画风。
t.me/danteslimbo/3253
之前说过一个同学跑去搞玄学组织。今天群里接了一个 LLM chatbot,可以问它问题,然后,在回答所有问题之前,它都会加一段六壬神算的分析,画风如下:
xsx 33 A股下半年最高到多少点?
**六壬排盘:**
* 年命:丙午
* 月令:甲申
* 日建:庚戌
* 时辰:戊寅
**取用神:**
* 事体:财爻(己酉)
* 世爻:庚戌日建(代表求测者)
* 应爻:己酉财爻(代表股市)
**综合分析:**
**空间:**
* 财爻临白虎,主财运不佳,股市走势疲软。
* 白虎空亡,不利于聚集财气,股市难有起色。
**时间:**
* 日干庚金自合,主时间不确定,股市波动不定。
* 天盘庚金与地盘己酉相冲,冲力受损,股市难以快速上涨。
**外环境:**
* 官鬼临腾蛇,有外力干预,股市受政策影响较大。
* 旬空逢劫杀,外力难以发挥正面作用,股市缺乏支撑。
**人际:**
* 世爻自刑,求测者心态不定,难以把握投资时机。
* 应爻伏吟,股市走势反复无常,难以预测。
**外力:**
* 旬空逢六合,外力难以发挥作用。
* 天罗地网卦,外援受阻,无法及时提振股市。
**判断:**
综合以上分析,A股下半年最高点位预计在3500点左右。
**原因:**
* 财爻临白虎空亡,财运不佳,股市难有起色。
* 外环境阻力较大,外力难以发挥正面作用,股市缺乏上涨动力。
* 求测者心态不定,难以把握投资时机,影响获利空间。
**结论:**
预计A股下半年最高点位在3500点左右,股市走势整体震荡疲软,缺乏持续上涨动力。求测者需谨慎投资,把握好止损点,避免因追涨杀跌而遭受较大损失。
这,有种红夷大炮配合葵花宝典的诡异画风。
0
0
1
已过滤: . 继续显示

已过滤: . 继续显示

@dantezy@dabr.ca
0
0
1
已过滤: . 继续显示

已过滤: . 继续显示

@dantezy@dabr.ca
已过滤: . 继续显示

没有更多数据了
