原创 Linux scheduler(cfs) introduction

公司讓做個cfs相關的培訓,整理了個ppt,圖片均來自網絡,源作者在此不一一說明,深表歉意~~ The Outline Basic concepts about Linux process & thread Basic concepts

原创 Android快速啓動方案設計原理(hibernation/HyperBoot)

概要原理如下: 1. 在kernel空間使用tuxonice(suspend2的演進版本)進行suspend to disk(hibernation),主要動作是保存當前內存中所有的有效內容到hibernate image預留分區,寫入前

原创 Linux中斷處理流程

一、 中斷系統硬件架構: ARM cortex-A9,A15上的中斷控制器爲GIC400(低版本有GIC390,PL190等),硬件的邏輯圖爲 EXTINT0-EXTINT2:分別設置EINT0—EINT7、EINT8—EINT1

原创 linux irq balance and RT linux(中斷線程化)

前段時間一個培訓項目遇到了所有網卡中斷都跑在一個核上,造成負載不均衡的問題,解決思路如下: 1. 首先查看一下 irqbalance service是否正常運行,自動平衡irq負載的service 2. 可以用下面命令綁定不同irq到不

原创 Device Tree

參考文章 http://blog.csdn.net/21cnbao/article/details/8457546

原创 Linux內核頁表初始化

Linux在內核啓動過程中start_kernel->setup_arch會調用如下兩個函數對頁表進行初始化和建立。 static inline void prepare_page_table(void) { unsigned

原创 Linux Kernel啓動中參數的處理

1. 在bootloader中會以taglist的形式存儲板子mem、cmdline(cmdline中也可以定義mem信息)等相關信息,cmdline通過getenv從環境變量取得(該環境變量是之前使用setenv以字符串形式配置):a

原创 Android suspend底層流程解析

剛做的一個項目,在Android上實現快速啓動,先將原理敘述如下,當用戶長按電源鍵,選擇“下次開機快速啓動”後,系統啓動hibernate to disk的流程: 1. Power manager使用命令"echo disk > /sys

原创 Linux NUMA memory policy(內存分配策略)

參考內核文檔:Document/vm/numa_memory_policy memory policy是決定在NUMA系統上從哪個節點分配內存的策略,它是一類提供給能更好利用NUMA系統進行內存分配的應用程序使用的編程接口, 請不要將它和

原创 Linux物理內存描述三個層級

Linux物理內存描述三個層級的struct: pglist_data//描述內存節點 zone//描述節點內的分區,有normal、DMA、highmem page//描述一頁,通常爲4K大小 各結構體成員的具體含義,詳見下面代碼中的註

原创 Linux內存管理概述

(該圖轉自http://bbs.chinaunix.net/thread-2018659-2-1.html,作者Aryang) 下面對各部分進行概述。 Linux進程的線性地址空間(進程虛擬地址空間分佈),0~3G是User地址空間,

原创 Linux內存分配alloc_page和__get_free_page詳註(夥伴管理系統Buddy)

alloc_page和__get_free_page都是從Buddy分配頁面,只是最終返回值類型不同而已,前者返回page指針,後者返回該page所在的虛擬地址。 兩者最終都會調用到核心函數__alloc_pages_nodemask,下

原创 Linux Multi-Core boot up and Hotplug

前段時間support華爲K3平臺,看了下Multi-Core Hotplug的相關內容,整理一下linux多核的啓動和hotplug流程,華爲的代碼我是拿不出來的,什麼GPL之類的貌似對中國,甚或是亞洲的企業都不具約束力了^_^還是以o

原创 Android Camera框架分析

(該圖轉自他人,源作者不詳)該圖很清晰的說明了Camera啓動時從上到下的調用過程。 ICameraClient/ICameraSerice/ICamera是接口類,其功能真正實現是在繼承了BnCamera*的Camera*中,而Bp