This index covers articles published in the LWN.net Kernel Page. All articles from the beginning of 2004 have been entered here.
4K stacks
4K Stacks in 2.6 (May 12, 2004)
4K stacks: some issues remain (May 18, 2004)
4K stacks for everyone? (September 6, 2005)
4K stacks - again (November 15, 2005)
4K stacks by default? (April 23, 2008)
ABISS
Into the ABISS (November 9, 2004)
ACPI
ACPI, device interrupts, and suspend states (August 3, 2005)
An API for specifying latency constraints (August 28, 2006)
OLS: Three talks on power management (June 30, 2007)
Tripping over trip points (August 7, 2007)
Adore root kit
A new Adore root kit (March 17, 2004)
AdvFS
What's AdvFS good for? (June 25, 2008)
alloc_skb_from_cache()
alloc_skb_from_cache() (January 4, 2005)
ALSA
Fear of the void (June 9, 2004)
Alternative instructions
SMP alternatives (December 14, 2005)
anonmm
Reverse mapping anonymous pages - again (March 24, 2004)
The status of object-based reverse mapping (May 19, 2004)
anon_vma
Virtual Memory II: the return of objrmap (March 10, 2004)
VM changes in 2.6.6 (April 14, 2004)
The status of object-based reverse mapping (May 19, 2004)
The merging of anon_vma and 4G/4G (May 26, 2004)
AppArmor
The AppArmor debate begins (April 26, 2006)
Kernel Summit 2006: Security (July 18, 2006)
Linux security non-modules and AppArmor (June 27, 2007)
TOMOYO Linux and pathname-based security (April 14, 2008)
Architectures
i386 and x86_64: back together? (July 31, 2007)
Asynchronous I/O
A retry-based AIO infrastructure (March 2, 2004)
Kernel Summit: Asynchronous I/O (July 21, 2004)
Asynchronous I/O and vectored operations (February 7, 2006)
The kevent interface (February 22, 2006)
OLS: A proposal for a new networking API (July 22, 2006)
API changes: interrupt handlers and vectored I/O (October 2, 2006)
Asynchronous buffered file I/O (January 3, 2007)
Fibrils and asynchronous system calls (January 31, 2007)
Kernel fibrillation (February 6, 2007)
Threadlets (February 27, 2007)
The return of syslets (May 30, 2007)
atomic_t
No more 24-bit atomic_t (February 18, 2004)
The search for fast, scalable counters (January 31, 2006)
Auditing
The lightweight auditing framework (April 7, 2004)
More hooks for kernel events (February 9, 2005)
Automounter
Trapfs - an automounter on the cheap (November 2, 2004)
Beancounters
Resource beancounters (August 29, 2006)
Benchmarking
Automated kernel testing (June 8, 2005)
Big kernel lock
The Big Kernel Lock lives on (May 26, 2004)
The Big Kernel Semaphore? (September 15, 2004)
ioctl(), the big kernel lock, and 32-bit compatibility (December 14, 2004)
The new way of ioctl() (January 18, 2005)
The big kernel lock strikes again (May 13, 2008)
Kill BKL Vol. 2 (May 21, 2008)
BitKeeper
The kernel and BitKeeper part ways (April 6, 2005)
Block layer
Laptop mode for 2.6 (January 7, 2004)
A weak cryptoloop implementation in Linux? (January 21, 2004)
CDROM drives and partitioning (February 25, 2004)
No more global unplugging (March 10, 2004)
The return of write barriers (March 24, 2004)
Big block transfers: good or bad? (March 29, 2004)
Coming in 2.6.10 (October 20, 2004)
Partitioned loopback devices (November 10, 2004)
Network block devices and OOM safety (March 30, 2005)
Execute-in-place (May 11, 2005)
Kernel Summit 2005: Convergence of network and storage paths (July 19, 2005)
Some block layer patches (October 26, 2005)
Large block size support (May 2, 2007)
Distributed storage (August 21, 2007)
Barriers and journaling filesystems (May 21, 2008)
Block layer: integrity checking and lots of partitions (July 15, 2008)
Block layer discard requests (August 12, 2008)
Block drivers
Cleaning up the block driver API (August 28, 2007)
A new block request completion API (January 28, 2008)
How to use a terabyte of RAM (March 12, 2008)
I/O scheduling
Modular, switchable I/O schedulers (September 21, 2004)
Into the ABISS (November 9, 2004)
Which is the fairest I/O scheduler of them all? (December 8, 2004)
CFQ v3 (July 12, 2005)
Books
Linux Kernel Development, Second Edition (March 9, 2005)
Linux Device Drivers, Third Edition now online (March 14, 2005)
The Linux Kernel Primer (October 5, 2005)
Understanding the Linux Kernel, 3rd Edition (November 22, 2005)
Review: Understanding Linux Network Internals (January 23, 2006)
Book Review: User Mode Linux (May 16, 2006)
Review: Linux Kernel in a Nutshell (February 7, 2007)
Bootstrap process
initramfs and where user space truly begins (July 11, 2006)
Broadcom 43xx
bcm43xx and the 802.11 stack (December 6, 2005)
How not to handle a licensing violation (April 11, 2007)
Btrfs
btrfs and NILFS (June 19, 2007)
A better btrfs (January 15, 2008)
Buffer heads
A nasty file corruption bug - fixed (December 31, 2006)
CacheFS
A general caching filesystem (September 1, 2004)
Capabilities
Capabilities in 2.6 (April 6, 2004)
Magic groups in 2.6 (May 11, 2004)
Trustees Linux (November 16, 2004)
A bid to resurrect Linux capabilities (September 10, 2006)
File-based capabilities (November 29, 2006)
Fixing CAP_SETPCAP (October 31, 2007)
Restricting root with per-process securebits (April 30, 2008)
CD recording
SCSI command filtering (July 31, 2006)
2.6.8 problems
2.6.8 and CD recording (August 18, 2004)
CFQ I/O scheduler
Which is the fairest I/O scheduler of them all? (December 8, 2004)
CFQ v3 (July 12, 2005)
Character encoding
The kernel and character set encodings (February 18, 2004)
Char devices
The cdev interface (August 16, 2006)
check_flags()
file_operations method
The end of the fcntl() method (August 18, 2004)
Checkpointing
Kernel-based checkpoint and restart (August 11, 2008)
Chunkfs
Filesystems: chunkfs and reiser4 (April 24, 2007)
CIFS
On the future of smbfs (May 15, 2006)
Circular buffers
Coming in 2.6.10 (October 20, 2004)
Circular pipes (January 11, 2005)
The evolution of pipe buffers (January 18, 2005)
Class-based resource management
Kernel Summit: Class-based Kernel Resource Management (July 21, 2004)
Is CKRM worth it? (July 27, 2005)
Briefly: patch quality, CKRM, likely(), and vmsplice() (May 3, 2006)
Resource beancounters (August 29, 2006)
class_simple
Safe sysfs support (February 11, 2004)
Clockevents
Clockevents and dyntick (February 21, 2007)
CLOCK-Pro
A CLOCK-Pro page replacement implementation (August 16, 2005)
A framework for page replacement policies (March 25, 2006)
Clusters
Clusters and distributed lock management (May 18, 2005)
Kernel Summit 2005: Clustering (July 19, 2005)
Cluster summit presentations
Presentations from the cluster summit (August 11, 2004)
Filesystems
Should the Lustre preparation patches go in? (June 9, 2004)
Kernel Summit: Clustered storage (July 21, 2004)
The OCFS2 filesystem (May 24, 2005)
Time to merge GFS? (August 10, 2005)
Merging GFS2 (September 7, 2005)
cmpxchg()
RCU-safe reference counting (July 14, 2004)
Coding style
How likely should likely() be? (February 10, 2004)
The cost of inline functions (April 28, 2004)
Fear of the void (June 9, 2004)
NULL v. zero (July 14, 2004)
Kernel headers and user space (November 30, 2004)
The coding style enforcer (May 11, 2005)
Drawing the line on inline (January 3, 2006)
The trouble with volatile (May 8, 2007)
Completely fair scheduler
CFS group scheduling (July 2, 2007)
Fair user scheduling and other scheduler patches (October 16, 2007)
Completions
Some 2.6.11 API changes (January 25, 2005)
Configfs
Configfs - an introduction (August 24, 2005)
Configfs - the API (August 24, 2005)
Congestion avoidance
Pluggable congestion avoidance modules (March 22, 2005)
Containers
Containers and PID virtualization (January 17, 2006)
PID virtualization: a wealth of choices (February 8, 2006)
Containers and lightweight virtualization (April 10, 2006)
Kernel Summit 2006: Paravirtualization and containers (July 19, 2006)
Another container implementation (September 19, 2006)
Process containers (May 29, 2007)
Controlling memory use in containers (July 31, 2007)
KS2007: Containers (September 10, 2007)
Process IDs in a multi-namespace world (November 6, 2007)
System call updates: indirect(), timerfd(), and hijack() (November 28, 2007)
Kernel-based checkpoint and restart (August 11, 2008)
Copyright issues
Buying the kernel (October 13, 2004)
The kernel and binary firmware (April 6, 2005)
The Philips webcam driver - again (May 4, 2005)
The Developer's Certificate of Origin, v1.1 (June 15, 2005)
On the value of EXPORT_SYMBOL_GPL (October 5, 2005)
On binary drivers and stable interfaces (November 9, 2005)
EXPORT_SYMBOL_GPL_FUTURE() (February 13, 2006)
Code of uncertain origin (August 9, 2006)
Code of (still) uncertain origin (August 15, 2006)
Resolved: firmware is not software (August 23, 2006)
GPL-only symbols and ndiswrapper (October 25, 2006)
How not to handle a licensing violation (April 11, 2007)
More quotes of the week - scenes from a flame war (June 19, 2007)
NDISwrapper dodges another bullet (March 5, 2008)
Kernel markers and binary-only modules (March 24, 2008)
copy_*_user()
Proposed return value change
API changes under consideration (August 24, 2004)
COW links
COW Links (March 29, 2004)
Crash dumps
Diskdump: a new crash dump system (June 2, 2004)
Crash dumps with kexec (October 27, 2004)
Software suspend - again (February 6, 2006)
Credentials
Credential records (September 25, 2007)
Cryptography
Cryptographic signatures on kernel modules (July 7, 2004)
Asynchronous crypto (November 3, 2004)
Cryptoloop
A weak cryptoloop implementation in Linux? (January 21, 2004)
Customer panel
Kernel Summit: The customer panel (July 20, 2004)
DCCP
Linux gets DCCP (August 30, 2005)
Debian kernel team
The new Debian kernel team (May 26, 2004)
Debugging
Bringing kgdb into 2.6 (February 10, 2004)
Finding kernel problems automatically (June 1, 2004)
Diskdump: a new crash dump system (June 2, 2004)
Debugging kernel modules (June 23, 2004)
Crash dumps with kexec (October 27, 2004)
On not getting burned by kmap_atomic() (November 16, 2004)
Debugfs (December 13, 2004)
Useful gadget: /proc/page_owner (February 1, 2005)
The __nocast attribute (March 29, 2005)
Double kfree() errors (March 6, 2006)
A nasty file corruption bug - fixed (December 31, 2006)
Short subjects: kerneloops, read-mostly, and port 80 (December 18, 2007)
Development issues part 2: Bug tracking (January 9, 2008)
An object debugging infrastructure (March 3, 2008)
Bisection divides users and developers (April 15, 2008)
Delay accounting
Some patches of interest (February 28, 2006)
del_timer()
Deleting timers quickly (May 12, 2004)
Desktop support
Kernel Summit 2005: The Kernel and the Linux desktop (July 19, 2005)
Development model
Linus merges up a storm (April 14, 2004)
Kernel Summit: Development process (July 20, 2004)
Another look at the new development model (July 27, 2004)
The -mm development tree (October 5, 2004)
MODULE_PARM deprecated (October 20, 2004)
Some development model notes (October 27, 2004)
Four-level page tables merged (January 4, 2005)
Flushing the page cache from user space (February 22, 2005)
Finding the boundaries for stable kernel patches (April 5, 2005)
Andrew Morton at linux.conf.au (April 23, 2005)
The end of the devfs story (June 13, 2005)
Kernel Summit 2005: The hardware vendors' panel (July 19, 2005)
Reiser4 and kernel inclusion (September 21, 2005)
On the merging of ktimers (October 19, 2005)
What's not going into 2.6.18 (June 6, 2006)
Time for ext4? (June 12, 2006)
Kernel Summit 2006: Kernel quality and development process (July 17, 2006)
Kernel Summit 2006: Development process II (July 19, 2006)
Old kernels and new compilers (August 21, 2006)
Where have all the reviewers gone? (September 11, 2006)
Device drivers and non-disclosure agreements (October 9, 2006)
Who's writing 2.6.21 and related issues (March 7, 2007)
Pointy-haired kernel hackers? (July 11, 2007)
Still waiting for swap prefetch (July 25, 2007)
KS2007: Developer relations and development process (September 10, 2007)
The case of the unwelcome attribution (September 19, 2007)
PF_CAN (October 8, 2007)
ELC: Morton and Saxena on working with the kernel community (April 21, 2008)
Andrew Morton on kernel development (June 11, 2008)
A new kernel tree: linux-staging (June 11, 2008)
Linux 3.0? (September 3, 2008)
KS2008: Linux 3.0 (September 15, 2008)
Btrfs to the mainline? (October 8, 2008)
Contributor statistics
Who wrote 2.6.20? (February 20, 2007)
Who's writing 2.6.21 and related issues (March 7, 2007)
Who wrote - and approved - 2.6.22 (June 11, 2007)
2.6.24 - some statistics (January 9, 2008)
Developers as children
Quote of the week (June 15, 2004)
Driver merging
Merging drivers early (February 27, 2008)
Why some drivers are not merged early (June 18, 2008)
LIRC delurks (September 10, 2008)
KS2008: When should drivers be merged? (September 15, 2008)
Moving the -staging tree (October 1, 2008)
Kernel quality
Toward better kernel releases (December 7, 2004)
Is the kernel development process broken? (March 9, 2005)
Quotes of the week (March 8, 2005)
Kernel Summit 2005: Development process and quality assurance (July 19, 2005)
Kernel testing and regressions: an example (July 26, 2005)
The newest development model and 2.6.14 (November 2, 2005)
Briefly: patch quality, CKRM, likely(), and vmsplice() (May 3, 2006)
Kernel bugs: out of control? (May 10, 2006)
Putting a lid on USB power (June 5, 2006)
Return values, warnings, and error situations (October 17, 2006)
Buried in warnings (November 1, 2006)
A tale of two release cycles (May 1, 2007)
The thorny case of kmalloc(0) (June 5, 2007)
KS2007: Kernel quality (September 5, 2007)
Various topics related to kernel quality (November 14, 2007)
Memory allocation failures and scary warnings (April 7, 2008)
Time to slow down? (May 7, 2008)
Tightening the merge window rules (September 9, 2008)
KS2008: Kernel quality and release process (September 15, 2008)
linux-next
linux-next and patch management process (February 13, 2008)
A day in the life of linux-next (June 23, 2008)
The current development kernel is...linux-next? (July 8, 2008)
Linux-next meets the merge window (July 23, 2008)
Loadable modules
The abrupt un-exporting of symbols (January 11, 2005)
Exported symbols and the internal API (September 11, 2007)
Tightening symbol exports (November 27, 2007)
Security issues
Handling kernel security problems (July 16, 2008)
User-space API
Sysfs and a stable kernel ABI (February 22, 2006)
ABI stability documentation (February 27, 2006)
Kevents and review of new APIs (August 23, 2006)
The final wireless extension? (October 4, 2006)
The death and possible rebirth of sysctl() (October 18, 2006)
Application-friendly kernel interfaces (March 26, 2007)
2.6 and the user-space ABI (May 15, 2007)
timerfd() and system call review (August 14, 2007)
Re-deprecating sysctl() (August 29, 2007)
KS2007: The greater kernel ecosystem and user-space APIs (September 5, 2007)
Process IDs in a multi-namespace world (November 6, 2007)
Development tools
Ketchup with that? (April 28, 2004)
The guts of git (April 12, 2005)
A very quick guide to starting with git (April 19, 2005)
Automated kernel testing (June 8, 2005)
A couple of graphical git front ends (July 4, 2005)
Git approaches 1.0 (July 27, 2005)
The end of gcc 2.95 support (December 13, 2005)
Kernel Summit 2006: Automated testing (July 19, 2006)
Kernel Summit 2006: Automated testing (July 19, 2006)
Using sparse for endianness verification (October 25, 2006)
Sparse gets a maintainer (November 8, 2006)
Device resource management (January 2, 2007)
Who maintains this file? (August 21, 2007)
KS2008: Development tools (September 15, 2008)
Kernel debugging
The kernel lock validator (May 30, 2006)
Injecting faults into the kernel (November 14, 2006)
kmemcheck (November 27, 2007)
An object debugging infrastructure (March 3, 2008)
Bisection divides users and developers (April 15, 2008)
Kernel tracing
Tracing infrastructures (September 19, 2006)
A generic tracing interface (September 19, 2007)
Tracing: no shortage of options (July 22, 2008)
Low-level tracing plumbing (September 30, 2008)
kgdb
kgdb getting closer to being merged? (February 20, 2008)
mmiotrace
Tracing memory-mapped I/O operations (February 26, 2008)
devfs
The end of the devfs story (June 13, 2005)
Device drivers
Generic DMA pools (February 3, 2004)
The end of init_etherdev() and friends (March 2, 2004)
A new I/O memory access mechanism (September 15, 2004)
The new way of ioctl() (January 18, 2005)
NETIF_F_LLTX and race conditions (February 1, 2005)
HALs considered harmful (March 15, 2005)
RapidIO support for Linux (June 8, 2005)
PCI error recovery (July 12, 2005)
ACPI, device interrupts, and suspend states (August 3, 2005)
ZONE_DMA32 (September 20, 2005)
Dynamic USB device IDs (November 21, 2005)
bcm43xx and the 802.11 stack (December 6, 2005)
The Novell Partner Linux Driver Process (May 17, 2006)
Driver core API changes for 2.6.19 (September 26, 2006)
API changes: interrupt handlers and vectored I/O (October 2, 2006)
Device drivers and non-disclosure agreements (October 9, 2006)
KS2007: Hardware support and the i386/x86_64 merger (September 5, 2007)
Linux driver project gets a full-time leader (October 3, 2007)
Short subjects: kerneloops, read-mostly, and port 80 (December 18, 2007)
Merging drivers early (February 27, 2008)
A new suspend/hibernate infrastructure (March 19, 2008)
Why some drivers are not merged early (June 18, 2008)
LIRC delurks (September 10, 2008)
Block drivers
Cleaning up the block driver API (August 28, 2007)
A new block request completion API (January 28, 2008)
Block layer discard requests (August 12, 2008)
In user space
User-space device drivers (January 19, 2004)
Handling interrupts in user space (March 15, 2005)
Support for drivers in user space (September 4, 2006)
UIO: user-space drivers (May 1, 2007)
Network drivers
Large receive offload (August 1, 2007)
Network transmit batching (August 22, 2007)
e1000 v. e1000e (April 15, 2008)
e1000e and the joy of development kernels (September 24, 2008)
Nouveau
LCA: The state of the Nouveau project (January 17, 2007)
Video
Memory management for graphics processors (November 6, 2007)
LPC: The future of Linux graphics (September 24, 2008)
Video4Linux2
The Video4Linux2 API: an introduction (October 11, 2006)
Video4Linux2 part 2: registration and open() (October 18, 2006)
Video4Linux2 part 3: Basic ioctl() handling (October 30, 2006)
Video4Linux2 part 4: inputs and outputs (December 13, 2006)
Video4Linux2 part 5a: colors and formats (January 24, 2007)
Video4Linux2 part 5b: format negotiation (March 23, 2007)
Video4Linux2 part 6a: Basic frame I/O (May 18, 2007)
Video4Linux2 part 6b: Streaming I/O (July 5, 2007)
Wireless networking
The ipw3945 project (March 1, 2006)
A new Intel wireless driver (February 20, 2007)
Regulating wireless devices (August 19, 2008)
Device mapper
Kernel Summit: Multipath I/O (July 21, 2004)
Multipath support in the device mapper (February 23, 2005)
MD / DM (January 25, 2006)
Distributed storage (August 21, 2007)
Device model
Driver core functions: GPL only (September 29, 2004)
Some more 2.6.12 API changes (March 16, 2005)
Device model changes in store (March 22, 2005)
A big set of driver core changes (June 21, 2005)
Nested classes (October 5, 2005)
Sysfs and a stable kernel ABI (February 22, 2006)
Driver core API changes for 2.6.19 (September 26, 2006)
Toward a safer sysfs (April 9, 2007)
Device naming
Lots of SCSI disks (March 16, 2004)
A new device naming scheme (April 6, 2004)
Device numbers
The future of device numbers (January 6, 2004)
A unified device number allocator (March 8, 2005)
Devicescape stack
The 2006 Wireless Networking Summit (April 10, 2006)
Kernel Summit 2006: Mini-summit summaries (July 17, 2006)
Toward a free Atheros driver (November 15, 2006)
A new Intel wireless driver (February 20, 2007)
/dev/kmem
Who needs /dev/kmem? (August 16, 2005)
User-space software suspend (September 26, 2005)
A software suspend decision point (November 16, 2005)
Direct memory access
Generic DMA pools (February 3, 2004)
The DMA API changes (March 15, 2004)
A handful of DMA topics (June 23, 2004)
DMA issues, part 2 (June 30, 2004)
Kernel Summit 2005: I/O Busses (July 18, 2005)
ZONE_DMA32 (September 20, 2005)
Memory copies in hardware (December 6, 2005)
Kernel Summit 2006: DMA and IOMMU issues (July 19, 2006)
The chained scatterlist API (October 29, 2007)
Rationalizing scatter/gather chains (December 28, 2007)
A better DMA memory allocator (March 10, 2008)
dir_notify()
file_operations method
The end of the fcntl() method (August 18, 2004)
Distributed lock management
Clusters and distributed lock management (May 18, 2005)
Merging GFS2 (September 7, 2005)
dma_declare_coherent_memory()
DMA issues, part 2 (June 30, 2004)
dma_get_required_mask()
A handful of DMA topics (June 23, 2004)
Documentation
Kernel Summit 2006: Documentation (July 17, 2006)
Kevents and review of new APIs (August 23, 2006)
KS2008: Documentation (September 17, 2008)
Drivers
Video4Linux2
Video4Linux2 part 7: Controls (August 31, 2007)
Dynamic tick
Clockevents and dyntick (February 21, 2007)
Deferrable timers (March 28, 2007)
EDAC
The 2.6.16 straggler list (January 24, 2006)
Elevator
Modular, switchable I/O schedulers (September 21, 2004)
Into the ABISS (November 9, 2004)
Which is the fairest I/O scheduler of them all? (December 8, 2004)
Some block layer patches (October 26, 2005)
Embedded systems
Kernel Summit 2006: Embedded systems (July 18, 2006)
Reviving linux-tiny (September 26, 2007)
ELC: Morton and Saxena on working with the kernel community (April 21, 2008)
An interview with the new embedded maintainers (June 4, 2008)
eventfs
Kernel events without kevents (March 13, 2007)
Events reporting
A kernel events layer (July 27, 2004)
Figuring out kernel event reporting (September 8, 2004)
Watching filesystem events with inotify (September 29, 2004)
Coming in 2.6.10 (October 20, 2004)
More hooks for kernel events (February 9, 2005)
Extending netlink (April 12, 2005)
Dealing with disk I/O problems (June 21, 2005)
The kevent interface (February 22, 2006)
OLS: A proposal for a new networking API (July 22, 2006)
Toward a kernel events interface (August 1, 2006)
Kevent take 26 (December 11, 2006)
The return of kevent? (May 8, 2007)
The return of syslets (May 30, 2007)
vringfd() (April 7, 2008)
execns()
execns() (July 11, 2006)
Execute in place
Kernel Summit: kexec and fast booting (July 21, 2004)
Execute-in-place (May 11, 2005)
EXPORT_SYMBOL_GPL
On the value of EXPORT_SYMBOL_GPL (October 5, 2005)
EXPORT_SYMBOL_GPL_FUTURE() (February 13, 2006)
ext3
ext3 block reservation (April 20, 2004)
Which filesystem for Samba4? (November 23, 2004)
Ext3 for large filesystems (June 12, 2006)
Time for ext4? (June 12, 2006)
Benchmark comparing with reiser4
Looking at reiser4 (August 25, 2004)
Ext4
Time for ext4 (July 5, 2006)
ext4
Secure deletion and trash bin support (December 5, 2006)
fallocate()
fallocate() (March 19, 2007)
The ongoing fallocate() story (July 3, 2007)
Fast booting
Kernel Summit: kexec and fast booting (July 21, 2004)
fast_gup()
Toward better direct I/O scalability (March 31, 2008)
The lockless page cache (July 29, 2008)
fault()
Faulting out populate(), nopfn(), and nopage() (October 10, 2006)
fault() (July 23, 2007)
Fault injection
Injecting faults into the kernel (November 14, 2006)
fcntl() method
A new file_operations method (March 24, 2004)
The end of the fcntl() method (August 18, 2004)
Fibrils
Fibrils and asynchronous system calls (January 31, 2007)
Kernel fibrillation (February 6, 2007)
Alternatives to fibrils (February 13, 2007)
FIEMAP ioctl()
SEEK_HOLE or FIEMAP? (December 3, 2007)
File descriptors
Fun with file descriptors (June 4, 2007)
More fun with file descriptors (June 12, 2007)
Filesystems
pramfs - a new filesystem (March 3, 2004)
Trapfs - an automounter on the cheap (November 2, 2004)
Debugfs (December 13, 2004)
The mini_fo filesystem (May 10, 2005)
A filesystem from Plan 9 space (May 25, 2005)
Files with negative offsets (May 31, 2005)
Kernel Summit 2005: Virtual filesystem topics (July 18, 2005)
Coming soon: eCryptfs (October 25, 2005)
Shared subtrees (November 8, 2005)
Kernel Summit 2006: The VFS layer (July 19, 2006)
Secure deletion and trash bin support (December 5, 2006)
Filesystems: chunkfs and reiser4 (April 24, 2007)
Once upon atime (August 8, 2007)
Some VFS address space operations changes (October 17, 2007)
The Ceph filesystem (November 14, 2007)
SEEK_HOLE or FIEMAP? (December 3, 2007)
Unprivileged mounts (January 15, 2008)
Read-only bind mounts (May 6, 2008)
What's AdvFS good for? (June 25, 2008)
Freezing filesystems and containers (June 25, 2008)
KS2008: Filesystem and block layer interaction (September 15, 2008)
Btrfs
btrfs and NILFS (June 19, 2007)
A better btrfs (January 15, 2008)
Btrfs to the mainline? (October 8, 2008)
Case-independent lookups
The kernel and character set encodings (February 18, 2004)
Cluster
Should the Lustre preparation patches go in? (June 9, 2004)
The OCFS2 filesystem (May 24, 2005)
Time to merge GFS? (August 10, 2005)
Merging GFS2 (September 7, 2005)
COW links
COW Links (March 29, 2004)
ext3
ext3 block reservation (April 20, 2004)
Online resizing of ext3 filesystems (June 15, 2004)
Ext3 for large filesystems (June 12, 2006)
Time for ext4? (June 12, 2006)
A nasty file corruption bug - fixed (December 31, 2006)
ext3 metaclustering (January 15, 2008)
Barriers and journaling filesystems (May 21, 2008)
ext4
Time for ext4 (July 5, 2006)
A better ext4 (January 23, 2008)
Responding to ext4 journal corruption (May 27, 2008)
Extended attributes
On reiserfs and external attributes (April 28, 2004)
Which filesystem for Samba4? (November 23, 2004)
Flash
LogFS (May 15, 2007)
UBIFS (April 2, 2008)
Block layer discard requests (August 12, 2008)
AXFS: a compressed, execute-in-place filesystem (August 26, 2008)
InterMezzo
Goodbye to old code (May 19, 2004)
In user space
FUSE - implementing filesystems in user space (January 27, 2004)
Should FUSE be merged? (November 22, 2004)
FUSE hits a snag (April 12, 2005)
FUSE and private namespaces (April 27, 2005)
Named stream support
More notes on reiser4 (September 1, 2004)
Network
CRFS and POHMELFS (February 6, 2008)
Symbolic link depth
Supporting deeper symbolic links (June 30, 2004)
Unionfs
Unionfs (January 10, 2007)
State of the unionfs (January 15, 2008)
Filtered wakeups
Filtered wakeups (May 5, 2004)
Firmware
The kernel and binary firmware (April 6, 2005)
Using the firmware loader for static data (May 28, 2008)
Moving the firmware out (June 4, 2008)
Fistgen
Recent patches of interest (August 4, 2004)
Forced unmount
revoke() and frevoke() (July 25, 2006)
Fork bombs
Defending against fork bombs (May 3, 2005)
FS-Cache
Credential records (September 25, 2007)
FUSYN
FUSYNs - robust user-space synchronization primitives (January 21, 2004)
Futex
FUTEX + rwsem = SNAFU (February 23, 2005)
Robust futexes - a new approach (February 15, 2006)
Priority inheritance in the kernel (April 3, 2006)
get_user_inatomic()
FUTEX + rwsem = SNAFU (February 23, 2005)
gfp_t
Introducing gfp_t (October 11, 2005)
GFS
Kernel Summit: Clustered storage (July 21, 2004)
Time to merge GFS? (August 10, 2005)
Merging GFS2 (September 7, 2005)
Git
The guts of git (April 12, 2005)
A very quick guide to starting with git (April 19, 2005)
Git approaches 1.0 (July 27, 2005)
Bisection divides users and developers (April 15, 2008)
GmailFS
GmailFS - using Gmail as a filesystem (August 30, 2004)
Goldman Sachs
Kernel Summit: The customer panel (July 20, 2004)
Grand Unified Flow Cache
The Grand Unified Flow Cache (August 7, 2006)
Graphics Execution Manager (GEM)
GEM v. TTM (May 28, 2008)
Group scheduling
CFS group scheduling (July 2, 2007)
Hardware abstraction layers
HALs considered harmful (March 15, 2005)
Head Bubba
KS2007: The customer panel (September 8, 2007)
HostAP
Toward a generic wireless access point stack (June 9, 2004)
Hotplug
Safe PCI hot removal (June 9, 2004)
Configuration of pluggable network adaptors (September 22, 2004)
Memory
Fragmentation avoidance (November 2, 2005)
More on fragmentation avoidance (November 8, 2005)
VM followup: page migration and fragmentation avoidance (November 15, 2005)
Short topics in memory management (March 6, 2007)
hrtimer
The high-resolution timer API (January 16, 2006)
Clockevents and dyntick (February 21, 2007)
High- (but not too high-) resolution timeouts (September 2, 2008)
Huge pages
Fragmentation avoidance (November 2, 2005)
Application-friendly kernel interfaces (March 26, 2007)
Large pages, large blocks, and large problems (September 19, 2007)
Hyperthreading
Is hyperthreading dangerous? (May 17, 2005)
HZ
Boot-time clock frequency selection (December 14, 2004)
How fast should HZ be? (August 2, 2005)
ia32e
Intel's new 64-bit architecture and Linux (February 25, 2004)
idr
idr - integer ID management (September 22, 2004)
in_atomic()
Atomic context and kernel API design (March 25, 2008)
Include files
Kernel headers and user space (November 30, 2004)
indirect()
sys_indirect() (November 19, 2007)
System call updates: indirect(), timerfd(), and hijack() (November 28, 2007)
Extending system calls (May 14, 2008)
InfiniBand
InfiniBand: a proprietary standard? (October 13, 2004)
InfiniBand arrives (November 23, 2004)
initramfs
Initramfs arrives (November 6, 2002)
initramfs and where user space truly begins (July 11, 2006)
Inline functions
The cost of inline functions (April 28, 2004)
Drawing the line on inline (January 3, 2006)
Inotify
Recent patches of interest (August 4, 2004)
Watching filesystem events with inotify (September 29, 2004)
Integrity measurement architecture
The Integrity Measurement Architecture (May 24, 2005)
OLS: Linux and trusted computing (July 22, 2005)
Some trusted computing security modules (November 15, 2005)
Integrity management in the kernel (March 28, 2007)
Interactivity
The staircase scheduler (June 2, 2004)
Solving starvation problems in the scheduler (March 22, 2006)
The Rotating Staircase Deadline Scheduler (March 6, 2007)
RSDL hits a snag (March 14, 2007)
Schedulers: the plot thickens (April 17, 2007)
This week in the scheduling discussion (April 24, 2007)
InterMezzo
Goodbye to old code (May 19, 2004)
Internet protocol
On the alignment of IP packets (June 15, 2004)
Interrupts
Voluntary preemption and hardware interrupts (July 27, 2004)
Approaches to realtime Linux (October 12, 2004)
Handling interrupts in user space (March 15, 2005)
The dynamic tick patch (June 7, 2005)
Realtime and interrupt latency (June 14, 2005)
NAPI performance - a weighty matter (June 15, 2005)
A new generic IRQ layer (May 23, 2006)
API changes: interrupt handlers and vectored I/O (October 2, 2006)
Various topics, all related to interrupts (October 24, 2007)
KS2008: All about threads (September 17, 2008)
Moving interrupts to threads (October 8, 2008)
I/O AT
Memory copies in hardware (December 6, 2005)
ioctl()
The Big Kernel Lock lives on (May 26, 2004)
ioctl(), the big kernel lock, and 32-bit compatibility (December 14, 2004)
The new way of ioctl() (January 18, 2005)
Kernel Summit 2006: The ioctl() interface (July 17, 2006)
__iomem
A new I/O memory access mechanism (September 15, 2004)
I/O memory
A new I/O memory access mechanism (September 15, 2004)
I/O space write barriers (September 22, 2004)
Big-endian I/O memory (April 19, 2005)
64-bit resources (June 13, 2006)
Device resource management (January 2, 2007)
IOMMU
Kernel Summit 2006: DMA and IOMMU issues (July 19, 2006)
io_remap_page_range()
API changes under consideration (August 24, 2004)
io_remap_pfn_range()
io_remap_pfn_range() (March 29, 2005)
I/O scheduler
Modular, switchable I/O schedulers (September 21, 2004)
Coming in 2.6.10 (October 20, 2004)
Into the ABISS (November 9, 2004)
Which is the fairest I/O scheduler of them all? (December 8, 2004)
ipchains
Goodbye, old code (September 22, 2004)
IPv6
Kernel Summit: Network summit summary (July 21, 2004)
irqd
Voluntary preemption and hardware interrupts (July 27, 2004)
iSCSI
Network block devices and OOM safety (March 30, 2005)
JFS
The kernel and character set encodings (February 18, 2004)
Kernel build system
Shrinking the kernel with gcc (January 21, 2004)
Building external modules (April 13, 2004)
Separating kernel source and object files (June 23, 2004)
The end of gcc 2.95 support (December 13, 2005)
Some patches of interest (February 28, 2006)
Kernel Hacker's Bookshelf
The Kernel Hacker's Bookshelf: Ultimate Physical Limits of Computation (June 18, 2008)
The Kernel Hacker's Bookshelf: UNIX Internals (September 3, 2008)
Kernel markers
Kernel markers (August 15, 2007)
Kernel markers and binary-only modules (March 24, 2008)
Kernel Summit
The 2004 Kernel Summit (July 21, 2004)
The 2005 Linux Kernel Developers' Summit (July 18, 2005)
The 2006 Linux Kernel Summit (July 17, 2006)
Kernel Summit 2007 - an advance view (August 24, 2007)
The 2007 Kernel Summit (September 6, 2007)
The 2008 Linux Kernel Summit (September 15, 2008)
Kernel threads
Kernel threads made easy (January 6, 2004)
Too many threads (April 10, 2007)
Ketchup
Ketchup with that? (April 28, 2004)
Kevent
The kevent interface (February 22, 2006)
Implementing network channels (May 1, 2006)
OLS: A proposal for a new networking API (July 22, 2006)
Toward a kernel events interface (August 1, 2006)
Kevents and review of new APIs (August 23, 2006)
This week's version of the kevent interface (November 7, 2006)
Kevent take 26 (December 11, 2006)
Kernel events without kevents (March 13, 2007)
The return of kevent? (May 8, 2007)
The return of syslets (May 30, 2007)
Kexec
Kernel Summit: kexec and fast booting (July 21, 2004)
Crash dumps with kexec (October 27, 2004)
Kernel Summit 2005: RAS tools (July 19, 2005)
Yet another approach to software suspend (July 18, 2007)
kfifo
Coming in 2.6.10 (October 20, 2004)
kgdb
Bringing kgdb into 2.6 (February 10, 2004)
kgdb getting closer to being merged? (February 20, 2008)
klibc
initramfs and where user space truly begins (July 11, 2006)
Kernel Summit 2006: The user-space API (July 17, 2006)
klist
Device model changes in store (March 22, 2005)
A pair of klist API changes (September 7, 2005)
kmap_atomic()
On not getting burned by kmap_atomic() (November 16, 2004)
kobject_hotplug()
Use in kernel events layer
Figuring out kernel event reporting (September 8, 2004)
KProbes
Tracing infrastructures (September 19, 2006)
kref
The debut of kref (March 16, 2004)
RCU-safe reference counting (July 14, 2004)
Ksplice
Ksplice: kernel patches without reboots (April 29, 2008)
Kswapd
Kswapd and high-order allocations (September 8, 2004)
KVM
Patch summary: regulatory domains, network channels, and virtualization (October 25, 2006)
Some KVM developments (January 9, 2007)
KVM 15 (February 26, 2007)
Memory management notifiers (January 23, 2008)
kzalloc()
kzalloc() (August 10, 2005)
Laptop mode
Laptop mode for 2.6 (January 7, 2004)
Large-memory systems
The merging of anon_vma and 4G/4G (May 26, 2004)
Four-level page tables (October 12, 2004)
Rethinking four-level page tables (December 22, 2004)
Four-level page tables merged (January 4, 2005)
Latency
Addressing latency problems in 2.6 (July 14, 2004)
Voluntary preemption and hardware interrupts (July 27, 2004)
Update from the latency front (August 18, 2004)
The Big Kernel Semaphore? (September 15, 2004)
Approaches to realtime Linux (October 12, 2004)
Realtime preemption, part 2 (October 20, 2004)
Boot-time clock frequency selection (December 14, 2004)
Merging the realtime security module (January 11, 2005)
Low latency for audio applications (January 26, 2005)
Audio latency goes full circle (February 8, 2005)
Realtime preemption and read-copy-update (March 29, 2005)
Audio latency - resource limits win (May 3, 2005)
The beginning of the realtime preemption debate (June 1, 2005)
Realtime and interrupt latency (June 14, 2005)
An API for specifying latency constraints (August 28, 2006)
KS2007: The customer panel (September 8, 2007)
Finding system latency with LatencyTOP (January 23, 2008)
The big kernel lock strikes again (May 13, 2008)
Lguest
An introduction to lguest (January 23, 2007)
libata
Big block transfers: good or bad? (March 29, 2004)
Parallel IDE drivers (September 5, 2006)
likely()
How likely should likely() be? (February 10, 2004)
Briefly: patch quality, CKRM, likely(), and vmsplice() (May 3, 2006)
linux-next
linux-next and patch management process (February 13, 2008)
A day in the life of linux-next (June 23, 2008)
The current development kernel is...linux-next? (July 8, 2008)
Linux-next meets the merge window (July 23, 2008)
llseek()
Safe seeks (August 10, 2004)
local_t
The search for fast, scalable counters (January 31, 2006)
lock_kernel()
The Big Kernel Lock lives on (May 26, 2004)
The big kernel lock strikes again (May 13, 2008)
Kill BKL Vol. 2 (May 21, 2008)
Lockless page cache
The lockless page cache (July 29, 2008)
LogFS
LogFS (May 15, 2007)
Loopback device
Partitioned loopback devices (November 10, 2004)
Lumpy reclaim
Avoiding - and fixing - memory fragmentation (November 28, 2006)
Lustre
Should the Lustre preparation patches go in? (June 9, 2004)
Magic groups
Magic groups in 2.6 (May 11, 2004)
Memory barriers
Memory-mapped I/O barriers (September 10, 2006)
Memory management
Time to thrash the 2.6 VM? (March 3, 2004)
VM changes in 2.6.6 (April 14, 2004)
Improving page fault scalability (December 7, 2004)
Faster page faulting through prezeroing (January 5, 2005)
Useful gadget: /proc/page_owner (February 1, 2005)
Flushing the page cache from user space (February 22, 2005)
Supporting RDMA on Linux (April 26, 2005)
Kernel Summit 2005: Virtual memory topics (July 18, 2005)
Kernel Summit 2005: Convergence of network and storage paths (July 19, 2005)
Improving shared memory performance (August 31, 2005)
Adaptive file readahead (October 12, 2005)
Another approach to page table scalability (October 26, 2005)
Tweaks to madvise() and posix_fadvise() (February 14, 2006)
Multi-protection VMAs (May 8, 2006)
A gnarly 2.6.19 file corruption bug (December 20, 2006)
Short topics in memory management (March 6, 2007)
The SLUB allocator (April 11, 2007)
ELC: How much memory are applications really using? (April 18, 2007)
Large block size support (May 2, 2007)
On-demand readahead (May 21, 2007)
Controlling memory use in containers (July 31, 2007)
KS2007: Memory management (September 10, 2007)
Some snags for SLUB (December 28, 2007)
Toward better direct I/O scalability (March 31, 2008)
The lockless page cache (July 29, 2008)
Four-level page tables
Four-level page tables (October 12, 2004)
Rethinking four-level page tables (December 22, 2004)
Four-level page tables merged (January 4, 2005)
Internal API
remap_pfn_range() (September 29, 2004)
A proposal for a major memory management rework (March 1, 2005)
Cleaning up some page flags (August 17, 2005)
PG_reserved, VM_RESERVED, and VM_UNPAGED (November 22, 2005)
The evolution of driver page remapping (December 6, 2005)
nopage() and nopfn() (September 20, 2006)
Faulting out populate(), nopfn(), and nopage() (October 10, 2006)
The thorny case of kmalloc(0) (June 5, 2007)
Better per-CPU variables (November 12, 2007)
Large allocations
Kswapd and high-order allocations (September 8, 2004)
Active memory defragmentation (October 5, 2004)
Yet another approach to memory fragmentation (February 1, 2005)
Fragmentation avoidance (November 2, 2005)
More on fragmentation avoidance (November 8, 2005)
VM followup: page migration and fragmentation avoidance (November 15, 2005)
Avoiding - and fixing - memory fragmentation (November 28, 2006)
Large pages, large blocks, and large problems (September 19, 2007)
NUMA systems
Page migration (October 25, 2005)
The 2.6.16 straggler list (January 24, 2006)
Object-based reverse mapping
Virtual Memory I: the problem (March 10, 2004)
Virtual Memory II: the return of objrmap (March 10, 2004)
Reverse mapping anonymous pages - again (March 24, 2004)
The status of object-based reverse mapping (May 19, 2004)
The merging of anon_vma and 4G/4G (May 26, 2004)
Out-of-memory handling
Respite from the OOM killer (September 28, 2004)
Network block devices and OOM safety (March 30, 2005)
Defending against fork bombs (May 3, 2005)
Toward more robust network-based block I/O (August 8, 2005)
The return of network block device deadlock prevention (August 14, 2006)
Avoiding the OOM killer with mem_notify (January 30, 2008)
Page replacement algorithms
Simple resident set size limits (August 10, 2004)
A CLOCK-Pro page replacement implementation (August 16, 2005)
A framework for page replacement policies (March 25, 2006)
Toward improved page replacement (March 20, 2007)
Page replacement for huge memory systems (November 7, 2007)
The state of the pageout scalability patches (June 17, 2008)
Swapping
2.6 swapping behavior (May 5, 2004)
Swap prefetching (September 27, 2005)
Still waiting for swap prefetch (July 25, 2007)
Token-based thrashing control
Token-based thrashing control (August 4, 2004)
Stopping unwanted OOM killer experiences (November 17, 2004)
User-space layout
Reorganizing the address space (June 30, 2004)
Address space randomization in 2.6 (February 2, 2005)
Tangled up in threads (August 19, 2008)
User-space memory locking
Capabilities in 2.6 (April 6, 2004)
Magic groups in 2.6 (May 11, 2004)
Recent patches of interest (August 4, 2004)
Video memory
Memory management for graphics processors (November 6, 2007)
Virtualization
Guest page hinting (September 6, 2006)
Memory management notifiers (January 23, 2008)
Writeout throttling
Predictive per-task write throttling (September 21, 2005)
Smarter write throttling (August 14, 2007)
Writeout throttling (December 11, 2007)
Messages
Getting the message from the kernel (June 19, 2007)
A kernel message catalog (August 4, 2008)
mmiotrace
Tracing memory-mapped I/O operations (February 26, 2008)
mmiowb()
I/O space write barriers (September 22, 2004)
Memory-mapped I/O barriers (September 10, 2006)
MOD_INC_USE_COUNT
Goodbye, old code (September 22, 2004)
module_param()
Module parameters in sysfs (May 18, 2004)
Modules
Module unloading in a reference counted world (January 27, 2004)
Building external modules (April 13, 2004)
Goodbye, old code (September 22, 2004)
MODULE_PARM deprecated (October 20, 2004)
Some patches of interest (February 28, 2006)
Debugging
Debugging kernel modules (June 23, 2004)
Kernel markers and binary-only modules (March 24, 2008)
Exported symbols
The abrupt un-exporting of symbols (January 11, 2005)
Removing exported symbols in a stable kernel (March 1, 2005)
EXPORT_SYMBOL_GPL_FUTURE() (February 13, 2006)
Exported symbols and the internal API (September 11, 2007)
Tightening symbol exports (November 27, 2007)
Licensing
invalidate_page_range() for non-GPL modules (February 18, 2004)
invalidate_mmap_range() again (February 25, 2004)
Being honest with MODULE_LICENSE (April 27, 2004)
Driver core functions: GPL only (September 29, 2004)
On the value of EXPORT_SYMBOL_GPL (October 5, 2005)
Parameters in sysfs
Module parameters in sysfs (May 18, 2004)
Recent patches of interest (August 4, 2004)
Security modules
Stackable security modules (November 10, 2004)
Merging the realtime security module (January 11, 2005)
Complete coverage in Linux security modules (October 3, 2005)
Kernel Summit 2006: Security (July 18, 2006)
Smack for simplified access control (August 8, 2007)
The return of authoritative hooks (March 18, 2008)
TOMOYO Linux and pathname-based security (April 14, 2008)
Signed
Cryptographic signatures on kernel modules (July 7, 2004)
Kernel Summit: Security (July 21, 2004)
Multipath I/O
Kernel Summit: Multipath I/O (July 21, 2004)
Multipath support in the device mapper (February 23, 2005)
Some block layer patches (October 26, 2005)
__must_check
Return values, warnings, and error situations (October 17, 2006)
Mutex
Reworking the semaphore interface (December 14, 2005)
Semaphores and mutexes (December 20, 2005)
Goodbye semaphores? (January 3, 2006)
The mutex API (January 10, 2006)
Priority inheritance in the kernel (April 3, 2006)
Named streams
More notes on reiser4 (September 1, 2004)
Namespaces
FUSE and private namespaces (April 27, 2005)
A system call for unsharing (May 10, 2005)
Shared subtrees (November 8, 2005)
Sysfs and namespaces (August 26, 2008)
NAPI
NAPI performance - a weighty matter (June 15, 2005)
Reworking NAPI (December 18, 2006)
Newer, newer NAPI (August 7, 2007)
NDISwrapper
4K stacks for everyone? (September 6, 2005)
4K stacks - again (November 15, 2005)
GPL-only symbols and ndiswrapper (October 25, 2006)
NDISwrapper dodges another bullet (March 5, 2008)
Netfilter
Goodbye, old code (September 22, 2004)
Proceedings of Netfilter Developer Workshop 2004 (September 26, 2004)
N