Kernel
文章平均质量分 60
striver1205
这个作者很懒,什么都没留下…
展开
-
UDP send 出现大量“Resource temporarily unavailable”
至此,我们已经分析开头所说困惑,一个小小的“Resource temporarily unavailable”错误,背后蕴藏着太多技术细节,如果得过且过将来必成后患。工作中遇到的每个小问题,背后都蕴藏着大量知识,只有平时多积累总结,才能游刃有余解决所面对的问题。原创 2024-03-28 18:10:13 · 1399 阅读 · 0 评论 -
拆解 Linux 网络包发送过程
转载文章:https://mp.weixin.qq.com/s/rpEoQT0aVbJqiaB_2XWVmQ大家好,我是飞哥!半年前我以源码的方式描述了网络包的接收过程。之后不断有粉丝提醒我还没聊发送过程呢。好,安排!在开始今天的文章之前,我先来请大家思考几个小问题。 问1:我们在查看内核发送数据消耗的 CPU 时,是应该看 sy 还是 si ? 问2:为什么你服务器上的 /proc/softirqs 里 NET_RX 要比 NET_TX 大的多的多? 问3:发送网络数转载 2021-05-13 08:32:25 · 579 阅读 · 0 评论 -
一个历史遗留问题,引发的linux内存管理的‘血案’
最近处理一个骨灰级历史残留问题,内核模块DPI的内存数据被无故关顾,导致系统的panic的问题,linux 内核版本3.18 x86_64,由于我们要精简系统,许多调试工具已经被阉割,SLAB_DEBUG, KASAN not support, 由于这部分数据主要是查询,在初始化话不会对其进行修改,所以想到一个办法将初始化完DPI后,将使用的内存页设置为只读,通过stack的信息找到元凶。按照以上的分析总共分为以下步骤:查找 虚拟地址的PTE 设置PTE的属性为只读#include <l原创 2021-04-22 16:51:30 · 680 阅读 · 0 评论 -
linux 内存显示括号内字母的含义
当linux系统发生异常或者 echo 'm' > /proc/sysrq-trigger 我们会看到类似以下的信息,其中括号内字符代表什么含义呢?我们跟踪 sysrq-trigger,看看源码的解释DMA: 1*4kB (M) 0*8kB 1*16kB (M) 2*32kB (UM) 2*64kB (UM) 1*128kB (U) 2*256kB (UM) 2*512kB (UM) 1*1024kB (M) 1*2048kB (M) 2*4096kB (ER) = 13140kBDMA32:原创 2021-04-08 11:47:01 · 517 阅读 · 0 评论 -
CPU 乱序执行验证
受到一个问题:linux kernel 为什么加 smp_mb,怎么引起的,添加后有怎么解决的?最近遇到CPU的乱序问题,总是理论性的东西和讨论,找了个时间写了测试程序,验证CPU乱序执行的存在,理论加实践,才能理解的更加深刻/* this program test CPU out of order execute. ENV: CPU need more than two core thread gcc -Wall -O3 out_of_order原创 2021-03-24 17:47:44 · 475 阅读 · 0 评论 -
SYSCALL_DEFINE含义
CVE-2010-3301是其中一个。这个漏洞的成因是,在64位的内核上执行32位的系统调用时,作为传递系统调用号的%rax高32位未被清零处理,而且在进行比较的时候直接使用的%eax,导致高32位被忽略:cmpl $(IA32_NR_syscalls-1),%eax ja ia32_badsys ia32_do_call: IA32_ARG_FIXUP call *ia32_sys_转载 2014-01-14 09:55:37 · 789 阅读 · 0 评论 -
linux下的系统调用函数到内核函数的追踪
Original from: http://blog.chinaunix.net/uid-28458801-id-3468966.html使用的 glibc : glibc-2.17使用的 linux kernel :linux-3.2.07系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数)。用户程序通过系统调用从用户态(user mod转载 2014-01-13 11:03:20 · 941 阅读 · 0 评论