Recent Posts
-
June 11, 2020
Linux的抓包socket的过滤bpf指令怎么写
在内核源码的 https://elixir.bootlin.com/linux/latest/source/Documentation/networking/filter.txt 文件列出了怎么在程序里面写bpf代码https://docs.cilium.io/en/latest/bpf/ 对bpf的实现架构也有点说明“tcpdump ether multicast -dd” 这个也可以用tcpdump直接生成指定bfp表达式的code,然后在程序里面使用这个code数组```text...
-
May 14, 2020
Linux系统启动时的getrandom随机数系统调用阻塞问题
4.1x版本的内核,很多人都观察到系统启动时会有个卡顿现象。 比如这篇文章: “快杰云主机 SSH 登录缓慢的排查和解决” http://blog.ucloud.cn/archives/4310这个老版本内核是没有这个现象的,大概是某版本里面引入的吧,就是之前有人报告内核的随机数生成器(cryptographically-secure pseudo-random number generator (CSPRNG) )不够“随机”(entropy熵不够),所以改进的内核在开机初始化阶段,...
-
May 12, 2020
Bash打印有颜色的字符
bash有个针对终端的颜色表的,,调用方法是这样的printf "\e[91minactive\e[0m"printf "\e[92mactive\e[0m"perl里面也有专门的一个库吧。
-
May 12, 2020
Linux用debugfs查看ext4文件创建时间
ls -i filename debugfs -R 'stat <inode-number>' /dev/sdxxxx
-
May 07, 2020
Ccache的编译速度加速
c++的编译真的是太慢了,ccache说是能提高编译速度,安装ccache会在/usr/lib64/ccache目录创建工具的链接[root@localhost]# ls -lh /usr/lib64/ccache/total 0lrwxrwxrwx. 1 root root 16 Apr 9 15:12 c++ -> ../../bin/ccachelrwxrwxrwx. 1 root root 16 Apr 9 15:12 cc -> ../../bin/ccache...
-
April 30, 2020
Linux内核的关机按钮事件和acpid还有systemd的关机按键处理
发现有的虚拟机系统不能接收“正常关机”的菜单命令,就来找一下资料用户按下物理按键,会发送一个ACPI按键信号, 内核里面的acpi驱动这个event.c button.c进行处理的。这个事件看上去netlink和/dev/input/event里面都能收到KEY_POWER按键事件https://elixir.bootlin.com/linux/latest/source/drivers/acpi/event.c#L148https://elixir.bootlin.com/linux/l...
-
April 27, 2020
Linux的flowtable offiload特性加速网络包转发
https://elixir.bootlin.com/linux/latest/source/Documentation/networking/nf_flowtable.rsthttp://blog.ucloud.cn/archives/4541https://www.netfilter.org/projects/nftables/manpage.html
-
April 27, 2020
Linux内核rfs和skb_get_hash
https://www.kernel.org/doc/Documentation/networking/scaling.txt驱动层会设置skb hash,这个在很多地方都会用到,比如fq_codel 算法里面https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/intel/igb/igb_main.c#L8184static inline void igb_rx_hash(struct igb_ring *...
-
April 27, 2020
Linux内核的tcp bbr和tcp pacing
https://groups.google.com/forum/#!topic/bbr-dev/4jL4ropdOV8https://patchwork.ozlabs.org/project/netdev/patch/20170516112436.10189-1-edumazet@google.com/https://elixir.bootlin.com/linux/latest/source/net/ipv4/tcp_output.c#L2298TCP的BBR算法是要求tcp pacin...
-
April 24, 2020
Linux内核的static_key系列函数和cpu分支预测优化
https://github.com/torvalds/linux/blob/master/Documentation/static-keys.txt这个 static_branch_likely() static_branch_unlikely() 有点像likely和unlikely,但不像likely这个其实完全避免了分支指令了,全部插入nop指令了,然后修改变量的值的时候才把nop替换为跳转到不同分支的指令,非常有意思。 之前看有一个说内核的ftrace就是用类似的技术实现的吧。