2023 年第37周周报
九月第三周,这周真是倒霉透了。。
生活
- 先汇报一下这周的近况
- 精神状态还 OK
- 做菜的确能缓解焦虑
- 本周倒霉透了,半个月去了几次急诊,这周头撞破去医院缝了几针
- 本周小狗的状态依旧很好
- 每次出门都是接上最靓的崽
- 做错事了会来按 sorry 道歉
- 本周和女朋友一起出去吃巴奴,感觉没之前好吃了
- 本周的娱乐时间
- 银之匙真的好看,有钱了要做第三季,三刷了
- 看了下 mygo,不喜欢
- 黎明N刷完了
- 本周的布莱泽,稍晚下调了一些,但是也很精彩
- 奥棚经典的亲子回,刻画队员的家庭在这几年新生代做的还不错的
- 这集张力比起前面来说有点不够,但是挺放松的
- 原始人解锁新技能了好事!
- 亲子回巅峰应该是高斯奥特曼第11话,动け! 怪獣/快动起来!怪兽,跨越6500万年的思念
- 本周小猫继续的补液,下周复查希望能好转
- 本周继续背单词
- 本周推荐 596秘史 这本书
技术
- 本周工作上好玩的事情
- GitHub Runner 最近的稳定性真的不行,但是目前中和体验来说好像也没更好的平台了?
- 这周在 MacOS 虚拟化上花了不少时间
- 用 Swift 基于 Apple Virtualization Framework 跑通了基础的 Linux 虚拟机,但是遇到很多问题
- 对于非 RAW Image 的支持没有,导致需要额外处理比较广泛的 qcow2 或者 vmware 格式的虚拟机。目前有这样的一些方法
- 自己手写一下 qcow2 转 Raw Image,工作量还好,但是 corner case 很麻烦
- 依赖 qemu 做镜像转换,但是 qemu 真的太重了
- vz framework 不支持 CDRom Device,导致 CloudInit 这样一个工具没法使用(cloud-init 默认行为是扫描 label 了 vfat 或者 iso9660 的 device,当然也可以走 HTTP 的方式下发,但是这样会存在 DHCP 的一个死循环的问题)
- 本周和 xintao 讨论一个问题,他的原话 “想追踪慢的 tcp connect 时间花在哪里了。有办法用bpf追踪吗?想知道,比如 DNS 时间,SYN 发出去的事件,SYN ACK. 事件。”,很使用的一些想法
- 我第一反应是如果要 eBPF 的话,可以在 https://elixir.bootlin.com/linux/latest/source/net/ipv4/tcp_output.c#L3923 找一些关键点,然后 unwind 串起来
- 经过师父提醒,可以用 pwru 来解决
- pwru 也存在一些问题
- 只检查了 skb 而没有追 sk,导致不少重要 tcp 函数没有被观测
- 只检查 kprobe 而没有 kr,导致对“耗时”的观测还有偏差
- 不能观测 bpf prog, xdp, L2 frame
- 过滤还很僵硬,比如这里如果能指定一个进程去 trace 其实很有价值,可以跨协议且全链路
- 太依赖入参,导致很多重要函数没有 skb 参数 没有观测到
- 本周还是有一个很有趣的内核里的问题,“怎么样去 trace custom module 里的函数”
- 我第一反应是 kprobe 应该可以做
- 写了一个 module,走 EXPORT_SYMBOL 暴露符号
- 在 /sys/kernel/debug/tracing/available_filter_functions 和 /proc/kallsyms 都能找到符号,符合预期
- 然后啪的一下用 eBPF + kprobe 抓不到事件,麻了
- 手动走 kprobe event 也不太 work
- 下周准备用 original kprobe 试下,实在不行我去内核里打桩看下发生了啥
- 本周 containerd 提了 CPU Burst 的 Proposal,被社区同学认领了
- CSAPP 虚拟内存看完了,该写 malloc 作业了,麻了
- 继续每天写题解
差不多这样
总结
这周还是挺摆烂,主要是太过于倒霉了。。希望能尽快好起来
Comments