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

arm64_device_init

这个函数将设备树上的资源填充到平台设备里面,同时创建平台设备,smab 总线。 of_platform_populate:for_each_child_of_node(root, child) { rc = of_platform_bus_create(child, matche...

2017-11-21 23:04:10

阅读数:61

评论数:0

amba 设备,总线

基础介绍 ARM官网的介绍:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0224b/index.html 高级微控制器总线结构Advanced Microcontroller Bus Architecture(A...

2017-11-20 22:48:19

阅读数:84

评论数:0

pl011_init

static int __init pl011_init(void) { int ret; printk(KERN_INFO "Serial: AMBA PL011 UART driver\n"); ret = uart_register_driver(&...

2017-11-20 22:12:44

阅读数:119

评论数:0

early_irq_init

设置irq_default_affinity 值,可以在proc 下看到。 动态分配中断描述符实例,并将其加到radix 树中去。 树的根:irq_desc_tree在用数组来分配中断描述符的,中断描述符的数组为: struct irq_desc irq_desc[NR_IRQS] __ca...

2017-11-16 23:33:59

阅读数:76

评论数:0

Linux时间子系统的软件架构(一)

一.软件架构 但是随着技术发展,出现了下面两种新的需求: (1)嵌入式设备需要较好的电源管理策略。传统的linux会有一个周期性的时钟,即便是系统无事可做的时候也要醒来,这样导致系统不断的从低功耗(idle)状态进入高功耗的状态。这样的设计不符合电源管理的需求。 (2)多媒体的应用程序需要非...

2017-11-15 21:24:19

阅读数:146

评论数:0

linux clk驱动框架

clk common framework(ccf)子系统,用来完成对clock的统一管理. 如今,可运行Linux的主流处理器平台,都有非常复杂的clock tree,我们随便拿一个处理器的spec,查看clock相关的章节,一定会有一个非常庞大和复杂的树状图,这个图由clock相关的器件,以及...

2017-11-14 23:12:56

阅读数:104

评论数:0

内核proc文件系统简介

/proc文件系统是一个特殊的由内核创建的文件系统,她仅存在于内存之中而不在外存(硬盘、flash)上。内核用她来向用户空间进程输出消息,可以说是内核向用户空间打开的一扇窗户。 最初开发/proc文件系统是为提供一种内核及其模块向进程 (process) 发送信息的机制 (这就是pr...

2017-11-12 17:10:22

阅读数:221

评论数:0

proc_root_init

1.self_inum:是一个唯一的proc inode number. 虽然它是从proc 文件系统中分配的inode number, 但仅用在nsfs中, 它被用做nsfs的inode number, 只需要保证这个number在nsfs中唯一就可以了. 2.__xlate_proc_nam...

2017-11-12 16:56:03

阅读数:354

评论数:0

vfs_caches_init

调用层次 start_kernel() |____vfs_caches_init() |____dcache_init() |____inode_init()...

2017-11-12 12:22:35

阅读数:222

评论数:0

Linux内核中namespace之PID namespace

PID框架的设计 一个框架的设计会考虑很多因素,相信分析过Linux内核的读者来说会发现,内核的大量数据结构被哈希表和链表链接起来,最最主要的目的就是在于查找。可想而知一个好的框架,应该要考虑到检索速度,还有考虑功能的划分。那么在PID框架中,需要考虑以下几个因素.如何通过task_struct...

2017-11-12 11:42:07

阅读数:354

评论数:0

初始化中的kmem_cache 实例

1.radix_tree_node_cachep:radix_tree_init() 2.obj_cache:debug_objects_mem_init()不一定打开 3.object_cache,scan_area_cache:kmemleak_init()不一定打开 4.policy_...

2017-11-12 10:19:17

阅读数:324

评论数:0

CONFIG_BLK_DEV_INITRD

initramfs概述 initramfs与initrd类似,也是初始化好了且存在于ram中的,可以压缩也可以不压缩。但是目前initramfs只支持cpio包格式,它会被populate_rootfs->unpack_to_rootfs(&__initramfs_start, &...

2017-11-08 22:39:34

阅读数:320

评论数:0

lockdep_info

打印锁依赖的信息 可以参考:Linux 死锁检测模块 Lockdep 简介 http://kernel.meizu.com/linux-dead-lock-detect-lockdep.html 了解lockdep locking_selftest:死锁检测

2017-11-08 22:37:12

阅读数:70

评论数:0

time_init

主要是调用clocksource_of_init 函数来实现定时器初始化 这个函数在clksrc-of.c中,通过在__clksrc_of_table 中匹配of_device_id和device_node。 最终执行of_device_id 中的data指向的函数,实现timer 的初始化 ...

2017-11-03 22:18:27

阅读数:116

评论数:0

softirq_init

硬件中断需要做尽可能少的事情,多时间要求不严的事情,交给中断下半部分去做。有三种不同形式的下半部实现机制:软中断、tasklet、工作队列。 软中断 内核定义了下面的软中断类型,用户尽量不要自己去创建软中断类型 enum { HI_SOFTIRQ=0, TIMER_SO...

2017-11-03 21:35:24

阅读数:127

评论数:0

build_all_zonelists

关键函数 1.__build_all_zonelists() 2.nr_free_pagecache_pages()__build_all_zonelists(void *data): 对于UMA系统这个函数执行的子函数主要有以下几个:(CONFIG_HAVE_MEMORYLESS_NODE...

2017-10-26 22:40:32

阅读数:109

评论数:0

从物理内存角度描述内存之间的关系(bootmem_init)

1.内存条(bank):由内存插槽组成 2.节点(node):从一个cpu 访问速度相同的内存的集合,包含多个bank,使用pg_data_t 表示,称为节点描述符 3.uma:cpu 对所以内存访问的速度一致 numa:cpu 对所以内存访问的速度不一致 4.zone:节点中具有...

2017-10-25 22:35:08

阅读数:158

评论数:0

percpu_init_late

void __init percpu_init_late(void) { struct pcpu_chunk *target_chunks[] = { pcpu_first_chunk, pcpu_reserved_chunk, NULL }; struct...

2017-10-25 22:16:24

阅读数:75

评论数:0

kmem_cache_init

新版本的改动: kmem_cache_boot—->cache_cache init_kmem_cache_node—->initkmem_list3 slab_caches———>cache_chain size_index——–>malloc_sizes ...

2017-10-23 23:05:52

阅读数:101

评论数:0

free_low_memory_core_early

static unsigned long __init free_low_memory_core_early(void) { unsigned long count = 0; phys_addr_t start, end, size; u64 i;for_each_...

2017-10-23 22:41:44

阅读数:88

评论数:0

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