星空探索

对未知的探索,对茫茫宇宙的思索,是我孜孜不倦的追求

Linux softirq

static struct softirq_action softirq_vec[NR_SOFTIRQS]; DEFINE_PER_CPU(struct task_struct *, ksoftirqd); const char * const softirq_to_name[NR_SOFTI...

2019-08-22 20:58:58

阅读数 27

评论数 0

QCOM KERNEL log for DTB

[ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] [ 0.000000] Boot CPU: AArch64 Processor [41...

2019-08-16 09:54:02

阅读数 31

评论数 0

ARM64 DTS 处理-早期处理

setup_arch() // arch/arm64/kernel/setup.c --> setup_machine_fdt(__fdt_pointer); 检查DTB是否正确,以及早期配置系统 --> unflatten_device_tree();对DTB...

2019-08-15 19:45:32

阅读数 12

评论数 0

Linux ramfs, rootfs and initramfs

ramfs, rootfs and initramfs October 17, 2005 Rob Landley <rob@landley.net> ============================= What is ramfs? -------------- ...

2019-08-09 10:34:54

阅读数 113

评论数 0

ext4 inode 分配

2019-08-08 11:31:09

阅读数 13

评论数 0

驱动调用栈

[ 14.873268] [<ffffff800808c078>] dump_backtrace+0x0/0x4b0 [ 14.881364] [<ffffff800808c53c>] show_stack+0x14/0x1c [ 14...

2019-08-07 13:36:31

阅读数 10

评论数 0

ARM GICv3 研究学习 中断状态

对于GICv3来说,每个中断都关联了一个状态机,其用于描述每个中断的状态。 GICv3 提供的每个中断的中断状态机 Inactive:描述中断没有到来的状态,这里的定义是,不是处于active和pending状态。 Pending:中断信号已经被asserted,即中断已经到来,并且被...

2019-07-19 11:11:29

阅读数 17

评论数 0

kernel_log之 version

Linux kernel log 版本与编译信息 一般利用版本和编译信息用于确定每次修改内核代码后,了解本次运行是否是编译的kernel 镜像。 上面这个打印位于start_kernel 函数的下面代码中: asmlinkage __visible void __init start_ker...

2019-07-19 10:44:31

阅读数 20

评论数 0

irq_enter

/* * Enter an interrupt context. */ void irq_enter(void) { rcu_irq_enter(); if (is_idle_task(current) && !in_interrupt()) { /* ...

2019-03-20 18:48:17

阅读数 21

评论数 0

Watchdog

A watchdog is a fixed-length counter that enables a system to recover from an unexpected hardware or software catastrophe. Unless the system periodic...

2018-09-11 14:05:42

阅读数 180

评论数 0

Linux 子进程pgd处理

进程创建 fork函数运行。 copy_mm()--> dup_mm static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,  struct user_namespace *...

2018-02-07 10:56:58

阅读数 284

评论数 0

Linux 内核页表初始化

前面我们讨论了页描述符对象分配,以及初始化。接下来我们再来了解内核页表建立初始化处理。针对ARM64进行。 start_kernel --> setup_arch --> paging_init() void __init paging_init(void) {  ph...

2018-02-07 10:31:24

阅读数 553

评论数 0

Linux初始化页描述符对象

在前面我们讨论了内存节点node_mem_map成员的初始化。了解到此成员其实是以struct page为单位的数组,数组大小跟此节点内存大小相关,那么这些描述符是何时初始化 呢,当前主要是在mem_init函数进行设置。 start_kernel() --> mm_init -->...

2018-02-07 10:12:05

阅读数 242

评论数 0

Linux内存管理之mem_map对象

在linux内核中,所有的物理内存都用struct page结构来描述,这些对象以数组形式存放,而这个数组的地址就是mem_map。内核以节点node为单位,每个node下的物理内存统一管理,也就是说在表示内存node的描述类型struct pglist_data中,有node_mem_map这个...

2018-02-07 09:53:46

阅读数 2043

评论数 1

Linux printk

printk("A0:%lld\n",  ktime_to_ns(ktime_get())); printk("A1:%lld\n",  ktime_to_ns(ktime_get())); [   40.059130] A0:40...

2018-01-24 09:41:14

阅读数 271

评论数 0

ext4 节点inode.i_block描述

The Contents of inode.i_block Depending on the type of file an inode describes, the 60 bytes of storage in inode.i_block can be used in different way...

2018-01-09 13:49:24

阅读数 190

评论数 0

ext4 节点表

Inode Table In a regular UNIX filesystem, the inode stores all the metadata pertaining to the file (time stamps, block maps, extended attributes, etc...

2018-01-09 13:46:40

阅读数 180

评论数 0

ext5 块和节点表

Block and inode Bitmaps The data block bitmap tracks the usage of data blocks within the block group. The inode bitmap records which entries in the i...

2018-01-09 13:43:19

阅读数 132

评论数 0

ext4 块组介绍

Block Group Descriptors Each block group on the filesystem has one of these descriptors associated with it. As noted in the Layout section above, th...

2018-01-09 13:39:26

阅读数 356

评论数 0

EXT4 超级块介绍

The Super Block The superblock records various information about the enclosing filesystem, such as block counts, inode counts, supported features, ma...

2018-01-09 13:35:48

阅读数 554

评论数 0

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