【 Linux 内存分析工具——free命令】教程文章相关的互联网学习教程文章

Linux驱动学习--HDMI开发(二)HDMI驱动源码分析(RK平台)【代码】【图】

目录 一、引言 二、驱动框架 ------> dts节点 ------> HDMI DDC 驱动 ------> HDMI HDCP驱动 ------> HDMI CEC驱动 ------> HDMI 主设备驱动 一、引言 前一篇文章简单介绍了一下HDMI的整体结构,从硬件到协议,可以看到,确实包含了很多东西,这篇文章,就从驱动源码的角度,来分析一下HDMI 二、驱动框架 整体框架分析 先来回顾一下几个名词 HDCP: HDCP的全称是High-bandwidthDigital Content Protection,也就是“高带宽数字内容保...

性能分析Linux服务器CPU利用率【图】

1. 指标范围 1.1 User mode CPU utilization+ System mode CPU utilization 合理值:60-85%,如果在一个多用户系统中us+sy时间超过85%,则进程可能要花时间在运行队列中等待,响应时间和业务吞吐量会受损害;us过大,说明有用户进程占用很多cpu时间,需要进一步的分析其它软硬件因素;sy过大,说明系统管理方面花了很多时间,说明该系统中某个子系统产生了瓶颈,需要进一步分析其它软硬件因素。 1.2 Wa(wait) 参考值:小于25%,...

linux内核获取当前进程路径分析【代码】【图】

一个简单的问题,linux下获取当前进程。我们都知道在内核中获取当前进程可以利用current宏 #define get_current() (current_thread_info()->task) #define current get_current() 通过get_current发现其是利用当前线程获取的当前进程线程结构thread_info结构中有指向其所属的进程指针task static inline struct thread_info *current_thread_info(void) {struct thread_info *ti;__asm__("move.l %%sp, %0 \n\t""and.l ...

linux伙伴系统接口alloc_page分析【代码】

在内核中分配内存,最后要通过伙伴系统接口进行实际物理页面的分配,一个重要的接口便是alloc_page.本文介绍下alloc_page的主要流程,各个部分的执行。主要包含正常分配流程,当页面不足的时候的处理方式。先定位到核心调用 #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) order是分配页面的阶,即2的指数个页面 #define alloc_pages(gfp_mask, order) \alloc_pages_node(numa_node_id(), gfp_mask, order) nid指定了从哪...

【linux内核分析与应用-陈莉君】系统调用机制【代码】【图】

1.系统调用 系统调用是内核的出口,说的是操作系统提供给用户程序调用的一组特殊接口,从逻辑上来说, 系统调用可以被看做是内核与用户空间交互的接口,好比一个中间人,将用户的请求传达给内核, 当内核处理完了以后再将处理的结果返回给用户,下图是open系统调用与内核交互的一个过程.2.跟踪进程所调用的系统调用strace可以看所有的程序的系统调用,不同子系统的系统调用可以用不同的命令查看. 3.中断异常和系统调用的比较

【Linux内核分析与应用-陈莉君】进程的调度【代码】【图】

1.基本调度模型进程的调度实际上就是从就绪队列中选择一个进程投入CPU运行,从图中可以看出: 调度的主战场就是就绪队列, 核心就是调度算法, 实质性的动作是进程的切换, 对于以时间片调度为主的调度,时钟中断就是驱动力,确保每个进程在CPU上运行一定的时间, 在调度的过程中用户还可以通过系统调用NICE来调整优先级,比如降低自己的优先级等. 当然也涉及进程状态的转换,新创建的进程就加入到就绪队列中,退出的进程就从队列中删除.

Linux select/poll机制原理分析【代码】【图】

转自 linux内核之旅 以下文章来源于LoyenWang ,作者LoyenWang 前言Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 1. 概述 Linux系统在访问设备的时候,存在以下几种IO模型:Blocking IO Model,阻塞IO模型; Nonblocking I/O Model,非阻塞IO模型; I/O Multiplexing Model,IO多路复用模型; Signal Driven I/O Model,信号驱动IO模型; Asynchronous I/O Model,异步IO模型...

linux在arm上启动过程分析【代码】【图】

linux在arm上启动过程分析 启动过程u-bootlinux kernel的启动*内容主要来源于阅读linux-4.4.1/Documentation/arm中和链接: Boot Sequence。启动过程 从大的方面来讲主要包含四个步骤: Boot sequence (in order) Boot ROMX-loaderU-bootLinux 不去细说其中的细节,主要找找u-boot和linux内核在源代码中的具体位置 u-boot u-boot,也就是bootloader,需要完成以下几个功能: Setup and initialise the RAM.Initialise one serial po...

孟冉: Linux火焰图的数据流程分析【代码】【图】

原创 孟冉 Linux阅码场 2017-11-15内容简介:本文紧接着《宋宝华:火焰图:全局视野的Linux性能剖析》一文,继续分析火焰图的数据流程和绘制原理。 作者简介:孟冉,目前就读于西安邮电大学,计算机科学与技术专业;目前研究linux系统的负载均衡技术和网络安全方面。孟冉目前在陈莉君老师的Linux 3+1实验室,并正在努力朝LEP(Linux Easy Profiling, http://www.linuxep.com)添加一键火焰图支持。火焰图简介 火焰图是将当前系统...

linux下二进制文件分析【图】

一 背景 也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可执行文件。 二 常用二进制文件静态分析命令 2.1 file基本信息查看 linux下有个最常用的通用命令,来分析任何文件的基本格式,那就是file ,来看下:可以看到基本信息,比如是什么类型文件,只是概述,还有些其...

Systrace for Linux-使用 systrace 分析 linux & android 的调度问题【代码】【图】

title: Systrace for Linux-使用 systrace 分析 linux & android 的调度问题 date: 2020-11-21 20:22 author: gatieme tags: - scheduler - linux - debug categories: - scheduler thumbnail: blogexcerpt: 笔者在日常内核性能优化的工作中, 主要涉及 终端(Android) 和 服务器(Server) 和 嵌入式 (RTOS) 等多个场景, 在终端场景下做内核开发和调度优化的时候, 经常会使用 atrace、systrace 等工具, 在惊叹于 google 的技术能力, 也...

【linux】系统调用版串口分析&源码实战【代码】

目录前言参考1. 实战分析1.1 开发步骤1.1.1 获取串口设备路径1.1.2 打开设备文件1.1.3 配置串口termios 结构体1. c_iflag 输入模式标志2. c_oflag 输出模式标志3. c_cflag 控制模式标志4. c_lflag 本地模式标志5. c_cc[NCCS] 控制字符6. c_ispeed和c_ospeed 波特率分析1.1.4 串口收发测试1.1.5 关闭设备文件附件最终串口测试源码前言目前不涉及驱动源码参考linux手册之termios 本文链接1. 实战分析 1.1 开发步骤获取串口设备路径 打...

宋宝华: 用off-cpu火焰图进行Linux性能分析【代码】【图】

原创 宋宝华 Linux阅码场 2019-12-22在《宋宝华:火焰图:全局视野的Linux性能剖析》一文中,我们主要看了on-cpu火焰图,理解了系统的CPU的走向的分析。但是,很多时候,单纯地看on-cpu的情况(什么代码在耗费CPU),并不能解决性能问题,因为有时候性能差的原因瓶颈不一定在CPU上面,而是在off-cpu的时间,比如:进程进入系统调用执行io动作,io动作的延迟 进程等待mutex锁的时间 内存被交换,swap的时间 内存不够的时候,执行直...

(好文重发)朴英敏:用crash工具分析Linux内核死锁的一次实战【图】

原创 朴英敏 Linux阅码场 2019-12-18本文简介:内核死锁问题一般是读写锁(rw_semaphore)和互斥锁(mutex)引起的,本文主要讲如何通过ramdump+crash工具来分析这类死锁问题。作者简介:朴英敏,现就职于国内一家手机研发公司,任职资深系统工程师,主要负责安卓系统方面的调试工作。0、背景知识点 ramdump是内存转存机制,我们可以在某个时刻把系统的内存转存到一个文件中,然后与符号信息(vmlinux)一起导入到trace32或crash等内存...

(好文重发)朴英敏:用crash工具分析Linux内核死锁的一次实战【图】

原创 朴英敏 Linux阅码场 2019-12-18本文简介:内核死锁问题一般是读写锁(rw_semaphore)和互斥锁(mutex)引起的,本文主要讲如何通过ramdump+crash工具来分析这类死锁问题。作者简介:朴英敏,现就职于国内一家手机研发公司,任职资深系统工程师,主要负责安卓系统方面的调试工作。0、背景知识点 ramdump是内存转存机制,我们可以在某个时刻把系统的内存转存到一个文件中,然后与符号信息(vmlinux)一起导入到trace32或crash等内存...