Linu内核
文章平均质量分 52
写到天黑的小白
这个作者很懒,什么都没留下…
展开
-
ftrace分析程序的调用栈
文章目录ftrace能干什么ftrace怎么用配置文件说明ftrace怎么实现的ftrace能干什么能够对内核函数以及用户态函数进行trace。获取函数的调用栈以及函数的性能。ftrace怎么用ftrace依赖于内核中的debugfs,debugfs是将内核态和用户态联通的手段。/sys/kernel/debug/tracing是总的入口。配置文件说明available_trace...原创 2019-12-27 08:01:31 · 857 阅读 · 0 评论 -
Cache line
文章目录获取cache的配置获取cache的配置cat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size原创 2019-10-17 15:22:56 · 179 阅读 · 0 评论 -
最近知识点
最近看到几个不常见的编程技巧: linux下的线程局部存储:http://blog.sina.com.cn/s/blog_5ea88c70010193is.html互斥无锁队列:https://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures2/index.html同时要关注下内核中kfifo数据结构...原创 2018-03-27 15:41:10 · 139 阅读 · 0 评论 -
linux中通过proc获取进程名以及PID
背景 给定某个线程的线程号tid,获取对应的进程名解决 刚开始以为有难度,需要遍历整个proc/***以及/proc/***/task/***;因为拿到的是tid而非pid,该tid是由某个pid通过pthread_create或fork、clone出来的,只有找到对应的pid,才能从/proc/***/status下获取进程名;但是linux下,tid和pid就是一个东西,内核中是完全...原创 2018-04-04 20:16:01 · 5297 阅读 · 0 评论 -
disk-io
http://linuxperf.com/?p=161 1 目录 1. BLOCK相关 1 1.1 对标vtune针对Disk I/O采样的事件 2 1.2 相关采样事件解释 2 1.2.1 block_bio_queue 2 1.2.2 block_rq_insert 4 2 采样试验 6 2.1 I/O时间采样 6 2.1.1 I/O的时间...原创 2018-04-19 18:41:09 · 1302 阅读 · 0 评论 -
kernel中通过地址获取函数名以及偏移量
sprint_symbol:通过函数地址获取函数名字的APIkallsyms_lookup:sprint_symbol底层使用的接口即为该函数获取内核中调用栈:walk_stack_frame参考https://blog.csdn.net/tiantao2012/article/details/78557581...原创 2018-04-25 09:31:48 · 2230 阅读 · 0 评论 -
Linux进程调度
进程调度时机1. 进程主动调用nanosleep(sleep),pause,read,write等系统调用时,有可能会主动让出CPU时,会引起系统的进程调度;2. 时钟中断服务,当从系统空间返回用户空间时,系统有可能会发生调度;...原创 2019-08-21 09:38:43 · 178 阅读 · 0 评论 -
linux内核内存管理
页式管理1. 每个进程都有自己的页面目录,都是虚拟地址,便于MMU将虚拟地址转换为物理地址;2. task_struct->mm_struct->pgd3. struct page用来表示一个物理页面,在内核中有一个page的数组,用来表示当前系统中所有的物理页面4. 页面目录 -> 页面表 -> 物理页面起始地址 Tips1. 不管什么进程,一旦进入系统空间...原创 2019-08-26 19:00:09 · 152 阅读 · 0 评论 -
linux进程管理
先抛一个老生常谈的问题出来:什么情况下会产生僵尸进程 -> 如何将僵尸进程干掉?这篇博客的由来关于进程的知识看了很多,感觉还是皮毛,当遇到问题的时候,还是不能够运用已有的知识去解决。遇到的问题就是:如何干掉僵尸进程,为什么能干掉?...原创 2019-10-08 10:38:13 · 85 阅读 · 0 评论 -
Linux信号唤醒机制
文章目录背景背景老规矩,还是先抛出问题:linux中当N个线程都在wait同一个信号到来,当某一个线程此时post一个该信号(只能唤醒一个线程),那么这N个线程中哪个线程会被首先唤醒呢?...原创 2019-10-10 23:13:01 · 517 阅读 · 0 评论 -
linux 编程实现异步机制-信号
基本概念 异步,相对于同步。简单来说,就是不需要等直到达到某一种状态,才能够继续往下执行;而是当该种状态达到时,会被自动通知,然后进行处理。不需要等意味着可以进行其他的工作,提供CPU的利用率或者是程序的性能。技术 引用:http://kernel.meizu.com/linux-signal.html;http://kernel.meizu.com/linux-interrupt.htm...原创 2018-04-09 14:46:53 · 795 阅读 · 0 评论 -
linux module 传入参数
1.module中定义参数变量 eg: static int leap;//变量名称 module_param(leap, int, 0644);//读写权限 MODULE_PARM_DESC(leap, “int param!\n”);//注释信息static char *name = “default”; module_param(name, charp, 0644);//注意第...原创 2018-03-02 11:12:56 · 639 阅读 · 0 评论 -
linux workqueue 工作队列
[http://www.cnblogs.com/wwang/archive/2010/10/27/1862202.html转载 2018-03-02 10:27:42 · 197 阅读 · 0 评论 -
Linux内核之进程管理
关键知识点进程相关结构体task_struct和thread_info与进程有关的系统调用内核调度进程总体思想进程调度算法CFS————————–未完待续————————0x00 与进程相关的数据结构task_struct http://lxr.linux.no/linux+v4.9/include/linux/sched.hthread_info http://lxr.li原创 2016-12-27 00:00:57 · 245 阅读 · 0 评论 -
获取cpu信息以及型号
背景: 项目需要完美支撑arm/x86两种架构,并且完美兼容linux/windows。 1)项目实现均采用解释型语言,因此一套代码可以完美兼容windows/linux; 2)由于server和pc的不同环境导致的业务场景也不一样 因此要解决以下问题: 1)通用方式识别操作系统类型 2)识别cpu型号以判原创 2018-02-02 10:42:48 · 1924 阅读 · 0 评论 -
kenel里解决kabi的问题
From b513c435b417e960833bd4d885174b2e847f5319 Mon Sep 17 00:00:00 2001Date: Mon, 11 Sep 2017 12:42:28 +0000Subject: [PATCH 24/25] fix kabi broken by "struct scsi_disk and struct queue_limits and en原创 2018-02-02 10:49:40 · 2739 阅读 · 0 评论 -
container_of
关于Linux内核中container_of的思考关于container_of中的实现原理这里不做任何的介绍说明,网上一搜一堆,这里只做一定的总结: 1)typeof,说白了能够将一个字符串翻译为一种类型类型进而定义该种类型的变量; 2)结构体中的成员变量相对于首地址的偏移是一定的,即首地址=0,成员变量的地址即为偏移 3)根据2)即可,若已知成员变量地址,即可获得结构体首地址以前对原创 2017-09-04 22:02:44 · 214 阅读 · 0 评论 -
记录
on_each_cpu/* * Call a function on all processors. May be used during early boot while * early_boot_irqs_disabled is set. Use local_irq_save/restore() instead * of local_irq_disable/enable().原创 2018-02-03 17:14:58 · 128 阅读 · 0 评论 -
perf-network
Note:使用的采样函数如上图中标出,红色部分为暂定采样数据点。目前只针对于TCP和UDP协议。 统计发送的TCP数据长度(以进程为单位) 采样点 tcp_sendmsg:81 seglen->发送数据包的长度(注意是十六进制) 采样命令 perf probe –a ‘tcp_sendmsg:81 seglen’ perf record –e probe:tcp_sendmsg...原创 2018-02-06 14:23:59 · 455 阅读 · 0 评论 -
linux中内存管理
struct mm_struct–进程内存描述符 描述进程的整个内存空间vm_area_structsstruct sysinfo–获取系统相关信息原创 2018-03-01 11:50:07 · 116 阅读 · 0 评论 -
linux内核 网络子系统
1.struct rtnl_link_stats64/获得网卡的状态,比如收到的数据包个数,错误个数吗,丢包个数等//* The main device statistics structure */struct rtnl_link_stats64 { **__u64 rx_packets; /* total packets received */ __u64...原创 2018-03-02 09:48:51 · 1560 阅读 · 0 评论 -
Linux内核中的奇技淫巧
Linux内核的奇技淫巧长度为0的数组do{…}while(0);内联函数内联汇编未完待续原创 2016-12-26 22:31:27 · 591 阅读 · 0 评论