全面介绍Linux内核中的NUMA系统,不错的资料。 1.Introduction 2.A sample NUMA system 3.Linux and NUMA memory 3.1.Memory Management 101 3.2.NUMA memory 4.Efficient allocations 4.1.Optimal placement: Node local 4.2.Multi node applications 4.3.Page Cache 4.4.Memory balancing 4.5.NUMA interlink and node hardware limits 5.Memory reclaim 5.1.Reclaim in an UP or SMP system 5.2.NUMA reclaim 6.Memory Migration 6.1.Why migrate pages 6.2.How page migration works 6.3.Determining […]
READ MORE »Linux物理内存页面分配
在用户态C语言程序中,我们对内存分配函数malloc()或calloc()非常熟悉;函数执行成功,就会返回需要的内存起始地址。显然这些函数在在内核态没法运行,在内核态有专门的内存申请/释放函数。 Linux内核中,如何分配和回收内存?空闲内存如何管理?本文以linux 2.6.32-220.el6版本内核源码为基础,介绍Linux内核中如何分配物理内存页面。 目 录 1 概述 2 内核页面分配与回收API 3 空闲页面的管理 3.1 物理内存空间描述 3.2 空闲页面的管理 4 伙伴算法 4.1 Buddy System 4.2 伙伴算法举例 4.2.1 页面分配过程 4.2.2 页面回收过程 4.3 Buddy系统信息查看 5 页面分配 5.1 UMA页面分配 5.2 NUMA页面分配 5.2.1 NUMA策略与cpuset功能 5.2.2 alloc_pages_current() 5.3 __alloc_pages_nodemask() 5.3.1 内存迁移类型与lockdep 5.3.2 __alloc_pages_nodemask() 5.4 get_page_from_freelist() 5.4.1 区域(Zone)水准 5.4.2 Hot-N-Cold页面 5.4.3 […]
READ MORE »LSI SAS控制器驱动报告Invalid Page原因分析
在使用LSISAS 1068E控制器的服务器上,Linux内核中打印如下信息: mptbase: ioc0: LogInfo(0x30030501): Originator={IOP}, Code={Invalid Page}, SubCode(0x0501) cb_idx mptctl_reply 在遇到这种打印信息时,不清楚原因,担心磁盘是否存在问题。本文详细分析错误日志来源及可能存在的原因。 完整文章下载:LSI SAS控制器驱动报告Invalid Page原因分析
READ MORE »[转]Evolution of Intel’s Basic Microarchitectures
介绍Intel CPU微架构的演变。 1. Introduction 2. Core 2 3. Penryn 4. Nehalem 5. Nehalem-EX 6. Westmere 7. Westmere-EX 8. Sandy Bridge 9. Overview of the evolution 来源:http://users.nik.uni-obuda.hu//sima/oktatas.htm 下载:Evolution of Intel’s Basic Microarchitectures
READ MORE »Do Not Worry
Do Not Worry 25 “Therefore I tell you, do not worry about your life, what you will eat or drink; or about your body, what you will wear. Is not life more important than food, and the body more important than clothes? 26 Look at the birds of the air; they do not sow or […]
READ MORE »Linux物理内存描述
Linux内核采用页式存储管理,进程的地址空间被划分成固定大小的“页面”;物理内存同样被分为与页面大小相同的“页帧”,由MMU在运行时将虚拟地址“映射”成某个物理内存页面上的地址。 本文以linux-2.6.32-220.el6版本内核源码为基础,介绍Linux内核中有关物理内存的概念,和如何描述物理内存。注意:本文中涉及到的仅是和物理内存有关的概念、数据结构。和地址如何映射、线性地址、物理地址;内存如何分配/回收等概念无关。 目录 1 概述… 3 2 物理内存相关概念… 3 2.1 NUMA(Non Uniform Memory Access)… 3 2.2 页面和虚拟内存(Paging and Virtual Memory)… 5 2.2.1 PAE(Physical Address Extensions)… 6 2.2.2 PSE(Page Size Extensions)… 6 2.3 TLB(Translation Lookaside Buffers)… 7 3 Linux内核对物理内存描述… 7 3.1 节点(Node)… 8 3.2 区域(Zone)… 10 3.2.1 区域类型… 10 3.2.2 struct zone结构体… 13 3.3 […]
READ MORE »[转]What Every Programmer Should Know About Memory
非常经典且全面介绍内存的资料,强烈推荐。 内容包括: Commodity Hardware Today CPU Caches Virtual Memory NUMA Support What Programmers Can Do Memory Performance Tools Upcoming Technology 点击下载:What Every Programmer Should Know About Memory
READ MORE »[转]Debugging Linux Kernel Problems
In this tutorial, we’ll look at the following topics: • How and why kernels fail. • Understanding log files: dmesg and the files in /var/log, notably /var/log/messages. • Userland tools for debugging a running system. • Building a kernel with debugging support: the options. • Using a serial console. • Preparing for dumps: dumpon, savecore. […]
READ MORE »[转]Linux Kernel Crash Book Everything you need to know
介绍LKCD和KDUMP的资料,还不错。 来源:http://www.dedoimedo.com/ 下载:Linux Kernel Crash Book Everything you need to know
READ MORE »Linux系统安装盘设备驱动制作及更新
1 前言 在安装Linux操作系统过程中,有时会遇到安装盘中自带设备驱动版本较老,不支持最新的RAID控制器(如MegaRAID SAS 9265-8i),导致系统安装时,找不到硬盘,系统无法继续安装。此时我们需要更新安装盘中带的驱动,或者使用使用驱动安装盘(一般为img文件)来更新驱动。 本文主要介绍如何制作Redhat Linux驱动安装盘和如何更新安装盘中的驱动,并介绍常见故障的处理办法。
READ MORE »