Linux 2.6.28版本内核的几个改动

Changes in Linux Kernel 2.6.28

The GEM Memory Manager for GPU memory
长期以来显存管理代码分散在Kernel, Xorg和专有驱动里,相对比较混乱。社区一直在讨论是否要加入Tungsten Graphics的TTM内存管理器。
现在加入的GEM内存管理器是由Intel的Keith Packard提出的。相对于TTM,GEM简化了设计,更加轻量级。目前只支持Intel i915驱动。

Memory management for graphics processors
http://lwn.net/Articles/257417/
GEM v. TTM
http://lwn.net/Articles/283793/
GEM – the Graphics Execution Manager
http://lwn.net/Articles/283798/

Memory management Scalability improvements
主要的改动是加入了virtual memory scalability improvement patch和VM scalability patch。主要针对大容量内存的机器(如128G)在页面换出时在LRU list搜索时间过长的问题。
前一个patch把file-backed page和anonymous page分别存放在两个LRU list上,优先对前者做换出。
VM scalability patch,只在inactive list上维护一定百分比的anonymous page。当对anonymous page回收时,只检查inactive list上匿名页的引用情况,而避免对所有的匿名页做操作。

Memory management Scalability improvements
http://lwn.net/Articles/286472/

Disk Shock Protection
ATA/ATAPI-7规范定义了IDLE IMMEDIATE命令可以切换驱动器至idle模式并复位磁头。2.6.28为每个ATA设备添加了/sys/block/*/device/unload_heads接口,
向这个接口中写一个整数值n可以复位磁头并延时所有IO操作n毫秒。当这个时间结束,再恢复IO操作。最大允许的延时值为30000毫秒。
磁盘振动保护功能需要结合accelerometers驱动和应用软件才能发挥作用。2.6.28的这个feature只是提供了操作接口。

Boot tracer
主要来自Arjan van de Ven和Frédéric Weisbecker在Linux快速启动方面的工作。去年Arjan在Linux Plumbers Conference上展示了5秒启动上网本的demo。
然而fast boot patch暂时未被Linus接纳进mainline代码树。这次2.6.28加入的Boot tracer用于性能分析,可以更方便地让开发者跟踪kernel在各部分启动所耗费的时间,以便调优。

参考

http://kernelnewbies.org/LinuxChanges

Kernel Crash Debug

White Paper: Red Hat Crash Utility
http://people.redhat.com/anderson/crash_whitepaper/usage.html

How do I configure kexec/kdump on Red Hat Enterprise Linux 5?
http://kbase.redhat.com/faq/FAQ_105_9036.shtm

A quick overview of Linux kernel crash dump analysis
http://www.redhatmagazine.com/2007/08/15/a-quick-overview-of-linux-kernel-crash-dump-analysis/

LKCD
http://lkcd.sourceforge.net/doc/index.html

Linux-2.6.17/Documentation/kdump/kdump.txt
http://www.gelato.unsw.edu.au/lxr/source/Documentation/kdump/kdump.txt

No tags for this post.