[置顶] 全是好东西

摘要: Linux 网络栈接收数据(RX):原理及内核实现(2022) : https://arthurchiao.art/blog/linux-net-stack-implementation-rx-zh/ 从 “TCP 速度打不上去” 聊到 “交换机 QoS” https://mp.weixin.qq. 阅读全文
posted @ 2024-05-15 11:34 toong 阅读(26) 评论(0) 推荐(0) 编辑

[置顶] 内容精选

摘要: strongswan/ipsec [ipsec][strongswan]strongswan源码分析--(零)引子 [ipsec][strongswan] strongswan源码分析--(〇)总体架构图 [ipsec][strongswan] strongswan源码分析--(一)SA整体分析 [ 阅读全文
posted @ 2020-05-25 21:02 toong 阅读(4423) 评论(1) 推荐(0) 编辑

[转发][内核]内核浮点数运算实现

摘要: 简洁,清晰又硬核 抽丝剥茧 Linux 浮点运算的原理 https://linux.cn/article-13474-1.html 阅读全文
posted @ 2024-09-10 20:28 toong 阅读(1) 评论(0) 推荐(0) 编辑

rpm包解压

摘要: rpm包解压方法如下,生成一个目录树在当前目录。 rpm2cpio xxx.rpm | cpio -div 阅读全文
posted @ 2024-09-10 19:30 toong 阅读(1) 评论(0) 推荐(0) 编辑

ros

摘要: 古月居 https://book.guyuehome.com/ROS2/4.%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB/4.%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB/ 阅读全文
posted @ 2024-09-03 17:18 toong 阅读(3) 评论(0) 推荐(0) 编辑

用nping发裸包

摘要: 以前都自己写程序,或者用libpcap或者用dpdk很麻烦,现在发现有nping工具了,很方便。 nping工具是nmap包里带的。 示例:nping -e ens8f1 --send-eth --dest-mac 10:70:fd:2e:3f:39 --tcp 9.9.9.9 注意:口ens8f1 阅读全文
posted @ 2024-09-03 11:24 toong 阅读(4) 评论(0) 推荐(0) 编辑

条件运算符?:省略表达式2

摘要: dpvs中的两行代码 https://github.com/iqiyi/dpvs/blob/master/src/sa_pool.c#L209 这是GUN C支持的语法,不是标准C。 见:https://zh.wikipedia.org/wiki/%E6%9D%A1%E4%BB%B6%E8%BF%9 阅读全文
posted @ 2024-06-07 15:17 toong 阅读(8) 评论(0) 推荐(0) 编辑

systemtap打印函数调用和参数取值

摘要: 打印某文件内所有参数和入参 #!/usr/bin/stap probe process("/usr/bin/jmy_app").function("*@my_app.c").call { printf("Function %s called with parameters : %s\n", ppfu 阅读全文
posted @ 2024-06-07 13:41 toong 阅读(76) 评论(0) 推荐(0) 编辑

用mpstat查看中断

摘要: 每次 cat /proc/interrupts 行特别长,列特别多不方便查看。 可以用mpstat工具查看 先查每个CPU上的中断总量 mpstat -I SUM -P ALL 1 1 再查 指定CPU的所有中断 mpstat -I ALL -P 10 1 1 阅读全文
posted @ 2024-05-30 17:21 toong 阅读(16) 评论(0) 推荐(0) 编辑

linux查看内存被哪个文件cache了

摘要: linux发现内存不足,查看有大量cache占用 vmtouch命令可以查看,具体被谁占用了。 找到你怀疑的目录,自己分析,排查到怀疑的文件 https://github.com/hoytech/vmtouch 阅读全文
posted @ 2024-05-10 17:05 toong 阅读(58) 评论(0) 推荐(0) 编辑

emacs 查找文件

摘要: 使用频率不高,所以每次都忘 应该是装了dird才能用 命令: M-x: find-name-dired 第一个参数:目录名, 第二个参数:文件名。 查到之后在窗口里回车,就打开文件了。 阅读全文
posted @ 2024-04-30 14:26 toong 阅读(7) 评论(0) 推荐(0) 编辑

[dpdk] rte_flow

摘要: 以下内容直接来自官网文档的整理。 更精准的描述请阅读文档:https://doc.dpdk.org/guides/prog_guide/rte_flow.html 一 rte_flow是干嘛的 一组用来创建自定义规则的api,该规则可以改变网络流量的命运,以及查询计数。 二 规则啥样 1 match 阅读全文
posted @ 2024-04-19 20:32 toong 阅读(141) 评论(0) 推荐(0) 编辑

linux文件被谁删除了

摘要: 如果你也有如标题所属的困扰。可以尝试一下linux audit功能。 1 是否能用 1.1 这个功能需要内核启用,要编译时打开了如下图所示的选项 1.2 启动内核的时候,也不能是关着的。(红框这行不能有) 1.3 服务是不是开着的 (下图就是内核选项没开时候的提示) systemctl status 阅读全文
posted @ 2024-04-19 14:51 toong 阅读(136) 评论(0) 推荐(0) 编辑

perf/systemtap在线调试简明用法

摘要: perf 实时观察指定CPU perf top -C 8 --call-graph dwarf,4096 -r 30 -K 先记录到文件,在通过文件做事后分析 perf record -C 8-25 --call-graph dwarf,4096 perf report -i perf.data - 阅读全文
posted @ 2024-04-18 18:55 toong 阅读(17) 评论(0) 推荐(0) 编辑

asan/gpreftools内存调试简明用法

摘要: 启用高版本gcc yum install centos-release-scl yum install devtoolset-11-gcc yum install devtoolset-11-gcc-c++ yum install devtoolset-11-libasan-devel source 阅读全文
posted @ 2024-04-18 12:27 toong 阅读(35) 评论(0) 推荐(0) 编辑

[kernel]Linux怎么启动

摘要: old Linux(0.12)的引导直接通过BIOS,没有bootloader,跟newlinux(>2.6)不太一样。 new的用bootloader。 更new的用uefi了。 old 见这本书 <<linux内核完全注释>>https://download.oldlinux.org/CLK-5 阅读全文
posted @ 2024-04-09 17:25 toong 阅读(9) 评论(0) 推荐(0) 编辑

转:边沿触发和电平触发的区别

摘要: https://www.cnblogs.com/isAndyWu/p/9917570.html 边沿触发和电平触发的区别 当然不一样了电平触发是在高或低电平保持的时间内触发,而边沿触发是由高到低或由低到高这一瞬间触发追问:我总觉得都是在电平为某一值是而触发的。那边沿触发到底解决了电平触发哪点没有解决 阅读全文
posted @ 2024-04-07 16:45 toong 阅读(18) 评论(0) 推荐(0) 编辑

dpdk编译-meson版

摘要: 1 依赖python3的elftools,没有的话可以这样装 python3 -m pip install pyelftools 2 在dpdk根目录,使用命令 meson setup -Dprefix=/home/tong/Code/dpdk-21.11.4/dest/ -Ddefault_lib 阅读全文
posted @ 2023-11-27 14:35 toong 阅读(590) 评论(0) 推荐(0) 编辑

emacs在目录里查找字符串

摘要: 1. 输入命令 M-x rgrep 2. 提示要查找的字符串,请输入 Search for (default "xxx_abab") : 3. 提示被查找文件的正则条件,请输入 Search for "xxx_abab" in files (default *.[ch]) : 4. 提示被查找的目录 阅读全文
posted @ 2023-11-24 11:06 toong 阅读(20) 评论(0) 推荐(0) 编辑

大量client通过nat网关访问server的端口重用问题

摘要: 大量client共享一个nat ip访问server时。由于nat为了快速回收端口而设置的timewait timeout时间很短, 短于server的timeout。这个时候会有重新复用了端口的包达到server的timewait状态的连接上,导致client无法访问。 可以用以下配置,让serv 阅读全文
posted @ 2023-10-08 15:37 toong 阅读(46) 评论(0) 推荐(0) 编辑

emacs查找光标处单词

摘要: 按下 C-s C-w 搜索光标处的单词(此时应该是“mail”). 让我们再试试按下 C-s C-w C-w 会发现可以搜索光标处的多个单词. 按下 C-s C-M-y 则表示搜索光标处的字符. 类似的,按下 C-M-y C-M-y 会将接下来的两个字符也纳入搜索字符串中. 按下 C-M-w 会删除 阅读全文
posted @ 2023-09-12 19:45 toong 阅读(36) 评论(0) 推荐(0) 编辑

sed合并两个相邻行

摘要: 命令: head tmp.txt |sed '/vni 7804$/{N;s/\n//}' 例子: [root@A dada]# head tmp.txt10:41:04.320892 IP 238.65.57.64323 > 238.65.25.4789: VXLAN, flags [I] (0x 阅读全文
posted @ 2022-11-25 11:27 toong 阅读(73) 评论(0) 推荐(0) 编辑

/etc/sysconf/network-scripts/ifcfg-eth0的手册到底在哪里

摘要: 虽然有个NetworkManager,但是network.service的清晰简洁依然让人无法拒绝。 不过它的配置手册和manuel藏得比较隐晦,在这里: /usr/share/doc/initscripts-9.49.39/sysconfig.txt 我是怎么找到它的: 用service找到了它的 阅读全文
posted @ 2021-11-08 19:55 toong 阅读(166) 评论(0) 推荐(0) 编辑

awk使用[]进行分隔

摘要: 要转义两次,字符串解析转义一次,正则表达式转义一次。 awk -F '[\\[\\]]' '{ print $2}' awk 'BEGIN { FS="[\\[\\]]" } { print $2}' 阅读全文
posted @ 2021-09-28 14:15 toong 阅读(90) 评论(0) 推荐(0) 编辑

使用grub支持mbr启动memtest86

摘要: 0 序言 好吧,已经9012年了。谁还mbr启动? memtest86+就是那个内存检测工具。电脑用时间长了,内存坏了是必然的。这个时候我们需要memtest一下,把坏掉的那一根失败处理,拔下来丢掉。 但是很遗憾,无论是memtest86还是memtest86+,他们提供的iso,都不支持mbr启动 阅读全文
posted @ 2021-09-20 15:37 toong 阅读(433) 评论(0) 推荐(0) 编辑

emacs小技巧(持更

摘要: 1. 调整字体大小快捷键 放大: Ctrl-x Ctrl-+ 或 Ctrl-x Ctrl-=缩小: Ctrl-x Ctrl- -重置: Ctrl-x Ctrl-0 阅读全文
posted @ 2021-09-03 21:02 toong 阅读(66) 评论(0) 推荐(0) 编辑

nginx quic实验

摘要: 扫盲文档: https://http3-explained.haxx.se/zh 最终用 quiche+nginx-1.16 和 quiche+curl 完成了实验环境的搭建。 wireshark升级到3.4.7之后也能够进行quic、http3的识别和tls的解密了。 杂七杂八的记录 下载代码 ┬ 阅读全文
posted @ 2021-07-19 15:58 toong 阅读(894) 评论(0) 推荐(0) 编辑

[nginx] async_mode_nginx CPU 100% deadlock问题分析

摘要: 很遗憾只定位到了一个比较小的问题范围,理清了root cause, 但是没有找到复现的边界条件以及solution. Hi all, I have the quite same problem with the latest software version: async_nginx: 0.4.5 阅读全文
posted @ 2021-06-23 11:41 toong 阅读(27465) 评论(0) 推荐(0) 编辑

GDB 分屏代码窗口

摘要: 今天,按错了键,不小心打卡了gdb的代码分屏窗口,顺便记录一下. 三个方法, 任选一个: ctrl x + A gdb -tui 启动 启动后,使用layout src命令 关闭: ctrl x + A 修改窗口大小: winheight src [+|-] #lines 阅读全文
posted @ 2021-06-22 13:02 toong 阅读(1356) 评论(0) 推荐(1) 编辑

[TODO 不好用] gdb使用调用栈作为断点条件的方法

摘要: (gdb) bt #0 ngx_ssl_engine_qat_heuristic_poll (log=0x55a4ee0d3670) at modules/nginx_qat_module/ngx_ssl_engine_qat_module.c:694 #1 0x000055a4eba43791 i 阅读全文
posted @ 2021-06-21 15:24 toong 阅读(100) 评论(0) 推荐(0) 编辑

[nginx] nginx源码分析--内存管理

摘要: 1. nginx的内存,都是内存池管理,创建一个内存池就malloc一块内存出来. 2. 两个重要的地方会新建内存池, 一个新连接建立的时候, 一个是request创建的时候. 3. 在内存池里申请内存的时候,就是一块挨着一块的按顺序用. 这种叫small. 如果比内存池的size还大的,就mall 阅读全文
posted @ 2021-04-28 16:48 toong 阅读(126) 评论(0) 推荐(0) 编辑

multi-buffer crypto是什么

摘要: 框架 [https://www.cnblogs.com/hugetong/p/14682764.html] qat engine后边支持两种加速,一种硬件加速:使用QAT硬件加速卡。一种软件加速:使用multi-buffer技术分别对对称加密和非对称加密进行加速。见qatengine的首页:http 阅读全文
posted @ 2021-04-20 20:39 toong 阅读(673) 评论(0) 推荐(0) 编辑

bash里的[[与[

摘要: 你好。 你写bash的时候,喜欢这样么? if [[ "0" == "1" ]] then; echo "True" else echo "False" fi 还是这样? if [ "0" == "1" ] then; echo "True" else echo "False" fi 现在,讲一下区 阅读全文
posted @ 2021-03-26 14:48 toong 阅读(230) 评论(0) 推荐(0) 编辑

bash逐行读取变量

摘要: 如题,从变量中逐行读取的方法 该方法由于使用了管道,在循环内给变量的赋值无法传输到外部。 a=123 echo "$result" | while read line do echo $line echo "xxxxxxxxxxx" a=456 # 赋值无效 done 下面的方法功能相同,但是可以对 阅读全文
posted @ 2021-03-19 18:07 toong 阅读(136) 评论(0) 推荐(0) 编辑

[openssl] 内存泄露及越界分析方法整理

摘要: 前言 [classic_tong: https://www.cnblogs.com/hugetong/p/14386531.html] 围绕着 [openssl] openssl asynch_mode 使用libasan时的OOM问题 以及 https://github.com/intel/QAT 阅读全文
posted @ 2021-02-08 18:08 toong 阅读(1560) 评论(0) 推荐(0) 编辑

[openssl] openssl async模块框架分析

摘要: [classic_tong: https://www.cnblogs.com/hugetong/p/14379347.html] 这一部分内容的前面还有个第一部分,可以作为接下来内容的前提或者背景进行阅读:[openssl] intel qat场景下的openssl框架 引言 openssl1.1. 阅读全文
posted @ 2021-02-05 19:51 toong 阅读(3078) 评论(0) 推荐(0) 编辑

[openssl] intel qat场景下的openssl框架

摘要: 源代码 [classic_tong:https://www.cnblogs.com/hugetong/p/14363775.html] 我们使用openssl版本1.1.1的源代码进行安装与实验. 目前已经有了3.0.0的alpha版本. 源码下载在这里: https://www.openssl.o 阅读全文
posted @ 2021-02-05 18:49 toong 阅读(2810) 评论(0) 推荐(0) 编辑

[openssl] openssl与协程

摘要: [classic_tong: https://www.cnblogs.com/hugetong/p/14378526.html] Golang就用了协程,一直没有想过是怎么实现的。今天读openssl的源码,读到这个地方:https://github.com/openssl/openssl/blob 阅读全文
posted @ 2021-02-05 16:33 toong 阅读(991) 评论(0) 推荐(0) 编辑

进程coredump的elf debug信息补全方法

摘要: 背景 我的一个运行CentOS上的进程由于bug crash掉了, 并留下了coredump文件, 使用gdb查看coredump文件时, 发现crash在了一个动态库上, 但是该动态库没有debug信息, 因为不是'-g'编译的. 如下: # gdb /usr/sbin/nginx /export 阅读全文
posted @ 2021-01-06 22:07 toong 阅读(945) 评论(0) 推荐(0) 编辑

[openssl] openssl asynch_mode 使用libasan时的OOM问题

摘要: [classic_tong: https://www.cnblogs.com/hugetong/p/14231782.html] 概述 openssl支持async mode. 在定位越界问题时,我使用了libasan, 之后就OOM了, 能够看见在这个地方: 原因是因为, memset的size参 阅读全文
posted @ 2021-01-04 19:26 toong 阅读(879) 评论(0) 推荐(0) 编辑

[debug] 使用rpmbuild时gdb怎么找到debuginfo

摘要: 用rpm进行源码编译和release的时候,会生成两个包,一个正常的rpm 另一个是带debuginfo后缀的包. 正常包里的二进制会被strip出来放在debuginfo包中.用于后续的debug 详见下面的两个文档: https://gnu.wildebeest.org/blog/mjw/201 阅读全文
posted @ 2020-12-14 16:14 toong 阅读(518) 评论(0) 推荐(0) 编辑