第四周 - Antareske/tgoskits GitHub Wiki
实习周报(2026-08-01)
本周家里有点事,未能做太多工作 :(
本周工作
使用 kprobe 重新写了 SG2002 WiFi 驱动的 eBPF 监测工具:主要监测 WiFi 上行传输被 CPU 调度卡住的行为。
当前 WiFi 的主要问题:
驱动的上行传输在等待 WiFi 芯片传输完成时使用了 yield_now() 让出 CPU,芯片在约 0.2 ms 完成后,CPU 仍被其他任务占用一个最大时间片 50 ms,导致每帧上行传输都要等待一个时间片的重新轮询。
为什么没有 RX ?
RX 探针挂到 SdioTransport::read_fifo 上,但该符号位于底层 SdioHost(sdhci-cv1800 驱动),再用 SdioHost 的符号挂载后,发现其函数签名与 SdioTransport 的版本不同(&self 替换为不同的 impl 类型,参数寄存器变化了?),禁止内联(#[inline(never)])可能也无法解决。本人不太了解编译原理,尝试多次后放弃。最后只监测 TX 这一目前驱动面临的主要问题。要学的东西还是太多了。
下周
评估为 WiFi 驱动 tx 在芯片完成后触发中断是否有价值 ---- 当前 WiFi 上行修复方案(邵志航)是忙等占住调度等硬件完成,尚未纳入主线。如果能通过 eBPF 证明实现了中断的效果好于当前方案,则认为有价值做这件事。
比赛
尝试使用 eBPF 评估 ACT 推理过程的延迟情况,用户态 uprobe 也纳入考虑;
用辰龙的小车为 ACT 模型采集训练数据,训练好后在小车上验证一下 ACT 捡(找)网球的效果。aka 已经提供一定的数据快照功能,接下来需要采集它,需要确定采集频率,sim2real 使用 10 fps 而论文中是 50 fps。