
kernel
文章平均质量分 91
小妞的大熊
这个作者很懒,什么都没留下…
展开
-
Cgroup blkio简介和测试(使用fio测试)
因需要对docker镜像内的进程对磁盘读写的速度进行限制,研究了下Cgroup blkio,并使用fio对其iops/bps限速进行测试。Cgroup blkio简介Linux Cgroup(Control Groups)是Linux内核提供的用于限制、记录、隔离进程组可以使用的资源(cpu、memory、IO等)的一种机制。在/boot下面的对应config文件里查看Cgroup内核选项:CONFIG_BLK_CGROUP=yCONFIG_BLK_DEV_THROTTLING=yb转载 2020-10-22 17:39:39 · 1519 阅读 · 0 评论 -
优化启动时间
来自source.android.googlehttps://source.android.google.cn/devices/tech/perf/boot-times?hl=zh-cn本文档提供了有关改进特定 Android 设备的启动时间的合作伙伴指南。启动时间是系统性能的重要组成部分,因为用户必须等待启动完成后才能使用设备。对于较常进行冷启动的汽车等设备而言,较短的启动时间至关重要(没有人喜欢在等待几十秒后才能输入导航目的地)。Android 8.0 支持一系列组件的多项改进,因而可以缩短转载 2020-09-10 15:22:38 · 1268 阅读 · 0 评论 -
内核解析dts里面数组的方法
在内核驱动开发的时候,经常会需要在DTS里面定义数据,然后在驱动里面去解析获取相应的默认配置参数数据,这里记录一下如何在驱动代码里面去解析DTS里面的二维数据的方法。1、DTS里面数组定义二、驱动代码里面解析...原创 2020-09-09 10:53:57 · 1086 阅读 · 0 评论 -
存储设备IO优化向导(blkio)
1、概述虽然存储设备的恨不能在近年来一直在稳步提升,从raw nand到emmc,再到UFS都在进步,但和CPU相比它们依然是一个低俗的外设,并且IO是不可抢占的,所以应用程序在交互中等待IO会带来非常糟糕的用户体验,大部分程序员都意识到了这一点,所以绝大多数的程序尽量都会想办法改善这个问题,例如预读(readahead)和异步IO等。但是有些场景是很难规避IO的影响的。比如启动应用和本地音视频播放。如果在这两个场景中,还有其它的程序来竞争IO,那对用户体验来说可能无法接受。2、现有的优化设想有原创 2020-08-21 16:51:20 · 767 阅读 · 0 评论 -
Binder Driver缺陷导致定屏问题分析
Binder Driver缺陷导致定屏问题分析引用一、背景知识点1.1 工具简介1.2 Binder简介二、初步分析2.1 问题描述2.2 初步分析三、ramdump分析3.1 结构体binder_thread3.2 binder_transaction结构体3.3 特殊的29163.4 binder_write_read结构体3.5 mOut && mIn3.6 疑难悬案四、真相大白4.1 案件侦破4.2 案卷解读4.3 总结引用本文讲解异步binder call是如何阻塞整个系统的,转载 2020-08-13 21:26:45 · 632 阅读 · 0 评论 -
kernel oops (Unable to handle kernel paging request at virtual address )三种内存访问异常
一、linux内核、用户空间的内存划分:如下图:32位系统内核空间划分0~3G为用户空间,3~4G为内核空间。详细请参考《Linux用户空间与内核空间》注意:内核地址空间的范围是0xC0000000 ~ 0xFFFFFFFF而对于64位系统,内核空间划分如下:ARM64架构处理器采用48位物理寻址机制,最大可以寻找到256TB的物理地址空间。对于目前的应用来说已经足够了,不需要扩展到64位的物理地址寻址。虚拟地址也同样最大支持48位支持,所以在处理器的架构设计上,把虚拟地址空间...转载 2020-07-27 10:28:17 · 18623 阅读 · 0 评论 -
android系统中区分UDisk和SDCard
因项目要求,需要将UDisk和SDCard挂载的名称区分开来,系统默认是将这些可移动存储设备的UUID作为其挂载的目录名称的,如下所示:818D-1319这些都是相应的移动存储器的UUID,这个目录名称在上层APP使用时让人会觉得很抓疯,所以这里通过本文的方法来修改这个挂载目录名。打开system/vold/PublicVolume.cpp这个文件,在doMount这个函数里有如下一段...原创 2019-02-22 18:25:45 · 2225 阅读 · 2 评论 -
Linux内核中断引入用户空间(异步通知机制)
当linux内核空间发生中断后怎么使用户空间的应用程序运行相应的函数呢,当芯片有数据到来时内核会产生一个中断,但是怎样通知应用程序来取数据,以前这个问题一直困扰我很长时间,后来发现linux中有异步通知机制,在用户程序中用signal注册一个响应SIGIO信号的回调函数,然后在驱动程序中向该进程发出SIGIO信号便完成该功能,下面是该功能具体实施方法:1.在驱动中定义一个static stru...转载 2018-12-12 15:50:06 · 515 阅读 · 0 评论 -
linux 中断机制的处理过程
一、中断的概念中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断)和内部中断(又叫异常)。在实地址模式中,CPU把内存中从0开始的1KB空间作为一个中断向量表。表中的每一项占4个字节。但是在保转载 2014-07-02 12:44:06 · 728 阅读 · 0 评论 -
中断处理的tasklet(小任务)机制和workqueue(工作队列)机制
一、中断处理的tasklet(小任务)机制中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失。因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。例如,假设一个数据块已经达到了网线,当中断控制器接受到这个中断转载 2014-07-02 11:51:19 · 815 阅读 · 0 评论 -
android电池管理系统
1、概述随着移动智能设备的快速发屏,电池的续航能力在很大情况下诱导了大众消费者的购买选择,android系统对电源管理的合理与否直接影响到电池的续航能力,而电池系统作为其中的一部分,主要用于对电池状态的监控(电池电量、电池状态及电池温度等)。下面将详细分析android的电池系统架构。2、Android电池系统架构Android系统中对电池的管理驱动层继承了linux下的power s原创 2014-08-15 10:43:57 · 5123 阅读 · 0 评论 -
VGA时序
VGA TimingsThe following table lists timing values for several popular resolutions.FormatPixel Clock(MHz)Horizontal (in Pixels)Vertical (in Lines)ActiveVideoFrontPorchS转载 2013-06-04 17:47:47 · 6131 阅读 · 1 评论 -
调整内核驱动加载的顺序
在做TI的方案开发的时候,一直就不是很满意它的系统启动时间,不光是从xload进入到uboot,uboot运行及加载内核,这几项所耗的时间就大概有10s之久。当内核起来之后,各项外设驱动的加载及初始化所耗的时间也是相当惊人的,从内核加载成功到LCD亮起来显示内核logo(小企鹅),这个时间也大概有5s之久,真的是要受不了了!!看了一下系统启动的log,发现内核加载成功之后到LCD显示l原创 2013-03-25 16:44:30 · 2959 阅读 · 0 评论