随笔分类 - kernel 编程
摘要:目前问题为:内核出现coredump 需要分析coredump, 根据堆栈分析为内核唤醒内核进程/线程的时候,在内核太发生缺页中断触发panic 目前可以参考以前的以下文章:copy_from_user以及缺页中断 缺页中断分析 根据crash 我们可以拿到函数调用栈也就是栈地址,但是栈数据怎么获取
阅读全文
摘要:i40e: version magic '4.4.58-svn-46674 SMP mod_unload modversions aarch64' should be '4.4.131.kylin.server.YUN SMP mod_unload aarch64' 一校招生在insmod ko的时
阅读全文
摘要:目前遇到一个崩溃问题记录一下! 使用crash 分析结果如下: crash> sys KERNEL: vmlinux DUMPFILE: kernel_dump_file_debug [PARTIAL DUMP] CPUS: 32 DATE: Thu Jul 8 16:06:13 2021 UPTI
阅读全文
摘要:目前遇到问题如下:IPv6 http以及ping 不通主机 同一个网段! 为了找出原因:想用systemtap 但是编译对应环境的systemtap 失败,x86正常 但是 arm-linux 失败,没办法只能选择使用kprobe了 排查的问题的时候,使用tcpdump 抓包能抓到包, 然后就通了!
阅读全文
摘要:Message passing to invoke behavior in a program is a widely used technique in soft‐ware engineering. A program can modify another program’s behavior b
阅读全文
摘要:先看看之前的sockmap sockmap_ebpf sock_map2 ipvs-ebpf EBPF:本质上它是一种内核代码注入的技术 内核中实现了一个cBPF/eBPF虚拟机 用户态可以用C来写运行的代码,再通过一个Clang&LLVM的编译器将C代码编译成BPF目标码 用户态通过系统调用bpf
阅读全文
摘要:目前使用到的bcc程序主要包括两个部分,一部分是python语言,一部分是c语言。python部分主要做的工作是BPF程序的加载和操作BPF程序的map,并进行数据处理。c部分会被llvm编译器编译为BPF字节码,经过BPF验证器验证安全后,加载到内核中执行。python和c中出现的陌生函数可以查下
阅读全文
摘要:之前在csdn记录过缺页中断的相关逻辑!貌似现在也找不回了!!所以转载一下网上一些文章方便自己回忆! 实际上深入理解linux 内核这本书里面有讲解这一章 缺页异常在linux内核处理中占有非常重要的位置,很多linux特性,如写时复制,页框延迟分配,内存回收中的磁盘和内存交换,都需要借助缺页异常来
阅读全文
摘要:看到之前在csdn 上写的摄像头驱动总结,首先得感谢摄像头驱动这个东西 让我在读书时挣到了一笔生活费!! 现在把文章简要拷贝过来,以及去掉之前的代码然后随便扯一下文件的map吧 驱动核心: 将摄像头驱动中的yuv数据map到用户空间,便于访问。read 性能不够!! 原理是:通过mmap将内核太bu
阅读全文
摘要:http://blog.chinaunix.net/uid-28541347-id-5820032.html https://blog.csdn.net/Rong_Toa/article/details/114180927 从linux设备驱动模型看virtio初始化 我们看linux kernel
阅读全文
摘要:在多核编程中一直会存在一个问题: 多核cpu 抢占一个资源?? 为什么会出现这样的情况呢?说白了就是资源是共享的!! 所以在多核编程设计过程中 一般都是少用global全局变量多用局部local 变量 或者说需要考虑cache 的一致性 自旋锁,不休眠,无进程上下文切换开销,可以用在中断上下文和临界
阅读全文
摘要:目前遇到一个问题:盒子设备满配置接口的时候, 部分网卡不能up: 调试log: dmesg发现有如下信息: [ 116.699174] pci_enable_msix req rc:-1 [ 116.699175] i40e 0000:12:00.0: MSI-X vector reservatio
阅读全文
摘要:今天处理bug的时候遇到一个问题如下:网卡收包时 DMA突然失效了, 地址有问题,看代码发现也没有什么问题, 由于是最新的10g网口驱动,不知道是不是有bug还是啥的,就和正常的igb驱动对比了一下大概思路;突然发现10g网卡驱动有个位置没有同步导致指针异常;解决办法就是加入:smp_mb;所以现在
阅读全文
摘要:今天遇到一个问题:对 10g 光口 执行“ifconfig ethx down” 时 发现内核接口down了;ethtool ethx 时 发现 link detect 为 no;但是其协商速率为10000Mb/s; 同时查看盒子面板,发现link 指示灯是亮的。 问题就是:“down 端口结果 端
阅读全文
摘要:关于守护进程dup stderr问题; fd = open("/dev/null", O_RDWR); if (dup2(fd, STDIN_FILENO) == -1) if (dup2(fd, STDOUT_FILENO) == -1) #if xxx if (dup2(fd, STDERR_F
阅读全文
摘要:参考书籍:https://files.cnblogs.com/files/codestack/OReilly-Linux-Observability-with-BPF-2019.rar XDP总体设计包括以下几个部分: XDP驱动钩子:网卡驱动中XDP程序的一个hook,XDP程序可以对数据包进行逐
阅读全文
摘要:https://lwn.net/Articles/740157/ http://arthurchiao.art/blog/ebpf-and-k8s-zh/ https://elixir.bootlin.com/linux/v4.15/source/tools/bpf/bpftool/Document
阅读全文
摘要:可以看到 段错误导致 内核崩溃, 同时通过NULL point 指针 取成员变量其 偏移地址为0x14 也即是20 使用 add2line -e vmllinx 0xffffffff814ff388 可以看看到出现问题时 代码在哪一行 对比代码 确认为 某个指针变量为空导致 https://sour
阅读全文
摘要:处理一个低版本内核中断向量表不够问题:__assign_irq_vector 关联irq 和 vector失败问题; (bug还没解决先记录一下吧) 同时先学习一下MSI-X:MSI, message signal interrupt, 是PCI设备通过写一个特定消息到特定地址,从而触发一个CPU中
阅读全文
摘要:This is how to use SOCKMAP: SOCKMAP or specifically "BPF_MAP_TYPE_SOCKMAP", is a type of an eBPF map. This map is an "array" - indices are integers. A
阅读全文