宋宝华的blog

Linux Consultant

排序:
默认
按更新时间
按访问量

宋宝华:swappiness=0究竟意味着什么?

本文解释swappiness的作用,以及swappiness=0究竟意味着什么。内存回收我们都知道,Linux一个进程使用的内存分为2种:file-backed pages(有文件背景的页面,比如代码段、比如read/write方法读写的文件、比如mmap读写的文件;他们有对应的硬盘文件,因此如果...

2018-01-30 19:20:16

阅读数:1388

评论数:0

宋宝华:关于Ftrace的一个完整案例

Ftrace简介Ftrace是Linux进行代码级实践分析最有效的工具之一,比如我们进行一个系统调用,出来的时间过长,我们想知道时间花哪里去了,利用Ftrace就可以追踪到一级级的时间分布。Ftrace案例写一个proc模块,包含一个proc的读和写的入口。test_proc_show()故意调用...

2018-01-24 23:49:39

阅读数:4294

评论数:0

宋宝华:关于DMA ZONE和dma_alloc_coherent若干误解的澄清

本文已首先在Linuxer公众号(ID: LinuxDev)发表,先转回我的blog也发表。转载请注明出处。1.DMA ZONE的大小是16MB?这个答案在32位X86计算机的条件下是成立的,但是在其他的绝大多数情况下都不成立。首先我们要理解DMA ZONE产生的历史原因是什么。DMA可以直接在内...

2018-01-22 21:23:49

阅读数:2042

评论数:1

宋宝华:火焰图:全局视野的Linux性能剖析

火焰图(Flame Graph)是由Linux性能优化大师Brendan Gregg发明的,本文用最简单的实例讲解什么是火焰图,怎么画出来火焰图,火焰图的优点是什么。本文首发于Linuxer微信公众号,转发回blog。

2017-11-14 10:43:49

阅读数:12351

评论数:1

Linux的任督二脉:进程调度和内存管理

比如进程的调度延时是多少?Linux能否硬实时?多核下多线程如何执行?系统的内存究竟耗到哪里去了?我写的应用程序究竟耗了多少内存?什么是内存泄漏,如何判定内存是否真的泄漏?CPU速度、内存大小和系统性能的关联究竟是什么?内存和I/O存在着怎样的千丝万缕的联系?

2017-08-23 14:45:09

阅读数:33492

评论数:20

《总线设备驱动模型》《深入探究Linux的设备树》讲座ppt分享和录播地址发布

本课程的录播视频已经放在了(已经报名直播的看录播无需重新报名): http://edu.csdn.net/course/detail/5627 《Linux总线、设备、驱动模型》的录播视频放在了(已经报名直播的看录播无需重新报名): http://edu.csdn.net/course/detai...

2017-08-18 17:03:01

阅读数:5847

评论数:3

在ARM Linux内核中增加一个新的系统调用

实验平台内核版本为4.0-rc1,增加的系统调用仅仅是简单打印一个Hello World,最后我们在用户空间用swi验证。

2016-05-02 12:55:45

阅读数:8629

评论数:1

Network write system call latency

Linux ftrace案例

2016-01-17 17:41:19

阅读数:4976

评论数:0

Linux电源管理系统架构和驱动(1)-Linux电源管理全局架构

1.   Linux电源管理全局架构Linux电源管理非常复杂,牵扯到系统级的待机、频率电压变换、系统空闲时的处理以及每个设备驱动对于系统待机的支持和每个设备的运行时电源管理,可以说和系统中的每个设备驱动都息息相关。对于消费电子产品来说,电源管理相当重要。因此,这部分工作往往在开发周期中占据相当大...

2015-02-21 12:21:12

阅读数:12553

评论数:1

Linux芯片级移植与底层驱动(基于3.7.4内核)

宋宝华 BarrySong 21cnbao@gmail.com> 新浪微博: @宋宝华Barry   1.   SoC Linux底层驱动的组成和现状 为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍、中断控制器、SMP启动、CPU hotplu...

2013-01-26 18:40:18

阅读数:47218

评论数:4

ARM Linux 3.x的设备树(Device Tree)

宋宝华 Barry Song 1.    ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地...

2013-01-01 17:32:36

阅读数:221703

评论数:54

Linux RT(2)-硬实时Linux(RT-Preempt Patch)的中断线程化

底半部:线程化IRQ 线程化中断的支持在2009年已经进入Linux官方内核,详见Thomas Gleixner的patch: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3aa5

2012-10-19 17:00:11

阅读数:9955

评论数:5

Linux RT(1)-硬实时Linux(RT-Preempt Patch)在PC上的编译、使用和测试

特别声明:本系列文章LiAnLab.org著作权所有,转载请注明出处。by  @宋宝华Barry  Vanilla kernel的问题 Linux kernel在spinlock、irq上下文方面无法抢占,因此高优先级任务被唤醒到得以执行的时间并不能完全确定。同时,Linux kern...

2012-10-03 19:02:40

阅读数:19385

评论数:2

Essential Linux Device Driver附录A . Linux汇编

By 宋宝华 / 本系列文章交流与讨论:@宋宝华Barry 设备驱动程序有时需要用汇编实现一些代码片断,因此让我们看看Linux上汇编编程的不同特性。 图A.1显示了Linux在PC兼容系统上的引导顺序,是第2章“内核一瞥”中图2.1的缩减版。图中的固件组件是用不同的汇编语法实现的: ·...

2012-09-17 22:44:29

阅读数:3976

评论数:0

让busybox里的free命令可以显示page cache

busybox的free命令不能显示page cache,导致于其功能大打折扣,因为page cache大小很大,在用户申请内存时可以回收,打上如下补丁后,busybox的free命令变得完整: commit 2219fd301a7f319258ad4be9217cd0d6db9240d4 Au...

2012-03-26 21:05:14

阅读数:5776

评论数:0

Linux gdb调试器用法全面解析

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。 当程序被停住时,可以检查此时程序中所发生的事,并追索上文...

2012-03-22 22:18:58

阅读数:69272

评论数:6

Linux内核最新的连续内存分配器(CMA)——避免预留大块内存

by 宋宝华 在我们使用ARM等嵌入式Linux系统的时候,一个头疼的问题是GPU,Camera,HDMI等都需要预留大量连续内存,这部分内存平时不用,但是一般的做法又必须先预留着。目前,Marek Szyprowski和Michal Nazarewicz实现了一套全新的Contiguous M...

2012-03-01 16:17:59

阅读数:31754

评论数:5

OMAP4 pandaboard上CPU hotplug进程迁移与负载均衡测试

尝试把pandaboard images升级为 11.12 Linaro release,SMP热插拔测试了一下。第一组测试评估在高负载情况下热插拔CPU进程迁移的情况,希望是拔出和插入CPU1后,各进程仍然活跃,测试case如下: int main(int argc, char *argv...

2012-02-09 13:32:13

阅读数:4089

评论数:0

tegra3 CPU auto hotplug和Big/little switch工作的基本原理

by 宋宝华 在《Tegra3 vSMP架构Android运行时CPU热插拔及高低功耗CPU切换》一文中我们通过运行华硕平板电脑看出来tegra3的dvfs结合了CPU热插拔和G/LP core cluster之间的切换,本文从代码角度分析其运行机理。 tegra3是典型的BIG/LITT...

2012-01-31 14:26:03

阅读数:6232

评论数:2

使用cpufreq-bench评估cpufreq策略对系统性能的影响

Linux 3.1已经将cpupower-utils中放入内核的tools目录,见: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=tools/power;h=f6a98ba17528ed764...

2012-01-29 19:44:09

阅读数:5589

评论数:0

提示
确定要删除当前文章?
取消 删除