- 博客(15)
- 资源 (2)
- 收藏
- 关注
转载 页分配流程
页分配流程:供学习参考转自http://www.cnblogs.com/tolimit/遍历zonelist,从zonelist中获取一个zone 检查zone如果分配后,空闲页框是否会低于allow_low 对此zone回收一些文件映射页和slab使用的页 再次检查zone如果分配后,空闲页框是否会低于allow_low 尝试从此zone分配页框(1个页优先从每CPU高速缓存分配,连续页框优先从需要的类型(migratetype)分配,如果不行再从其他migratetype分配) f..
2021-01-19 17:03:41
268
原创 Linux中断处理流程
下图为Linux中断系统相关数据结构的关系图, irq_desc是一个全局数组,每个中断源对应一个descriptor,其成员handle_irq为每个中断setup时设置的五个函数指针中的一个,handle_level_irq为处理电平信号触发的中断源类型,handle_egde_irq为处理边沿信号触发的中断源类型
2014-03-08 23:26:50
2388
原创 linux irq balance and RT linux(中断线程化)
前段时间一个交换机项目遇到了所有网卡中断都跑在一个核上,造成负载不均衡的问题,解决思路如下:1. 首先查看一下irqbalance service是否正常运行,自动平衡irq负载的service2. 可以用下面命令绑定不同irq到不同的cpu上,smp_affinity为cpu的位掩码,3(0x11)代表0号和1号cpu# service irqbalance stop
2014-03-08 12:54:17
2574
原创 Linux scheduler(cfs) introduction
要给公司做个cfs培训(偏重于load balance),整了个ppt,图片都是从网上搜的,原作者不详,在此深表歉意。2幻灯片3The Outlinel Basic concepts about Linux process & threadl Basic concepts about SMPl Completely Fair Schedule(CFS)l How to
2014-02-25 22:38:46
2318
原创 Linux内核页表初始化
Linux在内核启动过程中start_kernel->setup_arch会调用如下两个函数对页表进行初始化和建立。static inline void prepare_page_table(void){ unsigned long addr; /* * Clear out all the mappings below the kernel image.
2014-02-23 17:04:31
2233
原创 Linux内存分配alloc_page和__get_free_page详注(伙伴管理系统Buddy)
alloc_page和__get_free_page
2014-02-23 00:10:00
5309
原创 Linux NUMA memory policy(内存分配策略)
参考内核文档:Document/vm/numa_memory_policymemory policy是决定在NUMA系统上从哪个节点分配内存的策略,它是一类提供给能更好利用NUMA系统进行内存分配的应用程序使用的编程接口,请不要将它和cpusets混淆,后者是一种限定哪些process可以从该节点进行内存分配的管理机制,当一个task同时存在两种机制时,cpuset优先。L
2014-02-22 17:59:36
11511
原创 Linux Kernel启动中参数的处理
bootloader:mem taglistmeminfo:bank(node)Bootmembuddyslab暂时占位,详细待述。
2014-02-20 22:23:38
1160
原创 Linux物理内存描述三个层级
Linux物理内存描述三个层级的struct:pglist_data//描述内存节点zone//描述节点内的分区,有normal、DMA、highmempage//描述4k页暂时占位,详细待述。
2014-02-20 22:19:49
1163
原创 Android快速启动方案设计原理(hibernation/HyperBoot)
上回书说到用户空间使用命令“echo disk /sys/power/state”,最终调用到kernel/power/main.c中的hibernate()函数启动hibernation流程。pm_prepare_console();//给suspend分配一个虚拟终端来输出信息pm_notifier_call_chain(PM_HIBERNATION_PREPARE);//通过noti
2014-02-20 21:37:32
3694
原创 Android suspend底层流程解析
刚做的一个项目,在Android上实现快速启动,先将原理叙述如下,当用户长按电源键,选择“下次开机快速启动”后,系统启动hibernate to disk的流程:1. Power manager使用命令"echo disk > /sys/power/state"启动kernel suspend流程。其实Android进入省电模式(按键背景灯、屏幕关闭等)也是通过这种方式启动的,命令是"echo
2014-02-20 20:05:30
2827
原创 Android Camera框架分析
(该图转自他人,源作者不详)该图很清晰的说明了Camera启动时从上到下的调用过程。ICameraClient/ICameraSerice/ICamera是接口类,其功能真正实现是在继承了BnCamera*的Camera*中,而BpCamera*对象是在远程端用Binder来和Camera*对象通信的。第四步比较复杂,解释如下:init.rc脚本会加载mediaserver,m
2012-12-10 17:51:54
1067
原创 Linux Multi-Core boot up and Hotplug
前段时间support华为K3平台,看了下Multi-Core Hotplug的相关内容,整理一下linux多核的启动和hotplug流程,华为的代码我是拿不出来的,什么GPL之类的貌似对中国,甚或是亚洲的企业都不具约束力了^_^还是以omap为例吧,其实包括TI的msm和Nvidia的Tegra做法都类似。BP——bootstrap processor主核,AP——application pro
2012-11-08 11:00:13
1582
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人