|
Kernel index
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 7, 2005)
4K stacks - again (November 15, 2005)
4K stacks by default? (April 23, 2008)
ABISS
Into the ABISS (November 9, 2004)
ACCESS_ONCE()
ACCESS_ONCE() (August 1, 2012)
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)
The ACPI processor aggregator driver (October 7, 2009)
The cpuidle subsystem (April 26, 2010)
Idling ACPI idle (June 1, 2010)
Adore root kit
A new Adore root kit (March 17, 2004)
AdvFS
What's AdvFS good for? (June 25, 2008)
AlacrityVM
AlacrityVM (August 5, 2009)
Two that didn't make it (December 22, 2009)
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)
Android
Wakelocks and the embedded problem (February 10, 2009)
From wakelocks to a real solution (February 18, 2009)
Fishy business (March 3, 2010)
Suspend block (April 28, 2010)
Blocking suspend blockers (May 18, 2010)
Suspend blocker suspense (May 26, 2010)
What comes after suspend blockers (June 1, 2010)
This week's episode of "Desperate Androids" (June 7, 2010)
Another wakeup event mechanism (June 23, 2010)
An alternative to suspend blockers (November 24, 2010)
A new approach to opportunistic suspend (September 27, 2011)
Yet another opportunity for opportunistic suspend (October 18, 2011)
KS2011: Patch review (October 24, 2011)
Bringing Android closer to the mainline (December 20, 2011)
Autosleep and wake locks (February 7, 2012)
The Android mainlining interest group meeting: a report (February 28, 2012)
Finding the right evolutionary niche (April 11, 2012)
KS2012: Status of Android upstreaming (September 5, 2012)
LC-Asia: An Android upstreaming update (March 12, 2013)
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)
The case of the overly anonymous anon_vma (April 13, 2010)
AppArmor
The AppArmor debate begins (April 26, 2006)
Kernel Summit 2006: Security (July 19, 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)
UKUUG: The right way to port Linux (November 19, 2008)
System calls and 64-bit architectures (December 17, 2008)
ARM and defconfig files (June 16, 2010)
Little-endian PowerPC (October 6, 2010)
Upcoming DSP architectures (September 7, 2011)
LPC: Coping with hardware diversity (September 14, 2011)
ARM
ARM's multiply-mapped memory mess (October 12, 2010)
ARM wrestling (April 6, 2011)
Rationalizing the ARM tree (April 19, 2011)
ARM kernel consolidation (May 18, 2011)
Reworking the DMA mapping code (especially on ARM) (November 16, 2011)
Irked by NO_IRQ (December 7, 2011)
Linux support for ARM big.LITTLE (February 15, 2012)
Supporting multi-platform ARM kernels (May 9, 2012)
A big.LITTLE scheduler update (June 12, 2012)
LinuxCon Japan: One zImage to rule them all (June 13, 2012)
Supporting 64-bit ARM systems (July 10, 2012)
Multi-cluster power management (February 20, 2013)
ELC: In-kernel switcher for big.LITTLE (February 27, 2013)
LC-Asia: A big LITTLE MP update (March 6, 2013)
Asymmetric multiprocessing
Dealing with complexity: power domains and asymmetric multiprocessing (June 29, 2011)
Asynchronous function calls
An asynchronous function call infrastructure (January 13, 2009)
Deadlocking the system with asynchronous functions (January 16, 2013)
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)
LCA: A new approach to asynchronous I/O (January 27, 2009)
Atomic spinlocks
The realtime preemption endgame (August 5, 2009)
The realtime preemption mini-summit (September 28, 2009)
atomic_t
No more 24-bit atomic_t (February 18, 2004)
The search for fast, scalable counters (February 1, 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 3, 2004)
Beancounters
Resource beancounters (August 29, 2006)
Benchmarking
Automated kernel testing (June 8, 2005)
Tracking tbench troubles (October 29, 2008)
Berkeley Packet Filter
A JIT for packet filters (April 12, 2011)
Yet another new approach to seccomp (January 11, 2012)
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 15, 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)
The BKL end game (March 30, 2010)
Might 2.6.35 be BKL-free? (April 27, 2010)
BKL-free in 2.6.37 (maybe) (September 20, 2010)
Shielding driver authors from locking (October 20, 2010)
KS2010: Lightning talks (November 2, 2010)
The real BKL end game (January 26, 2011)
big.LITTLE
Linux support for ARM big.LITTLE (February 15, 2012)
A big.LITTLE scheduler update (June 12, 2012)
KS2012: ARM: A big.LITTLE update (September 5, 2012)
A report from the first Korea Linux Forum (October 16, 2012)
Multi-cluster power management (February 20, 2013)
ELC: In-kernel switcher for big.LITTLE (February 27, 2013)
LC-Asia: A big LITTLE MP update (March 6, 2013)
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)
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 20, 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)
A superficial introduction to fsblock (March 11, 2009)
Flushing out pdflush (April 1, 2009)
Linux Storage and Filesystem workshop, day 1 (April 7, 2009)
Linux Storage and Filesystem Workshop, day 2 (April 8, 2009)
DRBD: a distributed block device (April 22, 2009)
Interrupt mitigation in the block layer (August 10, 2009)
Page-based direct I/O (August 25, 2009)
In defense of per-BDI writeback (September 30, 2009)
Bcache: Caching beyond just RAM (July 2, 2010)
The 2010 Linux Storage and Filesystem Summit, day 1 (August 9, 2010)
The 2010 Linux Storage and Filesystem Summit, day 2 (August 10, 2010)
The end of block barriers (August 18, 2010)
Solid-state storage devices and the block layer (October 4, 2010)
Notes from the block layer (February 22, 2011)
Linux Filesystem, Storage, and Memory Management Summit, Day 1 (April 5, 2011)
Future storage technologies and Linux (April 6, 2011)
Linux Filesystem, Storage, and Memory Management Summit, Day 2 (April 6, 2011)
A bcache update (May 14, 2012)
Supporting block I/O contexts (June 18, 2012)
Asynchronous block loop I/O (January 30, 2013)
LSFMM: I/O hints (April 24, 2013)
LSFMM: Copy offload (April 24, 2013)
4K physical sectors
Linux and 4K disk sectors (March 11, 2009)
4K-sector drives and Linux (March 9, 2010)
Block drivers
Cleaning up the block driver API (August 28, 2007)
A new block request completion API (January 29, 2008)
How to use a terabyte of RAM (March 12, 2008)
Block layer: solid-state storage, timeouts, affinity, and more (October 15, 2008)
Block layer request queue API changes (May 18, 2009)
Reworking disk events handling (January 19, 2011)
Discard operations
Block layer discard requests (August 12, 2008)
The trouble with discard (August 18, 2009)
The best way to throw blocks away (December 1, 2010)
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)
Variations on fair I/O schedulers (December 3, 2008)
Which I/O controller is the fairest of them all? (May 12, 2009)
The block I/O controller (November 7, 2009)
Hierarchical group I/O scheduling (February 15, 2011)
An IOPS-based I/O scheduler (January 4, 2012)
KS2012: memcg/mm: Proportional I/O controller (September 17, 2012)
Object storage devices
Linux and object storage devices (November 4, 2008)
Plugging
No more global unplugging (March 10, 2004)
Explicit block device plugging (April 13, 2011)
What happened to disk performance in 2.6.39 (January 31, 2012)
RAID
Journal-guided RAID resync (November 24, 2009)
DM and MD come a little closer (April 20, 2010)
The MD roadmap (February 16, 2011)
Another kernel RAID5 implementation (October 18, 2011)
Books
Linux Kernel Development, Second Edition (March 9, 2005)
Linux Device Drivers, Third Edition now online (March 15, 2005)
The Linux Kernel Primer (October 5, 2005)
Understanding the Linux Kernel, 3rd Edition (November 22, 2005)
Review: Understanding Linux Network Internals (January 24, 2006)
Book Review: User Mode Linux (May 16, 2006)
Review: Linux Kernel in a Nutshell (February 7, 2007)
Book review: Linux System Programming (December 5, 2007)
Book review: Linux Kernel Development, third edition (December 15, 2010)
Review: The Linux Programming Interface (January 19, 2011)
Bootstrap process
initramfs and where user space truly begins (July 11, 2006)
LPC: Booting Linux in five seconds (September 22, 2008)
Tracking down a "runaway loop" (December 10, 2008)
An asynchronous function call infrastructure (January 13, 2009)
USB and fast booting (April 29, 2009)
Broadcom 43xx
bcm43xx and the 802.11 stack (December 6, 2005)
How not to handle a licensing violation (April 11, 2007)
Broadcom's wireless drivers, one year later (August 29, 2011)
Btrfs
btrfs and NILFS (June 19, 2007)
A better btrfs (January 15, 2008)
Btrfs aims for the mainline (January 7, 2009)
A short history of btrfs (July 22, 2009)
JLS2009: A Btrfs update (October 27, 2009)
Supporting transactions in btrfs (November 11, 2009)
Btrfs: broken by design? (June 22, 2010)
Data temperature in Btrfs (August 3, 2010)
Whither btrfsck? (October 11, 2011)
A btrfs update at LinuxCon Europe (November 2, 2011)
Atime and btrfs: a bad combination? (May 31, 2012)
Btrfs send/receive (July 11, 2012)
VFS hot-data tracking (November 20, 2012)
Budget fair queuing scheduler
Variations on fair I/O schedulers (December 3, 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)
Capabilities for loading network modules (March 2, 2011)
CAP_SYS_ADMIN: the new root (March 14, 2012)
The trouble with CAP_SYS_RAWIO (March 13, 2013)
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)
Variations on fair I/O schedulers (December 3, 2008)
Changelogs
In search of the perfect changelog (April 22, 2009)
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)
Checkpoint/restart tries to head towards the mainline (February 25, 2009)
clone_with_pids() (August 12, 2009)
eclone() (November 18, 2009)
A Checkpoint/restart update (February 24, 2010)
KS2010: Checkpoint/restart (November 2, 2010)
Checkpoint/restart: it's complicated (November 9, 2010)
Checkpoint/restart (mostly) in user space (July 19, 2011)
TCP connection hijacking and parasites - as a good thing (August 9, 2011)
Preparing for user-space checkpoint/restore (January 31, 2012)
TCP connection repair (May 1, 2012)
LCE: Checkpoint/restore in user space: are we there yet? (November 20, 2012)
Checkpoint/restore and signals (January 9, 2013)
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)
Clocks
A common clock framework (December 21, 2011)
Clusters
Clusters and distributed lock management (May 18, 2005)
Kernel Summit 2005: Clustering (July 20, 2005)
DRBD: a distributed block device (April 22, 2009)
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)
New NFS to bring parallel storage to the masses (January 21, 2009)
A look inside the OCFS2 filesystem (September 1, 2010)
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 9, 2007)
Completely fair scheduler
CFS group scheduling (July 2, 2007)
Fair user scheduling and other scheduler patches (October 16, 2007)
Variations on fair I/O schedulers (December 3, 2008)
Improving scheduler latency (September 14, 2010)
TTY-based group scheduling (November 17, 2010)
CFS bandwidth control (February 16, 2011)
A group scheduling demonstration (March 16, 2011)
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)
The CHOKe packet scheduler (January 11, 2011)
LPC: Making the net go faster (September 13, 2011)
The CoDel queue management algorithm (May 9, 2012)
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)
Checkpoint/restart tries to head towards the mainline (February 25, 2009)
Which I/O controller is the fairest of them all? (May 12, 2009)
clone_with_pids() (August 12, 2009)
A Checkpoint/restart update (February 24, 2010)
Divorcing namespaces from processes (March 3, 2010)
Namespace file descriptors (September 29, 2010)
Mob rule for dentries (May 4, 2011)
Checkpoint/restart (mostly) in user space (July 19, 2011)
Running distributions in containers (October 12, 2011)
A new approach to user namespaces (April 10, 2012)
TCP connection repair (May 1, 2012)
LCE: The failure of operating systems and how we can fix it (November 14, 2012)
Namespaces in operation, part 1: namespaces overview (January 4, 2013)
Control groups
Integrating memory control groups (May 17, 2011)
LPC: Control groups (September 20, 2011)
Timer slack for slacker developers (October 17, 2011)
Limiting system calls via control groups? (October 19, 2011)
KS2011: Coming to love control groups (October 24, 2011)
Per-cgroup TCP buffer limits (December 6, 2011)
Fixing control groups (February 28, 2012)
Two approaches to kernel memory usage accounting (March 7, 2012)
A proposed plan for control groups (March 14, 2012)
KS2012: memcg/mm: Improving kernel-memory accounting for memory cgroups (September 17, 2012)
Throwing one away (September 19, 2012)
The mempressure control group proposal (January 3, 2013)
LSFMM: Soft reclaim (April 23, 2013)
Coprocessors
LSFMM: Coprocessors, exit times, and volatile ranges, and more (April 23, 2013)
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)
Relicensing tracepoints and markers (November 4, 2009)
The trouble with firmware (January 5, 2011)
Bounding GPL compliance times (February 9, 2011)
dma-buf and binary-only modules (February 22, 2012)
copy_*_user()
Proposed return value change
API changes under consideration (August 24, 2004)
COW links
COW Links (March 29, 2004)
cpufreq
Fixing the ondemand governor (April 20, 2010)
CPUhog
Who let the hogs out? (March 16, 2010)
Crash dumps
Diskdump: a new crash dump system (June 2, 2004)
Crash dumps with kexec (October 27, 2004)
Software suspend - again (February 6, 2006)
Persistent storage for a kernel's "dying breath" (March 23, 2011)
Credentials
Credential records (September 25, 2007)
Cryptography
Cryptographic signatures on kernel modules (July 7, 2004)
Asynchronous crypto (November 3, 2004)
An API for user-space access to kernel cryptography (August 25, 2010)
Trusted and encrypted keys (October 6, 2010)
A netlink-based user-space crypto API (October 20, 2010)
Cryptoloop
A weak cryptoloop implementation in Linux? (January 21, 2004)
Customer panel
Kernel Summit: The customer panel (July 21, 2004)
Data integrity
Ext3 and RAID: silent data killers? (August 31, 2009)
Notes from the block layer (February 22, 2011)
Stable pages (May 11, 2011)
Ensuring data reaches disk (September 7, 2011)
Optimizing stable pages (December 5, 2012)
LSFMM: Storage data integrity (April 24, 2013)
D-Bus
Fast interprocess messaging (September 15, 2010)
Speeding up D-Bus (February 29, 2012)
Missing the AF_BUS (July 3, 2012)
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)
An updated guide to debugfs (May 25, 2009)
Hw-breakpoint: shared debugging registers (September 16, 2009)
Merging kdb and kgdb (February 17, 2010)
Persistent storage for a kernel's "dying breath" (March 23, 2011)
The dynamic debugging interface (March 22, 2011)
Displaying QR codes for kernel crashes (June 27, 2012)
Delay accounting
Some patches of interest (February 28, 2006)
del_timer()
Deleting timers quickly (May 12, 2004)
Dentry cache
Dcache scalability and RCU-walk (December 14, 2010)
Dcache scalability and security modules (April 27, 2011)
Mob rule for dentries (May 4, 2011)
How to ruin Linus's vacation (July 19, 2011)
A VFS deadlock post-mortem (April 3, 2013)
Desktop support
Kernel Summit 2005: The Kernel and the Linux desktop (July 20, 2005)
Development model
Linus merges up a storm (April 14, 2004)
Kernel Summit: Development process (July 21, 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 5, 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 18, 2006)
Kernel Summit 2006: Development process II (July 19, 2006)
Old kernels and new compilers (August 21, 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)
Getting the right kind of contributions (May 28, 2008)
Andrew Morton on kernel development (June 11, 2008)
KS2008: Linux 3.0 (September 16, 2008)
Btrfs to the mainline? (October 8, 2008)
An open letter to Evgeniy Polyakov (November 25, 2008)
On the management of the Video4Linux subsystem tree (February 24, 2009)
TuxOnIce: in from the cold? (May 13, 2009)
Communicating requirements to kernel developers (July 14, 2009)
Fault injection and unexpected requirement injection (December 2, 2009)
Redesigning asynchronous suspend/resume (December 16, 2009)
Two that didn't make it (December 22, 2009)
After the merge window closed... (March 16, 2010)
KVM, QEMU, and kernel project management (March 23, 2010)
A suspend blockers post-mortem (June 2, 2010)
ARM and defconfig files (June 16, 2010)
On the scalability of Linus (July 2, 2010)
A new combined tree for storage subsystems (September 15, 2010)
ARM's multiply-mapped memory mess (October 12, 2010)
KS2010: Big out-of-tree projects (November 2, 2010)
KS2010: Development process (November 3, 2010)
ARM wrestling (April 6, 2011)
Rationalizing the ARM tree (April 19, 2011)
The platform problem (May 18, 2011)
Android, forking, and control (June 6, 2011)
Avoiding the OS abstraction trap (August 12, 2011)
On multi-platform drivers (September 7, 2011)
Finding the right evolutionary niche (April 11, 2012)
LinuxCon Japan: Making kernel developers less grumpy (June 6, 2012)
Code review
Where have all the reviewers gone? (September 11, 2006)
A critical look at sysfs attribute values (March 17, 2010)
KS2011: Patch review (October 24, 2011)
Community
ELC: Morton and Saxena on working with the kernel community (April 21, 2008)
KS2010: Welcoming newcomers (November 2, 2010)
Contributor statistics
Who wrote 2.6.20? (February 21, 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)
How patches get into the mainline (February 10, 2009)
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 16, 2008)
Moving the -staging tree (October 1, 2008)
The sad story of the em28xx driver (November 11, 2008)
News from the staging tree (September 9, 2009)
On the driver life cycle (October 13, 2009)
Kernel support for infrared receivers (December 2, 2009)
Broadcom's wireless drivers, one year later (August 29, 2011)
Vtunerc and software acceptance politics (December 14, 2011)
Enterprise kernels
Kernel competition in the enterprise space (March 14, 2012)
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 20, 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 6, 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 16, 2008)
Tracking of testers and bug reporters - a status report (November 11, 2008)
A tempest in a tty pot (July 29, 2009)
KS2009: Regressions (October 19, 2009)
KS2010: Regressions (November 2, 2010)
KS2010: Performance regressions (November 2, 2010)
A more detailed look at kernel regressions (November 10, 2010)
KS2011: Preemption disable and verifiable APIs (October 24, 2011)
Drivers as documentation (November 22, 2011)
Testing for kernel performance regressions (August 3, 2012)
Removing uninitialized_var() (December 19, 2012)
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)
KS2009: Staging, linux-next, and the development process (October 21, 2009)
Bypassing linux-next (January 19, 2011)
KS2012: Improving development processes: linux-next (September 12, 2012)
Loadable modules
The abrupt un-exporting of symbols (January 12, 2005)
Exported symbols and the internal API (September 11, 2007)
Tightening symbol exports (November 27, 2007)
Patch review
Uninitialized blocks and unexpected flags (November 28, 2012)
A FALLOC_FL_NO_HIDE_STALE followup (December 5, 2012)
Patterns
Linux kernel design patterns - part 1 (June 8, 2009)
Linux kernel design patterns - part 2 (June 12, 2009)
Linux kernel design patterns - part 3 (June 22, 2009)
Ghosts of Unix Past: a historical search for design patterns (October 27, 2010)
Object-oriented design patterns in the kernel, part 1 (June 1, 2011)
Object-oriented design patterns in the kernel, part 2 (June 7, 2011)
Security issues
Handling kernel security problems (July 16, 2008)
debugfs: rules not welcome (February 22, 2011)
Stable tree
Some numbers and thoughts on the stable kernels (August 27, 2010)
Further notes on stable kernels (September 8, 2010)
Maintaining a stable kernel on an unstable base (September 29, 2010)
A long-term support initiative update (February 29, 2012)
The value of release bureaucracy (April 17, 2012)
KS2012: Stable kernel management (September 12, 2012)
User-space API
Sysfs and a stable kernel ABI (February 22, 2006)
ABI stability documentation (February 28, 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 6, 2007)
Process IDs in a multi-namespace world (November 6, 2007)
Debugfs and the making of a stable ABI (December 3, 2008)
Removing binary sysctl (November 11, 2009)
Extended error reporting (February 17, 2010)
Nouveau and interface compatibility (March 10, 2010)
The ghost of sysfs past (July 21, 2010)
Statistics and tracepoints (August 24, 2010)
KS2010: ABI status for tracepoints (November 2, 2010)
KS2010: A staging process for ABIs (November 2, 2010)
The media controller subsystem (November 16, 2010)
The kernel and the C library as a single project (November 30, 2010)
Ftrace, perf, and the tracing ABI (May 11, 2011)
-EWHICHERROR? (June 29, 2011)
The udev tail wags the dog (August 24, 2011)
Hardware face detection (November 29, 2011)
System call filtering and no_new_privs (January 18, 2012)
Short sleeps suffering from slack (February 17, 2012)
A sys_poll() ABI tweak (February 22, 2012)
Fixing the unfixable autofs ABI (April 30, 2012)
Removing four bytes from the kernel ABI (May 23, 2012)
msync() and subtle behavioral tweaks (June 19, 2012)
Virtualization and the perf ABI (December 19, 2012)
Glibc and the kernel user-space API (January 30, 2013)
Version numbers
Linux 3.0? (September 3, 2008)
2.6.x-rc0 (October 7, 2009)
Development tools
Ketchup with that? (April 28, 2004)
Automated kernel testing (June 8, 2005)
The end of gcc 2.95 support (December 13, 2005)
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)
Using Promela and Spin to verify parallel algorithms (August 1, 2007)
Who maintains this file? (August 21, 2007)
KS2008: Development tools (September 16, 2008)
Who is the best inliner of all? (January 14, 2009)
Poke-a-hole and friends (June 10, 2009)
Finding buffer overflows with Parfait (July 29, 2009)
Hw-breakpoint: shared debugging registers (September 16, 2009)
A module for crashing the kernel (January 26, 2010)
Undertaker 1.0 (February 1, 2011)
The dynamic debugging interface (March 22, 2011)
LFCS: Building the kernel with Clang (May 4, 2011)
Better kernels with GCC plugins (October 5, 2011)
KS2011: Scheduler testing (October 24, 2011)
Validating Memory Barriers and Atomic Instructions (December 6, 2011)
Trusting the hardware too much (February 15, 2012)
Linsched for 3.3 (March 21, 2012)
Coccinelle
Semantic patching with Coccinelle (January 20, 2009)
Evolutionary development of a semantic patch using Coccinelle (March 30, 2010)
KS2010: Lightning talks (November 2, 2010)
Git
The guts of git (April 12, 2005)
A very quick guide to starting with git (April 20, 2005)
A couple of graphical git front ends (July 4, 2005)
Rebasing and merging: some git best practices (April 14, 2009)
Finding a patch's kernel version with git (June 16, 2010)
Infrastructure
A kernel.org update (July 22, 2009)
KS2010: Kernel.org update (November 3, 2010)
Kernel development without kernel.org (September 13, 2011)
Where's that tree? (September 21, 2011)
The forest on the move (September 28, 2011)
Kernel.org's road to recovery (October 4, 2011)
KS2011: Kernel.org report (October 24, 2011)
Kernel debugging
The kernel lock validator (May 31, 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)
Netoops (November 10, 2010)
Displaying QR codes for kernel crashes (June 27, 2012)
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)
On the value of static tracepoints (April 28, 2009)
Dynamic probes with ftrace (July 28, 2009)
Fun with tracepoints (August 12, 2009)
TRACE_EVENT_ABI (September 30, 2009)
Debugging the kernel using Ftrace - part 1 (December 9, 2009)
Debugging the kernel using Ftrace - part 2 (December 22, 2009)
Using the TRACE_EVENT() macro (Part 1) (March 24, 2010)
Using the TRACE_EVENT() macro (Part 2) (March 31, 2010)
Using the TRACE_EVENT() macro (Part 3) (April 21, 2010)
ELC: Using LTTng (April 21, 2010)
One ring buffer to rule them all? (May 26, 2010)
trace-cmd: A front-end for Ftrace (October 20, 2010)
Conditional tracepoints (November 30, 2010)
Using KernelShark to analyze the real-time scheduler (February 2, 2011)
Ftrace, perf, and the tracing ABI (May 11, 2011)
LTTng rejection, next generation (December 14, 2011)
LTTng 2.0: Tracing for power users and developers - part 1 (April 11, 2012)
LTTng 2.0: Tracing for power users and developers - part 2 (April 18, 2012)
KS2012: Improving tracing and debugging (September 12, 2012)
kgdb
kgdb getting closer to being merged? (February 20, 2008)
Merging kdb and kgdb (February 17, 2010)
mmiotrace
Tracing memory-mapped I/O operations (February 26, 2008)
MMTests
Testing for kernel performance regressions (August 3, 2012)
Trinity
KS2012: Regression testing (August 30, 2012)
LCA: The Trinity fuzz tester (February 6, 2013)
devfs
The end of the devfs story (June 13, 2005)
The return of devfs (May 6, 2009)
Device drivers
Generic DMA pools (February 3, 2004)
The end of init_etherdev() and friends (March 2, 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)
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)
Device drivers and non-disclosure agreements (October 9, 2006)
KS2007: Hardware support and the i386/x86_64 merger (September 6, 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)
UKUUG: Arnd Bergmann on interconnecting with PCIe (November 19, 2008)
Kernel support for infrared receivers (December 2, 2009)
LCA: Graphics driver ponies (January 26, 2010)
The USB composite framework (July 14, 2010)
Shielding driver authors from locking (October 20, 2010)
Deferred driver probing (July 7, 2011)
The pin control subsystem (November 22, 2011)
Block drivers
Cleaning up the block driver API (August 28, 2007)
A new block request completion API (January 29, 2008)
Block layer discard requests (August 12, 2008)
Block layer: solid-state storage, timeouts, affinity, and more (October 15, 2008)
Linux and 4K disk sectors (March 11, 2009)
Reworking disk events handling (January 19, 2011)
Firmware loading
Firmware loading and suspend/resume (August 15, 2012)
Udev and firmware (October 10, 2012)
Graphics
A line in the sand for graphics drivers (July 5, 2010)
Toward a unified display driver framework (September 20, 2011)
Industrial I/O
Ambient light sensors (June 2, 2010)
(Partially) graduating IIO (November 2, 2011)
Input
LCA: Rationalizing the wacom driver (February 1, 2011)
In user space
User-space device drivers (January 20, 2004)
Handling interrupts in user space (March 15, 2005)
Support for drivers in user space (September 4, 2006)
UIO: user-space drivers (May 2, 2007)
Character devices in user space (November 25, 2008)
Safe device assignment with VFIO (January 3, 2012)
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)
Char devices for network interfaces (October 14, 2009)
Nouveau
LCA: The state of the Nouveau project (January 17, 2007)
KS2009: Staging, linux-next, and the development process (October 21, 2009)
The abrupt merging of Nouveau (December 15, 2009)
Nouveau and interface compatibility (March 10, 2010)
Platform drivers
LinuxCon: x86 platform drivers (August 24, 2011)
Support APIs
A new I/O memory access mechanism (September 15, 2004)
PCI error recovery (July 12, 2005)
Driver core API changes for 2.6.19 (September 26, 2006)
API changes: interrupt handlers and vectored I/O (October 2, 2006)
Driver API: sleeping poll(), exclusive I/O memory, and DMA API debugging (November 24, 2008)
Writing a WMI driver - an introduction (June 8, 2010)
Contiguous memory allocation for drivers (July 21, 2010)
APIs for sensors (March 16, 2011)
The platform device API (June 21, 2011)
What are they polling for? (July 7, 2011)
Sharing buffers between devices (August 15, 2011)
DMA buffer sharing in 3.3 (January 11, 2012)
The Android ION memory allocator (February 8, 2012)
The trouble with DMA masks (March 20, 2013)
vm_iomap_memory() (April 17, 2013)
Video
Memory management for graphics processors (November 6, 2007)
LPC: The future of Linux graphics (September 24, 2008)
Large I/O memory in small address spaces (November 4, 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)
Video4Linux2 part 7: Controls (August 31, 2007)
Videobuf: buffer management for V4L2 drivers (November 23, 2009)
2.6.35 Video4Linux2 enhancements (May 25, 2010)
The videobuf2 API (June 14, 2011)
Hardware face detection (November 29, 2011)
Wireless networking
The ipw3945 project (March 1, 2006)
A new Intel wireless driver (February 20, 2007)
Regulating wireless devices (August 19, 2008)
Broadcom firmware and regulatory compliance (September 22, 2010)
Radar detection with Linux (December 21, 2010)
Broadcom's wireless drivers, one year later (August 29, 2011)
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)
Which I/O controller is the fairest of them all? (May 12, 2009)
Snapshot merge for the device mapper (November 24, 2009)
dm-verity (September 19, 2011)
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)
User-friendly disk names (June 22, 2011)
Reverting disk aliases? (November 16, 2011)
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 18, 2006)
Toward a free Atheros driver (November 15, 2006)
A new Intel wireless driver (February 20, 2007)
Device tree
KS2009: Generic device trees (October 19, 2009)
ELCE: Grant Likely on device trees (November 10, 2010)
Dynamic devices and static configuration (March 29, 2011)
Platform devices and device trees (June 21, 2011)
The udev tail wags the dog (August 24, 2011)
Supporting multi-platform ARM kernels (May 9, 2012)
/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 19, 2005)
ZONE_DMA32 (September 20, 2005)
Memory copies in hardware (December 7, 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)
Driver API: sleeping poll(), exclusive I/O memory, and DMA API debugging (November 24, 2008)
ARM, DMA, and memory management (April 27, 2011)
A reworked contiguous memory allocator (June 14, 2011)
CMA and ARM (July 5, 2011)
Reworking the DMA mapping code (especially on ARM) (November 16, 2011)
DMA buffer sharing in 3.3 (January 11, 2012)
The trouble with DMA masks (March 20, 2013)
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)
Distributions
SCALE 8x: Ubuntu kernel development process (March 3, 2010)
Kernel configuration for distributions (July 18, 2012)
dma_declare_coherent_memory()
DMA issues, part 2 (June 30, 2004)
dma_get_required_mask()
A handful of DMA topics (June 23, 2004)
DMTCP
Checkpoint/restart: it's complicated (November 9, 2010)
Preparing for user-space checkpoint/restore (January 31, 2012)
Documentation
Kernel Summit 2006: Documentation (July 18, 2006)
Kevents and review of new APIs (August 23, 2006)
KS2008: Documentation (September 17, 2008)
In search of the perfect changelog (April 22, 2009)
Better documentation: the window of naive interest (July 3, 2012)
Dracut
Dracut looks to replace the initramfs patchwork (February 4, 2009)
DRBD
DRBD: a distributed block device (April 22, 2009)
Dynamic frequency selection
Radar detection with Linux (December 21, 2010)
Dynamic tick
Clockevents and dyntick (February 21, 2007)
Deferrable timers (March 28, 2007)
NoHZ tasks (December 20, 2010)
Relocating RCU callbacks (October 31, 2012)
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)
Variations on fair I/O schedulers (December 3, 2008)
An IOPS-based I/O scheduler (January 4, 2012)
Embedded systems
Kernel Summit 2006: Embedded systems (July 19, 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)
Wakelocks and the embedded problem (February 10, 2009)
SamyGO: replacing television firmware (November 14, 2009)
ELC: Status of embedded Linux (April 14, 2010)
Epoll
EPOLL_CTL_DISABLE and multithreaded applications (October 17, 2012)
EPOLL_CTL_DISABLE, epoll, and API design (October 23, 2012)
Error codes
-EWHICHERROR? (June 29, 2011)
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 12, 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)
Secure deletion and trash bin support (December 5, 2006)
ext4 and data loss (March 11, 2009)
Securely deleting files from ext4 filesystems (October 11, 2011)
Improving ext4: bigalloc, inline data, and metadata checksums (November 29, 2011)
Uninitialized blocks and unexpected flags (November 28, 2012)
A FALLOC_FL_NO_HIDE_STALE followup (December 5, 2012)
Widening ext4's readdir() cookie (March 27, 2013)
Externsible firmware interface
The Extensible Firmware Interface - an introduction (August 9, 2011)
fallocate()
fallocate() (March 19, 2007)
The ongoing fallocate() story (July 3, 2007)
Punching holes in files (November 17, 2010)
Allocating uninitialized file blocks (April 17, 2012)
Volatile ranges with fallocate() (June 5, 2012)
Uninitialized blocks and unexpected flags (November 28, 2012)
A FALLOC_FL_NO_HIDE_STALE followup (December 5, 2012)
fanotify
The fanotify API (July 1, 2009)
In Brief (July 29, 2009)
Another new ABI for fanotify (November 11, 2009)
No fanotify for 2.6.36 (October 12, 2010)
Fast booting
Kernel Summit: kexec and fast booting (July 21, 2004)
LPC: Booting Linux in five seconds (September 22, 2008)
An asynchronous function call infrastructure (January 13, 2009)
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)
Fault tolerance
HWPOISON (August 26, 2009)
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)
Making FIEMAP and delayed allocation play well together (February 22, 2011)
The return of SEEK_HOLE (April 26, 2011)
File descriptors
Fun with file descriptors (June 4, 2007)
More fun with file descriptors (June 12, 2007)
File handle
Open by handle (February 23, 2010)
Filesystems
pramfs - a new filesystem (March 3, 2004)
Trapfs - an automounter on the cheap (November 3, 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 19, 2005)
Coming soon: eCryptfs (October 25, 2005)
Shared subtrees (November 8, 2005)
Kernel Summit 2006: The VFS layer (July 19, 2006)
KHB: A Filesystems reading list (August 21, 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)
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 16, 2008)
A superficial introduction to fsblock (March 11, 2009)
That massive filesystem thread (March 31, 2009)
Linux Storage and Filesystem workshop, day 1 (April 7, 2009)
Linux Storage and Filesystem Workshop, day 2 (April 8, 2009)
The two sides of reflink() (May 5, 2009)
This week's reflink() API (May 19, 2009)
What ever happened to chunkfs? (June 17, 2009)
Avoiding a read-only filesystem on errors (June 17, 2009)
Protected RAMFS (June 24, 2009)
Soft updates, hard problems (July 1, 2009)
O_*SYNC (September 1, 2009)
POSIX v. reality: A position on O_PONIES (September 9, 2009)
Featherstitch: Killing fsync() softly (September 30, 2009)
File holes, races, and mmap() (October 21, 2009)
LCA: Why filesystems are hard (January 20, 2010)
xstat() and fxstat() (June 30, 2010)
File creation times (July 26, 2010)
The 2010 Linux Storage and Filesystem Summit, day 1 (August 9, 2010)
The 2010 Linux Storage and Filesystem Summit, day 2 (August 10, 2010)
One billion files on Linux (August 18, 2010)
Linux Filesystem, Storage, and Memory Management Summit, Day 1 (April 5, 2011)
Linux Filesystem, Storage, and Memory Management Summit, Day 2 (April 6, 2011)
The return of SEEK_HOLE (April 26, 2011)
Runtime filesystem consistency checking (April 3, 2012)
O_HOT and O_COLD (April 24, 2012)
User and group mount options for ext filesystems (May 16, 2012)
VFS hot-data tracking (November 20, 2012)
autofs
Fixing the unfixable autofs ABI (April 30, 2012)
Benchmarking
Kernel Hacker's Bookshelf: Generating Realistic Impressions for File-System Benchmarking (April 28, 2010)
Btrfs
btrfs and NILFS (June 19, 2007)
A better btrfs (January 15, 2008)
Btrfs to the mainline? (October 8, 2008)
Btrfs aims for the mainline (January 7, 2009)
A short history of btrfs (July 22, 2009)
JLS2009: A Btrfs update (October 27, 2009)
Supporting transactions in btrfs (November 11, 2009)
MeeGo and Btrfs (May 11, 2010)
Btrfs: broken by design? (June 22, 2010)
Data temperature in Btrfs (August 3, 2010)
A btrfs update at LinuxCon Europe (November 2, 2011)
Atime and btrfs: a bad combination? (May 31, 2012)
Btrfs send/receive (July 11, 2012)
Case-independent lookups
The kernel and character set encodings (February 18, 2004)
Ceph
The Ceph filesystem (November 14, 2007)
Two that didn't make it (December 22, 2009)
LSFMM: FUSE and cloud storage (April 24, 2013)
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)
A look inside the OCFS2 filesystem (September 1, 2010)
Compressed
Squashfs submitted for the mainline (October 29, 2008)
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 16, 2008)
Barriers and journaling filesystems (May 21, 2008)
Solving the ext3 latency problem (April 14, 2009)
Ext3 and RAID: silent data killers? (August 31, 2009)
The Next3 filesystem (May 11, 2010)
ext4
Time for ext4 (July 5, 2006)
Secure deletion and trash bin support (December 5, 2006)
A better ext4 (January 23, 2008)
Responding to ext4 journal corruption (May 27, 2008)
Online defragmentation for ext4 (February 4, 2009)
Removing ext2 and/or ext3 (February 9, 2011)
Ext4 snapshot concerns (June 8, 2011)
Securely deleting files from ext4 filesystems (October 11, 2011)
Improving ext4: bigalloc, inline data, and metadata checksums (November 29, 2011)
Supporting block I/O contexts (June 18, 2012)
A kernel change breaks GlusterFS (March 27, 2013)
Widening ext4's readdir() cookie (March 27, 2013)
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)
On the need for a new removable device filesystem (August 22, 2012)
An f2fs teardown (October 10, 2012)
A NILFS2 score card (November 7, 2012)
JFFS2, UBIFS, and the growth of flash storage (December 11, 2012)
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 23, 2004)
FUSE hits a snag (April 12, 2005)
FUSE and private namespaces (April 27, 2005)
LSFMM: FUSE and cloud storage (April 24, 2013)
LSFMM: Coprocessors, exit times, and volatile ranges, and more (April 23, 2013)
Log-structured
Log-structured file systems: There's one in every SSD (September 18, 2009)
Named stream support
More notes on reiser4 (September 1, 2004)
Network
CRFS and POHMELFS (February 6, 2008)
Open by handle (February 23, 2010)
POHMELFS returns (February 8, 2012)
osdfs
Linux and object storage devices (November 4, 2008)
Symbolic link depth
Supporting deeper symbolic links (June 30, 2004)
Tux3
Tux3: the other next-generation filesystem (December 2, 2008)
Union
Unionfs (January 10, 2007)
State of the unionfs (January 15, 2008)
Unifying filesystems with union mounts (December 24, 2008)
Unioning file systems: Architecture, features, and design choices (March 18, 2009)
Union file systems: Implementations, part I (March 25, 2009)
Unioning file systems: Implementations, part 2 (April 7, 2009)
A brief history of union mounts (July 14, 2010)
Another union filesystem approach (September 1, 2010)
Debating overlayfs (June 15, 2011)
Overlayfs for 3.10 (March 13, 2013)
Virtual Filesystem layer
A new way to truncate() files (July 15, 2009)
JLS: Increasing VFS scalability (November 3, 2009)
Big reader locks (March 16, 2010)
VFS scalability patches in 2.6.36 (August 24, 2010)
Resolving the inode scalability discussion (October 26, 2010)
Dcache scalability and RCU-walk (December 14, 2010)
Toward a safer fput() (April 24, 2012)
XFS
XFS: the filesystem of the future? (January 20, 2012)
File Systems Workshop
2006
The 2006 Linux File Systems Workshop (July 5, 2006)
Filtered wakeups
Filtered wakeups (May 5, 2004)
fincore()
fincore() (January 27, 2010)
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)
KS2010: Lightning talks (November 2, 2010)
The trouble with firmware (January 5, 2011)
Firmware loading and suspend/resume (August 15, 2012)
Udev and firmware (October 10, 2012)
Fistgen
Recent patches of interest (August 4, 2004)
Flexible array
Flexible arrays (August 5, 2009)
Forced unmount
revoke() and frevoke() (July 25, 2006)
Hotplug file descriptors and revoke() (April 14, 2009)
Fork bombs
Defending against fork bombs (May 3, 2005)
Fighting fork bombs (March 29, 2011)
fsblock
Large pages, large blocks, and large problems (September 19, 2007)
A superficial introduction to fsblock (March 11, 2009)
FS-Cache
Credential records (September 25, 2007)
Justifying FS-Cache (December 24, 2008)
Ftrace
The source of the e1000e corruption bug (October 21, 2008)
Speeding up ftrace printing (March 4, 2009)
A look at ftrace (March 13, 2009)
On the value of static tracepoints (April 28, 2009)
Seccomp and sandboxing (May 13, 2009)
Dynamic probes with ftrace (July 28, 2009)
Debugging the kernel using Ftrace - part 1 (December 9, 2009)
Debugging the kernel using Ftrace - part 2 (December 22, 2009)
Secrets of the Ftrace function tracer (January 20, 2010)
trace-cmd: A front-end for Ftrace (October 20, 2010)
Using KernelShark to analyze the real-time scheduler (February 2, 2011)
Ftrace, perf, and the tracing ABI (May 11, 2011)
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)
Adaptive spinning futexes (May 11, 2010)
GCC
Shrinking the kernel with gcc (January 21, 2004)
The end of gcc 2.95 support (December 13, 2005)
GCC 4.3.0 exposes a kernel bug (March 7, 2008)
Better kernels with GCC plugins (October 5, 2011)
Betrayed by a bitfield (February 1, 2012)
Signed overflow optimization hazards in the kernel (August 15, 2012)
Rethinking optimization for size (January 30, 2013)
General-purpose I/O
GPIO in the kernel: an introduction (January 16, 2013)
GPIO in the kernel: future directions (January 23, 2013)
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 20, 2005)
Git approaches 1.0 (July 27, 2005)
Bisection divides users and developers (April 15, 2008)
How patches get into the mainline (February 10, 2009)
Rebasing and merging: some git best practices (April 14, 2009)
How old is our kernel? (February 17, 2010)
Finding a patch's kernel version with git (June 16, 2010)
Authenticating Git pull requests (November 9, 2011)
GmailFS
GmailFS - using Gmail as a filesystem (August 30, 2004)
Goldman Sachs
Kernel Summit: The customer panel (July 21, 2004)
Google
KS2009: How Google uses Linux (October 21, 2009)
GPIO
GPIO in the kernel: an introduction (January 16, 2013)
GPIO in the kernel: future directions (January 23, 2013)
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)
TTY-based group scheduling (November 17, 2010)
Group scheduling and alternatives (December 6, 2010)
CFS bandwidth control (February 16, 2011)
A group scheduling demonstration (March 16, 2011)
Hardware abstraction layers
HALs considered harmful (March 15, 2005)
Hash table
A generic hash table (August 8, 2012)
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)
Rationalizing CPU hotplugging (February 12, 2013)
Memory
Fragmentation avoidance (November 2, 2005)
More on fragmentation avoidance (November 8, 2005)
VM followup: page migration and fragmentation avoidance (November 16, 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)
Greedy hrtimer expiration (October 4, 2011)
Short sleeps suffering from slack (February 17, 2012)
Leaping seconds and looping servers (July 2, 2012)
Huge pages
Fragmentation avoidance (November 2, 2005)
Application-friendly kernel interfaces (March 26, 2007)
Large pages, large blocks, and large problems (September 19, 2007)
Transparent hugepages (October 28, 2009)
Huge pages part 1 (Introduction) (February 16, 2010)
Huge pages part 2: Interfaces (February 24, 2010)
Huge pages part 3: Administration (March 3, 2010)
Huge pages part 4: benchmarking with huge pages (March 17, 2010)
Huge pages part 5: A deeper look at TLBs and costs (March 23, 2010)
Memory management for virtualization (April 7, 2010)
Transparent huge pages in 2.6.38 (January 19, 2011)
Huge pages, slow drives, and long delays (November 14, 2011)
Adding a huge zero page (September 26, 2012)
Supporting variable-sized huge pages (January 23, 2013)
HWPOISON
HWPOISON (August 26, 2009)
Hyperthreading
Is hyperthreading dangerous? (May 17, 2005)
HZ
Boot-time clock frequency selection (December 14, 2004)
How fast should HZ be? (August 2, 2005)
NoHZ tasks (December 20, 2010)
ia32e
Intel's new 64-bit architecture and Linux (February 25, 2004)
idr
idr - integer ID management (September 22, 2004)
A simplified IDR API (February 6, 2013)
in_atomic()
Atomic context and kernel API design (March 25, 2008)
Include files
Kernel headers and user space (November 30, 2004)
The UAPI header file split (July 25, 2012)
indirect()
sys_indirect() (November 19, 2007)
System call updates: indirect(), timerfd(), and hijack() (November 28, 2007)
Extending system calls (May 14, 2008)
Industrial I/O devices
Ambient light sensors (June 2, 2010)
(Partially) graduating IIO (November 2, 2011)
InfiniBand
InfiniBand: a proprietary standard? (October 13, 2004)
InfiniBand arrives (November 23, 2004)
A Linux kernel compatibility layer for FreeBSD? (January 5, 2011)
initramfs
Initramfs arrives (November 6, 2002)
initramfs and where user space truly begins (July 11, 2006)
Dracut looks to replace the initramfs patchwork (February 4, 2009)
Inline functions
The cost of inline functions (April 28, 2004)
Drawing the line on inline (January 3, 2006)
Who is the best inliner of all? (January 14, 2009)
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)
The return of EVM (June 30, 2010)
IMA memory hog (October 20, 2010)
IMA appraisal extension (March 28, 2012)
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)
TTY-based group scheduling (November 17, 2010)
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)
Interrupts, threads, and lockdep (March 3, 2009)
Eliminating rwlocks and IRQF_DISABLED (December 1, 2009)
Disabling IRQF_DISABLED (March 30, 2010)
Improving lost and spurious IRQ handling (June 15, 2010)
Irked by NO_IRQ (December 7, 2011)
Software
Software interrupts and realtime (October 17, 2012)
The 2012 realtime minisummit (October 24, 2012)
I/O AT
Memory copies in hardware (December 7, 2005)
ioctl()
The Big Kernel Lock lives on (May 26, 2004)
ioctl(), the big kernel lock, and 32-bit compatibility (December 15, 2004)
The new way of ioctl() (January 18, 2005)
Kernel Summit 2006: The ioctl() interface (July 18, 2006)
Security modules and ioctl() (February 16, 2011)
__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 20, 2005)
64-bit resources (June 13, 2006)
Device resource management (January 2, 2007)
Large I/O memory in small address spaces (November 4, 2008)
Driver API: sleeping poll(), exclusive I/O memory, and DMA API debugging (November 24, 2008)
IOMMU
Kernel Summit 2006: DMA and IOMMU issues (July 19, 2006)
ioremap()
ARM's multiply-mapped memory mess (October 12, 2010)
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)
Variations on fair I/O schedulers (December 3, 2008)
The block I/O controller (November 7, 2009)
An IOPS-based I/O scheduler (January 4, 2012)
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)
Jump label
Minimizing instrumentation impacts (December 9, 2009)
Jump label (October 27, 2010)
Jump label reworked (March 30, 2011)
very_unlikely() very unliked (February 29, 2012)
kdb
Merging kdb and kgdb (February 17, 2010)
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)
Testing crypto drivers at boot time (August 18, 2010)
Kconfiglib (February 2, 2011)
Kernel configuration for distributions (July 18, 2012)
Link-time optimization for the kernel (August 21, 2012)
Special sections in Linux binaries (January 3, 2013)
Kernel Hacker's Bookshelf
KHB: A Filesystems reading list (August 21, 2006)
KHB: Synthesis: An Efficient Implementation of Fundamental Operating Systems Services (February 20, 2008)
The Kernel Hacker's Bookshelf: Ultimate Physical Limits of Computation (June 18, 2008)
The Kernel Hacker's Bookshelf: UNIX Internals (September 3, 2008)
Kernel Hacker's Bookshelf: Generating Realistic Impressions for File-System Benchmarking (April 28, 2010)
Kernel markers
Kernel markers (August 15, 2007)
Kernel markers and binary-only modules (March 24, 2008)
Kernel messages
Sanitizing log file output (June 29, 2011)
The structured logging challenge (July 12, 2011)
KS2011: Structured error logging (October 24, 2011)
Toward more reliable logging (April 13, 2012)
Various tweaks to printk() (May 16, 2012)
printk() problems (June 26, 2012)
Kernel.org
A kernel.org update (July 22, 2009)
Kernel development without kernel.org (September 13, 2011)
Kernel.org's road to recovery (October 4, 2011)
Kernel Summit
The Ottawa Kernel Summit, Day One (June 24, 2002)
The Ottawa Kernel Summit, Day Two (June 25, 2002)
The 2003 Kernel Developers Summit (July 22, 2003)
The 2004 Kernel Summit (July 21, 2004)
The 2005 Linux Kernel Developers' Summit (July 19, 2005)
The 2006 Linux Kernel Summit (July 18, 2006)
Kernel Summit 2007 - an advance view (August 24, 2007)
The 2007 Kernel Summit (September 6, 2007)
The 2008 Linux Kernel Summit (September 16, 2008)
The 2009 Linux Kernel Summit (October 19, 2009)
The 2010 Kernel Summit (November 2, 2010)
The 2011 Kernel Summit (October 24, 2011)
Proposals for Kernel Summit discussions (June 20, 2012)
The 2012 Kernel Summit (August 29, 2012)
Kernel threads
Kernel threads made easy (January 6, 2004)
Too many threads (April 10, 2007)
The slow work mechanism (April 22, 2009)
Concurrency-managed workqueues (October 7, 2009)
Concurrency-managed workqueues and thread priorities (June 22, 2010)
Working on workqueues (September 7, 2010)
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 12, 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 20, 2005)
Yet another approach to software suspend (July 18, 2007)
kfifo
Coming in 2.6.10 (October 20, 2004)
A new API for kfifo? (August 19, 2009)
kgdb
Bringing kgdb into 2.6 (February 10, 2004)
kgdb getting closer to being merged? (February 20, 2008)
Merging kdb and kgdb (February 17, 2010)
klibc
initramfs and where user space truly begins (July 11, 2006)
Kernel Summit 2006: The user-space API (July 18, 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)
Fixing kmap_atomic() (October 13, 2009)
kmsg_dumper
kmsg_dumper (December 16, 2009)
kobject_hotplug()
Use in kernel events layer
Figuring out kernel event reporting (September 8, 2004)
KProbes
Tracing infrastructures (September 19, 2006)
Kprobes
Dynamic probes with ftrace (July 28, 2009)
Minimizing instrumentation impacts (December 9, 2009)
kref
The debut of kref (March 16, 2004)
RCU-safe reference counting (July 14, 2004)
ksize()
Getting the measure of ksize() (February 17, 2009)
Ksplice
Ksplice: kernel patches without reboots (April 29, 2008)
Ksplice and kreplace (November 24, 2008)
Followups: performance counters, ksplice, and fsnotify (December 17, 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)
KVM, QEMU, and kernel project management (March 23, 2010)
The native KVM tool (April 12, 2011)
Merging the kvm tool (August 23, 2011)
No kvmtool in the mainline (February 20, 2013)
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 5, 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 30, 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)
Some notes from the BFS discussion (September 9, 2009)
Various scheduler-related topics (September 15, 2009)
The realtime preemption mini-summit (September 28, 2009)
Improving scheduler latency (September 14, 2010)
Realtime group scheduling doesn't know JACK (December 19, 2010)
Legal issues
Long discussions about long names (May 4, 2009)
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)
Likely unlikely()s (December 15, 2010)
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)
Bypassing linux-next (January 19, 2011)
KS2012: Improving development processes: linux-next (September 12, 2012)
LinuxTag
2010
The state of realtime Linux (June 15, 2010)
llseek()
Safe seeks (August 10, 2004)
local_t
The search for fast, scalable counters (February 1, 2006)
Lockdep
The kernel lock validator (May 31, 2006)
Interrupts, threads, and lockdep (March 3, 2009)
User-space lockdep (February 6, 2013)
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)
The BKL end game (March 30, 2010)
Might 2.6.35 be BKL-free? (April 27, 2010)
BKL-free in 2.6.37 (maybe) (September 20, 2010)
Lockless page cache
The lockless page cache (July 29, 2008)
LogFS
LogFS (May 15, 2007)
LogFS returns (November 24, 2009)
Logical memory block (LMB)
Moving x86 to LMB (May 11, 2010)
Long-term support initiative
A long-term support initiative update (February 29, 2012)
Loopback device
Partitioned loopback devices (November 10, 2004)
Asynchronous block loop I/O (January 30, 2013)
Lumpy reclaim
Avoiding - and fixing - memory fragmentation (November 28, 2006)
When writeback goes wrong (April 20, 2010)
Lustre
Should the Lustre preparation patches go in? (June 9, 2004)
Magic groups
Magic groups in 2.6 (May 11, 2004)
Managed Runtime Initiative
The Managed Runtime Initiative (June 16, 2010)
Media controller
The media controller subsystem (November 16, 2010)
membarrier()
sys_membarrier() (January 13, 2010)
Memory barriers
Memory-mapped I/O barriers (September 10, 2006)
Concurrent code and expensive instructions (January 26, 2011)
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 27, 2005)
Kernel Summit 2005: Virtual memory topics (July 19, 2005)
Kernel Summit 2005: Convergence of network and storage paths (July 20, 2005)
Improving shared memory performance (August 31, 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)
ELC: How much memory are applications really using? (April 18, 2007)
Large block size support (May 2, 2007)
KS2007: Memory management (September 10, 2007)
Toward better direct I/O scalability (March 31, 2008)
The lockless page cache (July 29, 2008)
Reworking vmap() (October 21, 2008)
Speeding up the page allocator (February 25, 2009)
How many page flags do we really have? (June 3, 2009)
Some ado about zero (July 7, 2009)
High-order GFP_ATOMIC allocation trouble (November 17, 2009)
Speculating on page faults (January 12, 2010)
Slab reduction (May 26, 2010)
Go's memory management, ulimit -v, and RSS control (February 15, 2011)
Linux Filesystem, Storage, and Memory Management Summit, Day 1 (April 5, 2011)
Linux Filesystem, Storage, and Memory Management Summit, Day 2 (April 6, 2011)
ARM, DMA, and memory management (April 27, 2011)
KS2011: Memory management issues (October 24, 2011)
POSIX_FADV_VOLATILE (November 22, 2011)
DMA buffer sharing in 3.3 (January 11, 2012)
Volatile ranges with fallocate() (June 5, 2012)
KS2012: The memcg/mm minisummit (September 17, 2012)
Many more words on volatile ranges (November 5, 2012)
vmpressure_fd() (November 14, 2012)
In-kernel memory compression (April 3, 2013)
Avoiding game-score loss with per-process reclaim (April 3, 2013)
Control groups
Controlling memory use in containers (July 31, 2007)
Integrating memory control groups (May 17, 2011)
Idle and stale page tracking (October 4, 2011)
Per-cgroup TCP buffer limits (December 6, 2011)
Two approaches to kernel memory usage accounting (March 7, 2012)
KS2012: memcg/mm: Improving kernel-memory accounting for memory cgroups (September 17, 2012)
KS2012: memcg/mm: Improving memory cgroups performance for non-users (September 17, 2012)
KS2012: memcg/mm: Hierarchical reclaim for memory cgroups (September 17, 2012)
KS2012: memcg/mm: Shared-memory accounting in memory cgroups (September 17, 2012)
The mempressure control group proposal (January 3, 2013)
During early boot
The NO_BOOTMEM patches (April 7, 2010)
Moving x86 to LMB (May 11, 2010)
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 5, 2005)
Huge pages
Transparent hugepages (October 28, 2009)
Huge pages part 1 (Introduction) (February 16, 2010)
Huge pages part 2: Interfaces (February 24, 2010)
Huge pages part 3: Administration (March 3, 2010)
Huge pages part 4: benchmarking with huge pages (March 17, 2010)
Huge pages part 5: A deeper look at TLBs and costs (March 23, 2010)
Transparent huge pages in 2.6.38 (January 19, 2011)
Huge pages, slow drives, and long delays (November 14, 2011)
Adding a huge zero page (September 26, 2012)
Supporting variable-sized huge pages (January 23, 2013)
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)
Getting the measure of ksize() (February 17, 2009)
Fixing kmap_atomic() (October 13, 2009)
When memory allocation failure is not an option (August 25, 2010)
The zsmalloc allocator (January 25, 2012)
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 16, 2005)
Avoiding - and fixing - memory fragmentation (November 28, 2006)
Large pages, large blocks, and large problems (September 19, 2007)
Memory compaction (January 6, 2010)
Contiguous memory allocation for drivers (July 21, 2010)
The big chunk memory allocator (November 24, 2010)
A reworked contiguous memory allocator (June 14, 2011)
CMA and ARM (July 5, 2011)
The Android ION memory allocator (February 8, 2012)
A deep dive into CMA (March 14, 2012)
mmap_sem
LSFMM: Problems with mmap_sem (April 23, 2013)
Nonvolatile memory
Preparing for nonvolatile RAM (May 23, 2012)
LFCS: Preparing Linux for nonvolatile memory devices (April 19, 2013)
NUMA systems
Page migration (October 25, 2005)
The 2.6.16 straggler list (January 24, 2006)
Toward better NUMA scheduling (March 16, 2012)
AutoNUMA: the other approach to NUMA scheduling (March 27, 2012)
KS2012: memcg/mm: NUMA scheduling (September 17, 2012)
A potential NUMA scheduling solution (October 31, 2012)
NUMA in a hurry (November 14, 2012)
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)
The case of the overly anonymous anon_vma (April 13, 2010)
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)
Taming the OOM killer (February 4, 2009)
Another OOM killer rewrite (June 7, 2010)
Delaying the OOM killer (March 9, 2011)
LSFMM: Improving the out-of-memory killer (April 23, 2013)
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)
Being nicer to executable pages (May 19, 2009)
Better active/inactive list balancing (May 2, 2012)
LSFMM: Coprocessors, exit times, and volatile ranges, and more (April 23, 2013)
LSFMM: Soft reclaim (April 23, 2013)
Power management
Memory power management (June 7, 2011)
Memory power management, take 2 (February 8, 2012)
Memory power management, 2013 edition (April 17, 2013)
Readahead
Adaptive file readahead (October 12, 2005)
On-demand readahead (May 21, 2007)
Improving readahead (February 3, 2010)
Shrinkers
KS2012: memcg/mm: Kernel-memory shrinking (September 17, 2012)
LSFMM: Shrinkers (April 23, 2013)
Slab allocators
The SLUB allocator (April 11, 2007)
Some snags for SLUB (December 28, 2007)
SLQB - and then there were four (December 16, 2008)
The SLEB allocator (May 19, 2010)
Slab allocator of the week: SLUB+Queuing (June 29, 2010)
DISCONTIGMEM, !NUMA, and SLUB (April 20, 2011)
Swapping
2.6 swapping behavior (May 5, 2004)
Swap prefetching (September 27, 2005)
Still waiting for swap prefetch (July 25, 2007)
Compcache: in-memory compressed swapping (May 26, 2009)
zcache: a compressed page cache (July 27, 2010)
Safely swapping over the net (April 19, 2011)
KS2012: memcg/mm: Moving zcache towards the mainline (September 17, 2012)
The zswap compressed swap cache (February 12, 2013)
LSFMM: Writeback latency issues (April 23, 2013)
LSFMM: Improving the swap subsystem (April 23, 2013)
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)
Large I/O memory in small address spaces (November 4, 2008)
Virtualization
Guest page hinting (September 6, 2006)
Memory management notifiers (January 23, 2008)
/dev/ksm: dynamic memory sharing (November 12, 2008)
KSM tries again (April 28, 2009)
Transcendent memory (July 8, 2009)
Memory management for virtualization (April 7, 2010)
Cleancache and Frontswap (May 4, 2010)
Unmapped page cache control (December 13, 2010)
Transcendent memory in a nutshell (August 12, 2011)
Writeback
Flushing out pdflush (April 1, 2009)
In defense of per-BDI writeback (September 30, 2009)
When writeback goes wrong (April 20, 2010)
Fixing writeback from direct reclaim (July 20, 2010)
Dynamic writeback throttling (September 15, 2010)
No-I/O dirty throttling (August 31, 2011)
KS2012: memcg/mm: Dirty/writeback LRU (September 17, 2012)
Writeout throttling
Predictive per-task write throttling (September 21, 2005)
Smarter write throttling (August 14, 2007)
Writeout throttling (December 11, 2007)
Message passing
Fast interprocess messaging (September 15, 2010)
Fast interprocess communication revisited (November 9, 2011)
Speeding up D-Bus (February 29, 2012)
Missing the AF_BUS (July 3, 2012)
Messages
Getting the message from the kernel (June 19, 2007)
A kernel message catalog (August 4, 2008)
Organizing kernel messages (September 29, 2010)
KS2011: Structured error logging (October 24, 2011)
Toward more reliable logging (April 13, 2012)
Various tweaks to printk() (May 16, 2012)
printk() problems (June 26, 2012)
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)
Tracking down a "runaway loop" (December 10, 2008)
Loading modules from file descriptors (October 10, 2012)
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 12, 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 19, 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)
LCA: The security panel (January 21, 2009)
The return of loadable security modules? (November 28, 2012)
Signed
Cryptographic signatures on kernel modules (July 7, 2004)
Kernel Summit: Security (July 21, 2004)
Loading signed kernel modules (December 7, 2011)
KS2012: Module signing (September 6, 2012)
The module signing endgame (November 21, 2012)
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)
Btrfs aims for the mainline (January 7, 2009)
Preventing overly-optimistic spinning (August 25, 2010)
Named streams
More notes on reiser4 (September 1, 2004)
Namespaces
A system call for unsharing (May 10, 2005)
Sysfs and namespaces (August 26, 2008)
Divorcing namespaces from processes (March 3, 2010)
Namespace file descriptors (September 29, 2010)
Namespaces in operation, part 1: namespaces overview (January 4, 2013)
Namespaces in operation, part 2: the namespaces API (January 8, 2013)
Mount namespaces
FUSE and private namespaces (April 27, 2005)
Shared subtrees (November 8, 2005)
PID namespaces
Namespaces in operation, part 3: PID namespaces (January 16, 2013)
Namespaces in operation, part 4: more on PID namespaces (January 23, 2013)
Syslog namespaces
Stepping closer to practical containers: "syslog" namespaces (December 5, 2012)
User namespaces
A new approach to user namespaces (April 10, 2012)
User namespaces progress (December 13, 2012)
Namespaces in operation, part 5: User namespaces (February 27, 2013)
Namespaces in operation, part 6: more on user namespaces (March 6, 2013)
User namespaces
Anatomy of a user namespaces vulnerability (March 20, 2013)
UTS namespaces
Namespaces in operation, part 2: the namespaces API (January 8, 2013)
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 7, 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)
NETIF_F_LLTX
NETIF_F_LLTX (September 8, 2004)
NETIF_F_LLTX and race conditions (February 1, 2005)
Network filesystems
CRFS and POHMELFS (February 6, 2008)
New NFS to bring parallel storage to the masses (January 21, 2009)
Caching layer
A general caching filesystem (September 1, 2004)
Justifying FS-Cache (December 24, 2008)
Networking
The end of init_etherdev() and friends (March 2, 2004)
Netpoll is merged (March 16, 2004)
TCP vulnerability: cancel red alert (April 21, 2004)
On the alignment of IP packets (June 15, 2004)
Configuration of pluggable network adaptors (September 22, 2004)
alloc_skb_from_cache() (January 4, 2005)
Network block devices and OOM safety (March 30, 2005)
Toward more robust network-based block I/O (August 8, 2005)
Linux and TCP offload engines (August 22, 2005)
On the safety of Linux random numbers (May 9, 2006)
OLS: A proposal for a new networking API (July 22, 2006)
The return of network block device deadlock prevention (August 14, 2006)
Network namespaces (January 30, 2007)
Large receive offload (August 1, 2007)
Network transmit batching (August 22, 2007)
Multiqueue networking (July 8, 2008)
Char devices for network interfaces (October 14, 2009)
JLS2009: Generic receive offload (October 27, 2009)
Receive packet steering (November 17, 2009)
Receive flow steering (April 7, 2010)
ICMP sockets (December 22, 2010)
SKB fragment lifetime tracking (July 25, 2011)
Network transmit queue limits (August 9, 2011)
TCP connection hijacking and parasites - as a good thing (August 9, 2011)
LPC: Making the net go faster (September 13, 2011)
Routing Open vSwitch into the mainline (November 30, 2011)
TCP connection repair (May 1, 2012)
TCP Fast Open: expediting web services (August 1, 2012)
TCP friends (August 15, 2012)
Bufferbloat
LPC: An update on bufferbloat (September 13, 2011)
The CoDel queue management algorithm (May 9, 2012)
TCP small queues (July 17, 2012)
Channels
Van Jacobson's network channels (January 31, 2006)
Implementing network channels (May 1, 2006)
Reconsidering network channels (July 25, 2006)
The Grand Unified Flow Cache (August 7, 2006)
Patch summary: regulatory domains, network channels, and virtualization (October 25, 2006)
The return of network channels (December 4, 2007)
Congestion control
Pluggable congestion avoidance modules (March 22, 2005)
The CHOKe packet scheduler (January 11, 2011)
Increasing the TCP initial congestion window (February 9, 2011)
D-Bus
Fast interprocess messaging (September 15, 2010)
Speeding up D-Bus (February 29, 2012)
Missing the AF_BUS (July 3, 2012)
hard_start_xmit() locking
NETIF_F_LLTX (September 8, 2004)
NETIF_F_LLTX and race conditions (February 1, 2005)
IPv6
LCA: IP address exhaustion and the end of the open net (January 26, 2011)
IPv6 NAT (July 20, 2011)
NAPI
NAPI performance - a weighty matter (June 15, 2005)
Reworking NAPI (December 18, 2006)
Newer, newer NAPI (August 7, 2007)
Netlink
Extending netlink (April 12, 2005)
Networking summits
Kernel Summit: Network summit summary (July 21, 2004)
Kernel Summit 2005: Report from the networking summit (July 19, 2005)
KS2010: Minisummit reports (November 3, 2010)
Nonlinear packets v. large allocations
Kswapd and high-order allocations (September 8, 2004)
Packet filtering
Nftables: a new packet filtering engine (March 24, 2009)
A JIT for packet filters (April 12, 2011)
Xtables2 vs. nftables (January 9, 2013)
Protocols
Linux gets DCCP (August 30, 2005)
PF_CAN (October 8, 2007)
How not to get a protocol implementation merged (January 12, 2011)
Mesh networking with batman-adv (February 8, 2011)
Multipath TCP: an overview (March 26, 2013)
Window scaling
TCP window scaling and broken routers (July 7, 2004)
Wireless
Toward a generic wireless access point stack (June 9, 2004)
Reworking the wireless extensions (June 23, 2004)
bcm43xx and the 802.11 stack (December 6, 2005)
Linux and wireless networking (January 11, 2006)
The 2006 Wireless Networking Summit (April 10, 2006)
Kernel Summit 2006: Mini-summit summaries (July 18, 2006)
The final wireless extension? (October 4, 2006)
Patch summary: regulatory domains, network channels, and virtualization (October 25, 2006)
Toward a free Atheros driver (November 15, 2006)
Wireless regulatory compliance (June 6, 2007)
Regulating wireless devices (August 19, 2008)
Broadcom firmware and regulatory compliance (September 22, 2010)
Radar detection with Linux (December 21, 2010)
Nftables
Nftables: a new packet filtering engine (March 24, 2009)
KS2010: Minisummit reports (November 3, 2010)
A JIT for packet filters (April 12, 2011)
Xtables2 vs. nftables (January 9, 2013)
NILFS
btrfs and NILFS (June 19, 2007)
__nocast
The __nocast attribute (March 29, 2005)
Non-seekable objects
Safe seeks (August 10, 2004)
nopage()
Two API changes in 2.6 (January 6, 2004)
Faulting out populate(), nopfn(), and nopage() (October 10, 2006)
nopfn()
nopage() and nopfn() (September 20, 2006)
Faulting out populate(), nopfn(), and nopage() (October 10, 2006)
Notifiers
Making notifiers safe (November 21, 2005)
Notifiers, 2.6.17 style (May 29, 2006)
Task watchers (November 7, 2006)
Rationalizing CPU hotplugging (February 12, 2013)
Nouveau
LCA: The state of the Nouveau project (January 17, 2007)
KS2007: Hardware support and the i386/x86_64 merger (September 6, 2007)
KS2009: Staging, linux-next, and the development process (October 21, 2009)
The abrupt merging of Nouveau (December 15, 2009)
LCA: Graphics driver ponies (January 26, 2010)
NULL and zero
NULL v. zero (July 14, 2004)
NUMA
Scheduling domains (April 19, 2004)
Page migration (October 25, 2005)
VM followup: page migration and fragmentation avoidance (November 16, 2005)
The 2.6.16 straggler list (January 24, 2006)
Toward better NUMA scheduling (March 16, 2012)
AutoNUMA: the other approach to NUMA scheduling (March 27, 2012)
A potential NUMA scheduling solution (October 31, 2012)
NUMA in a hurry (November 14, 2012)
NX support
x86 NX support (June 2, 2004)
Object-based reverse mapping
Virtual Memory II: the return of objrmap (March 10, 2004)
Reverse mapping anonymous pages - again (March 24, 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)
Object storage devices
Linux and object storage devices (November 4, 2008)
OCFS2
The OCFS2 filesystem (May 24, 2005)
OOM killer
Respite from the OOM killer (September 28, 2004)
Stopping unwanted OOM killer experiences (November 17, 2004)
Defending against fork bombs (May 3, 2005)
Kernel Summit 2005: Virtual memory topics (July 19, 2005)
Avoiding the OOM killer with mem_notify (January 30, 2008)
Taming the OOM killer (February 4, 2009)
Another OOM killer rewrite (June 7, 2010)
Delaying the OOM killer (March 9, 2011)
Fighting fork bombs (March 29, 2011)
LSFMM: Improving the out-of-memory killer (April 23, 2013)
openat()
More notes on reiser4 (September 1, 2004)
Open vSwitch
Routing Open vSwitch into the mainline (November 30, 2011)
OSDL
Kernel Summit: OSDL relations (July 21, 2004)
O_SYNC
O_*SYNC (September 1, 2009)
Overlayfs
Another union filesystem approach (September 1, 2010)
Debating overlayfs (June 15, 2011)
Overlayfs for 3.10 (March 13, 2013)
padata
The padata parallel execution mechanism (April 6, 2010)
Page cache
Large block size support (May 2, 2007)
PandaBoard
Dynamic devices and static configuration (March 29, 2011)
Parallel ATA
Parallel IDE drivers (September 5, 2006)
paravirt_ops
Kernel Summit 2006: Paravirtualization and containers (July 19, 2006)
Connecting Linux to hypervisors (August 8, 2006)
Some KVM developments (January 9, 2007)
paravirt_ops considered harmful? (March 14, 2007)
Partial array self refresh (PASR)
Memory power management (June 7, 2011)
Memory power management, take 2 (February 8, 2012)
Partitions
Partitioned loopback devices (November 10, 2004)
Block layer: integrity checking and lots of partitions (July 15, 2008)
Patchwork
KS2008: Development tools (September 16, 2008)
PC9800 architecture
Goodbye to old code (May 19, 2004)
PCI
Safe PCI hot removal (June 9, 2004)
Some 2.6.11 API changes (January 25, 2005)
PCI error recovery (July 12, 2005)
Some 2.6.13 API changes (July 12, 2005)
Kernel Summit 2005: I/O Busses (July 19, 2005)
PCIe
UKUUG: Arnd Bergmann on interconnecting with PCIe (November 19, 2008)
PCMCIA
A PCMCIA subsystem change (August 3, 2005)
Per-CPU variables
The search for fast, scalable counters (February 1, 2006)
Better per-CPU variables (November 12, 2007)
Per-CPU variables and the realtime tree (July 26, 2011)
Performance monitoring
Dueling performance monitors (December 9, 2008)
Followups: performance counters, ksplice, and fsnotify (December 17, 2008)
Perfcounters added to the mainline (July 1, 2009)
Fun with tracepoints (August 12, 2009)
KS2009: The future of perf events (October 19, 2009)
Scripting support for perf (February 10, 2010)
A "live mode" for perf (April 7, 2010)
Using the perf code to create a RAS daemon (February 2, 2011)
Raw events and the perf ABI (May 3, 2011)
Ftrace, perf, and the tracing ABI (May 11, 2011)
Virtualization and the perf ABI (December 19, 2012)
Philips driver
The return of the Philips driver? (September 1, 2004)
The Philips webcam driver returns (September 15, 2004)
The Philips webcam driver - again (May 4, 2005)
Pin controller
The pin control subsystem (November 22, 2011)
Pipes
Circular pipes (January 11, 2005)
The evolution of pipe buffers (January 18, 2005)
tee() with your splice()? (April 11, 2006)
Plan 9
A filesystem from Plan 9 space (May 25, 2005)
Platform data
Dynamic devices and static configuration (March 29, 2011)
The platform device API (June 21, 2011)
Platform devices and device trees (June 21, 2011)
pmdisk
Which is the real software suspend? (March 16, 2004)
Software suspend: and then there were two (July 21, 2004)
poll()
Driver API: sleeping poll(), exclusive I/O memory, and DMA API debugging (November 24, 2008)
What are they polling for? (July 7, 2011)
populate()
Faulting out populate(), nopfn(), and nopage() (October 10, 2006)
posix_fadvise()
Tweaks to madvise() and posix_fadvise() (February 14, 2006)
Two new system calls: splice() and sync_file_range() (April 3, 2006)
POSIX_FADV_VOLATILE (November 22, 2011)
Power management
Laptop mode for 2.6 (January 7, 2004)
Power management: looking for a direction (August 18, 2004)
ACPI, device interrupts, and suspend states (August 3, 2005)
Some power management changes for 2.6.15 (November 1, 2005)
Driver core API changes for 2.6.19 (September 26, 2006)
OLS: Three talks on power management (June 30, 2007)
Tripping over trip points (August 7, 2007)
A new suspend/hibernate infrastructure (March 19, 2008)
Making power policy just work (June 30, 2008)
Runtime power management (August 19, 2009)
Redesigning asynchronous suspend/resume (December 16, 2009)
Fixing the ondemand governor (April 20, 2010)
The cpuidle subsystem (April 26, 2010)
Reworking pm_qos (May 4, 2010)
Detecting idle patterns (May 11, 2010)
What comes after suspend blockers (June 1, 2010)
Idling ACPI idle (June 1, 2010)
A single power preference knob (June 23, 2010)
LCA: Server power management (January 26, 2011)
Powering down APM (March 30, 2011)
ELC: Linaro power management work (April 20, 2011)
Memory power management (June 7, 2011)
PCIe, power management, and problematic BIOSes (June 29, 2011)
Dealing with complexity: power domains and asymmetric multiprocessing (June 29, 2011)
Rethinking power-aware scheduling (January 10, 2012)
Memory power management, take 2 (February 8, 2012)
Linux power management: The documentation I wanted to read (July 10, 2012)
Memory power management, 2013 edition (April 17, 2013)
CPU scheduling
The return of power-aware scheduling (August 21, 2012)
Small-task packing (October 24, 2012)
Toward a more power-efficient scheduler (April 10, 2013)
Device power management
Better device power management for 3.2 (November 8, 2011)
Opportunistic suspend
From wakelocks to a real solution (February 18, 2009)
Suspend block (April 28, 2010)
Blocking suspend blockers (May 18, 2010)
Suspend blocker suspense (May 26, 2010)
What comes after suspend blockers (June 1, 2010)
Another wakeup event mechanism (June 23, 2010)
Whack-a-droid (August 3, 2010)
An alternative to suspend blockers (November 24, 2010)
A new approach to opportunistic suspend (September 27, 2011)
Yet another opportunity for opportunistic suspend (October 18, 2011)
Autosleep and wake locks (February 7, 2012)
preadv()
Some new system calls (December 20, 2005)
Preemption
Addressing latency problems in 2.6 (July 14, 2004)
Approaches to realtime Linux (October 12, 2004)
Realtime preemption, part 2 (October 20, 2004)
Realtime preemption and read-copy-update (March 30, 2005)
The beginning of the realtime preemption debate (June 1, 2005)
Interview: the return of the realtime preemption tree (February 16, 2009)
Prefetch
Prefetching considered harmful (September 8, 2010)
The problem with prefetch (May 24, 2011)
Prefetching
Predictive ELF bitmaps (March 26, 2008)
fincore() (January 27, 2010)
printk()
Enhanced printk() merged (July 9, 2008)
The perils of pr_info() (March 21, 2012)
Stepping closer to practical containers: "syslog" namespaces (December 5, 2012)
printk_ratelimit()
Keeping printk() under control (January 13, 2004)
Priority inheritance
Priority inheritance in the kernel (April 3, 2006)
/proc
Inode locking
A VFS deadlock post-mortem (April 3, 2013)
/proc/buddyinfo
Kswapd and high-order allocations (September 8, 2004)
/proc/latency
Update from the latency front (August 18, 2004)
/proc/page_owner
Useful gadget: /proc/page_owner (February 1, 2005)
Profiling
Profiling kernel code coverage (June 4, 2008)
Pstore
Persistent storage for a kernel's "dying breath" (March 23, 2011)
ptrace()
Introducing utrace (March 7, 2007)
Another mainline push for utrace (December 2, 2009)
Replacing ptrace() (January 27, 2010)
Improving ptrace() (March 8, 2011)
TCP connection hijacking and parasites - as a good thing (August 9, 2011)
QEMU
KVM, QEMU, and kernel project management (March 23, 2010)
The native KVM tool (April 12, 2011)
Race conditions
sleep_on() in 2.6. (January 27, 2004)
Module unloading in a reference counted world (January 27, 2004)
Safe sysfs support (February 11, 2004)
RCU-safe reference counting (July 14, 2004)
NETIF_F_LLTX and race conditions (February 1, 2005)
FUTEX + rwsem = SNAFU (February 23, 2005)
Making notifiers safe (November 21, 2005)
Memory-mapped I/O barriers (September 10, 2006)
Various topics, all related to interrupts (October 24, 2007)
Radix tree
Trees I: Radix trees (March 13, 2006)
RAID
MD / DM (January 25, 2006)
Ext3 and RAID: silent data killers? (August 31, 2009)
Journal-guided RAID resync (November 24, 2009)
DM and MD come a little closer (April 20, 2010)
The MD roadmap (February 16, 2011)
Another kernel RAID5 implementation (October 18, 2011)
Ramback
How to use a terabyte of RAM (March 12, 2008)
Random numbers
On the safety of Linux random numbers (May 9, 2006)
On entropy and randomness (December 12, 2007)
Appropriate sources of entropy (May 21, 2008)
Linux ASLR vulnerabilities (April 29, 2009)
Random numbers for embedded devices (July 17, 2012)
LCE: Don't play dice with random numbers (November 20, 2012)
RapidIO
RapidIO support for Linux (June 8, 2005)
RAS tools
Kernel Summit: RAS tools (July 21, 2004)
Kernel Summit 2005: RAS tools (July 20, 2005)
RDMA
Supporting RDMA on Linux (April 27, 2005)
Readahead
Adaptive file readahead (October 12, 2005)
On-demand readahead (May 21, 2007)
Improving readahead (February 3, 2010)
Read-copy-update
Read-copy-update and interrupt latency (January 10, 2004)
RCU-safe reference counting (July 14, 2004)
Realtime preemption, part 2 (October 20, 2004)
Realtime preemption and read-copy-update (March 30, 2005)
API change: synchronize_kernel() deprecated (May 3, 2005)
What's holding up 2.6.14: two difficult bugs (October 18, 2005)
Making notifiers safe (November 21, 2005)
EXPORT_SYMBOL_GPL_FUTURE() (February 13, 2006)
RCU and open file accounting (March 7, 2006)
Read-copy-update for realtime (September 26, 2006)
Sleepable RCU (October 9, 2006)
RCU and Unloadable Modules (January 14, 2007)
Priority-Boosting RCU Read-Side Critical Sections (February 5, 2007)
The design of preemptible read-copy-update (October 8, 2007)
What is RCU, Fundamentally? (December 17, 2007)
What is RCU? Part 2: Usage (December 24, 2007)
RCU part 3: the RCU API (January 7, 2008)
Integrating and Validating dynticks and Preemptable RCU (April 22, 2008)
Hierarchical RCU (November 4, 2008)
RCU: The Bloatwatch Edition (March 17, 2009)
RCU mistakes (December 15, 2009)
RCU strings (January 5, 2010)
sys_membarrier() (January 13, 2010)
Lockdep-RCU (February 1, 2010)
The RCU API, 2010 Edition (December 8, 2010)
NoHZ tasks (December 20, 2010)
3.0 and RCU: what went wrong (July 27, 2011)
The new visibility of RCU processing (October 10, 2012)
Relocating RCU callbacks (October 31, 2012)
Simplifying RCU (March 6, 2013)
Reader-writer spinlocks
Eliminating rwlocks and IRQF_DISABLED (December 1, 2009)
__read_mostly
Short subjects: kerneloops, read-mostly, and port 80 (December 18, 2007)
Realtime
Approaches to realtime Linux (October 12, 2004)
Realtime preemption, part 2 (October 20, 2004)
The ongoing realtime story (October 27, 2004)
Schedulers, pluggable and realtime (November 3, 2004)
Merging the realtime security module (January 11, 2005)
Low latency for audio applications (January 26, 2005)
Realtime preemption and read-copy-update (March 30, 2005)
The beginning of the realtime preemption debate (June 1, 2005)
Realtime and interrupt latency (June 14, 2005)
Kernel Summit 2005: Realtime capabilities (July 20, 2005)
A new approach to kernel timers (September 20, 2005)
Priority inheritance in the kernel (April 3, 2006)
Kernel Summit 2006: Realtime (July 19, 2006)
Read-copy-update for realtime (September 26, 2006)
KS2007: Realtime and syslets (September 9, 2007)
What's in the realtime tree (October 3, 2007)
Fair user scheduling and other scheduler patches (October 16, 2007)
Realtime adaptive locks (March 5, 2008)
SCHED_FIFO and realtime throttling (September 1, 2008)
A new realtime tree (December 9, 2008)
Interview: the return of the realtime preemption tree (February 16, 2009)
The realtime preemption endgame (August 5, 2009)
The realtime preemption mini-summit (September 28, 2009)
Scenes from the Real Time Linux Workshop (October 5, 2009)
KS2009: Realtime preemption (October 21, 2009)
The state of realtime Linux (June 15, 2010)
Realtime Linux: academia v. reality (July 26, 2010)
Realtime group scheduling doesn't know JACK (December 19, 2010)
ELC: A PREEMPT_RT roadmap (April 27, 2011)
Per-CPU variables and the realtime tree (July 26, 2011)
Software interrupts and realtime (October 17, 2012)
The 2012 realtime minisummit (October 24, 2012)
LCE: Realtime, present and future (November 13, 2012)
Deadline scheduling
Deadline scheduling for Linux (October 13, 2009)
A new deadline scheduler patch (March 10, 2010)
Adding periods to SCHED_DEADLINE (July 20, 2010)
The IRMOS realtime scheduler (August 3, 2010)
KS2010: Deadline scheduling (November 2, 2010)
recvmmsg()
In brief (May 27, 2009)
Red-black trees
Trees II: red-black trees (June 22, 2006)
Augmented red-black trees (May 18, 2010)
Generic red-black trees (June 5, 2012)
Reference counting
The debut of kref (March 16, 2004)
RCU-safe reference counting (July 14, 2004)
reflink()
The two sides of reflink() (May 5, 2009)
This week's reflink() API (May 19, 2009)
In brief (September 9, 2009)
register_chrdev_region()
The cdev interface (August 16, 2006)
Regression testing
Toward better kernel releases (December 7, 2004)
Automated kernel testing (June 8, 2005)
Kernel testing and regressions: an example (July 26, 2005)
Kernel Summit 2006: Automated testing (July 19, 2006)
KS2012: Regression testing (August 30, 2012)
Reiser4
Reiser4 - the mammoth arrives (October 30, 2002)
On reiserfs and external attributes (April 28, 2004)
Looking at reiser4 (August 25, 2004)
More notes on reiser4 (September 1, 2004)
Toward merging reiser4 (September 11, 2005)
Reiser4 and kernel inclusion (September 21, 2005)
Debating reiser4 - again (August 1, 2006)
Filesystems: chunkfs and reiser4 (April 24, 2007)
Relayfs
Some upcoming sysfs enhancements (March 7, 2006)
Releases
Another look at the new development model (July 27, 2004)
Toward better kernel releases (December 7, 2004)
Linux 3.0? (September 3, 2008)
2.6.x-rc0 (October 7, 2009)
2.6.20
Who wrote 2.6.20? (February 21, 2007)
2.6.21
Who's writing 2.6.21 and related issues (March 7, 2007)
2.6.22
Merged (and to be merged) for 2.6.22 (May 2, 2007)
More stuff for 2.6.22 (May 9, 2007)
Who wrote - and approved - 2.6.22 (June 11, 2007)
A summary of 2.6.22 internal API changes (June 24, 2007)
2.6.23
The 2.6.23 merge window opens (July 11, 2007)
Merged for 2.6.23 (July 18, 2007)
The 2.6.23 stragglers (July 23, 2007)
Who wrote 2.6.23 (September 11, 2007)
A summary of 2.6.23 internal API changes (September 17, 2007)
2.6.24
Merged for 2.6.24 (October 17, 2007)
Merged for 2.6.24, part 2 (October 24, 2007)
2.6.24 - some statistics (January 9, 2008)
2.6.25
What got into 2.6.25 (January 30, 2008)
More stuff for 2.6.25 (February 6, 2008)
Before the 2.6.25 merge window closed... (February 12, 2008)
Where 2.6.25 came from (April 2, 2008)
2.6.26
The 2.6.26 merge window opens (April 23, 2008)
The 2.6.26 merge window, part 2 (April 30, 2008)
The last things through the 2.6.26 merge window (May 5, 2008)
A summary of 2.6.26 API changes (June 11, 2008)
Some development statistics for 2.6.26 - and beyond (July 2, 2008)
2.6.27
2.6.27: what's coming (part 1) (July 16, 2008)
2.6.27 merge window, part 2 (July 23, 2008)
Linux-next meets the merge window (July 23, 2008)
2.6.27 - the rest of the story (July 29, 2008)
Some development statistics for 2.6.27 (October 7, 2008)
The source of the e1000e corruption bug (October 21, 2008)
Tracking of testers and bug reporters - a status report (November 11, 2008)
2.6.28
Merged for 2.6.28 (October 15, 2008)
2.6.28 merge window, part 2 (October 22, 2008)
Closing out the 2.6.28 merge window (October 27, 2008)
Development statistics for 2.6.28 (December 18, 2008)
2.6.29
2.6.29 merge window, part 1 (January 7, 2009)
2.6.29 merge window, part 2 (January 14, 2009)
A summary of 2.6.29 internal API changes (March 3, 2009)
Where 2.6.29 came from (March 18, 2009)
2.6.30
2.6.30 merge window, part I (April 1, 2009)
2.6.30 merge window, part 2 (April 8, 2009)
Developer statistics for 2.6.30 (May 27, 2009)
2.6.31
2.6.31 merge window, week 1 (June 17, 2009)
2.6.31 merge window, week 2 (June 24, 2009)
Development statistics for 2.6.31 (August 26, 2009)
2.6.32
2.6.32 merge window, part 1 (September 16, 2009)
2.6.32 merge window, part 2 (September 23, 2009)
2.6.32 merge window, part 3 (September 30, 2009)
Who wrote 2.6.32 (November 24, 2009)
2.6.32.9 Release notes (February 21, 2010)
2.6.33
2.6.33 merge window part 1 (December 9, 2009)
2.6.33 merge window part 2 (December 16, 2009)
Who wrote 2.6.33 (February 9, 2010)
How old is our kernel? (February 17, 2010)
2.6.34
2.6.34 Merge window, part 1 (March 3, 2010)
2.6.34 Merge window, part 2 (March 10, 2010)
Kernel development statistics for 2.6.34 and beyond (May 4, 2010)
2.6.35
2.6.35 merge window part 1 (May 19, 2010)
2.6.35 merge window part 2 (May 26, 2010)
2.6.35 merge window part 3 (May 31, 2010)
Kernel development statistics for 2.6.35 (July 14, 2010)
2.6.36
2.6.36 merge window part 1 (August 4, 2010)
2.6.36 merge window: the sequel (August 11, 2010)
The conclusion of the 2.6.36 merge window (August 16, 2010)
Statistics for the 2.6.36 development cycle (October 13, 2010)
2.6.37
2.6.37 merge window, part 1 (October 27, 2010)
The second half of the 2.6.37 merge window (November 1, 2010)
Who wrote 2.6.37 (December 30, 2010)
2.6.38
2.6.38 merge window part 1 (January 12, 2011)
2.6.38 merge window part 2 (January 19, 2011)
Who wrote 2.6.38 (March 2, 2011)
2.6.39
2.6.39 merge window part 1 (March 16, 2011)
2.6.39 merge window, part 2 (March 23, 2011)
The 2.6.39 merge window concludes (March 29, 2011)
2.6.39 development statistics (May 10, 2011)
3.0
What's coming in $NEXT_KERNEL_VERSION, part 1 (May 25, 2011)
3.0 merge window part 2 (June 1, 2011)
Who wrote 3.0 - from two points of view (July 13, 2011)
3.1
3.1 merge window part 1 (July 27, 2011)
3.1 merge window part 2 (August 3, 2011)
A look at the 3.1 development cycle (September 28, 2011)
3.2
3.2 merge window, part 1 (November 2, 2011)
The second half of the 3.2 merge window (November 8, 2011)
Some numbers from the 3.2 development cycle (December 21, 2011)
3.3
The first half of the 3.3 merge window (January 11, 2012)
3.3 merge window part 2 (January 18, 2012)
Statistics for the 3.3 development cycle (March 6, 2012)
3.4
3.4 Merge window part 1 (March 21, 2012)
3.4 Merge window part 2 (March 28, 2012)
The conclusion of the 3.4 merge window (April 3, 2012)
Statistics from the 3.4 development cycle (May 8, 2012)
3.5
The 3.5 merge window opens (May 23, 2012)
3.5 merge window part 2 (May 31, 2012)
The conclusion of the 3.5 merge window (June 5, 2012)
Who wrote 3.5 (July 25, 2012)
3.6
3.6 merge window part 1 (July 25, 2012)
3.6 merge window part 2 (August 1, 2012)
The conclusion of the 3.6 merge window (August 3, 2012)
Where the 3.6 kernel came from (September 26, 2012)
3.7
3.7 Merge window part 1 (October 3, 2012)
3.7 merge window: conclusion and summary (October 17, 2012)
Statistics from the 3.7 development cycle (November 28, 2012)
3.8
3.8 Merge window part 1 (December 12, 2012)
3.8 Merge window part 2 (December 19, 2012)
Some 3.8 development statistics (February 13, 2013)
3.9
3.9 Merge window part 1 (February 20, 2013)
3.9 Merge window, second episode (February 27, 2013)
The conclusion of the 3.9 merge window (March 5, 2013)
Statistics from the 3.9 development cycle (April 17, 2013)
Stable updates
Some numbers and thoughts on the stable kernels (August 27, 2010)
Further notes on stable kernels (September 8, 2010)
Maintaining a stable kernel on an unstable base (September 29, 2010)
remap_file_pages()
Multi-protection VMAs (May 8, 2006)
Remapper
Buried in warnings (November 1, 2006)
remap_pfn_range()
remap_pfn_range() (September 29, 2004)
PG_reserved, VM_RESERVED, and VM_UNPAGED (November 22, 2005)
Resident set
Size limits
Simple resident set size limits (August 10, 2004)
Resizing filesystems
Online resizing of ext3 filesystems (June 15, 2004)
Resource management
Kernel Summit: Class-based Kernel Resource Management (July 21, 2004)
Resources
64-bit resources (June 13, 2006)
Device resource management (January 2, 2007)
The managed resource API (February 20, 2007)
Reverse engineering
LCA: The state of the Nouveau project (January 17, 2007)
Tracing memory-mapped I/O operations (February 26, 2008)
revoke()
revoke() and frevoke() (July 25, 2006)
revoke() returns (December 18, 2007)
Hotplug file descriptors and revoke() (April 14, 2009)
Retrying revoke() (April 9, 2013)
RSBAC
Rule set based access control (September 27, 2005)
Rustyvisor
An introduction to lguest (January 23, 2007)
Samba
Which filesystem for Samba4? (November 23, 2004)
Scalability
Kernel Summit 2006: Scalability (July 19, 2006)
Too many threads (April 10, 2007)
KS2007: Scalability (September 9, 2007)
Toward better direct I/O scalability (March 31, 2008)
The state of the pageout scalability patches (June 17, 2008)
The lockless page cache (July 29, 2008)
Tangled up in threads (August 19, 2008)
KS2009: How Google uses Linux (October 21, 2009)
JLS: Increasing VFS scalability (November 3, 2009)
Big reader locks (March 16, 2010)
CPUS*PIDS = mess (April 27, 2010)
One billion files on Linux (August 18, 2010)
VFS scalability patches in 2.6.36 (August 24, 2010)
Dueling inode scalability patches (October 20, 2010)
Resolving the inode scalability discussion (October 26, 2010)
KS2010: Scalability (November 3, 2010)
Dcache scalability and RCU-walk (December 14, 2010)
Dcache scalability and security modules (April 27, 2011)
LSFMM: Lock scaling (April 23, 2013)
Scatter/gather chaining
Scatterlist chaining (May 16, 2007)
The chained scatterlist API (October 29, 2007)
Rationalizing scatter/gather chains (December 28, 2007)
Scheduler
Scheduling domains (April 19, 2004)
The staircase scheduler (June 2, 2004)
Scheduler tweaks get serious (August 4, 2004)
When should a process be migrated? (October 6, 2004)
Schedulers, pluggable and realtime (November 3, 2004)
Low latency for audio applications (January 26, 2005)
Solving starvation problems in the scheduler (March 22, 2006)
SMPnice (June 6, 2006)
The Rotating Staircase Deadline Scheduler (March 6, 2007)
RSDL hits a snag (March 14, 2007)
TASK_KILLABLE (July 1, 2008)
SCHED_FIFO and realtime throttling (September 1, 2008)
High- (but not too high-) resolution timeouts (September 2, 2008)
Tracking tbench troubles (October 29, 2008)
Tbench troubles II (November 19, 2008)
The offline scheduler (September 2, 2009)
Some notes from the BFS discussion (September 9, 2009)
Various scheduler-related topics (September 15, 2009)
KS2009: The state of the scheduler (October 19, 2009)
Some approaches to parallelism avoidance (November 17, 2009)
Who let the hogs out? (March 16, 2010)
Improving scheduler latency (September 14, 2010)
KS2010: Scheduler issues (November 3, 2010)
Directed yield (December 15, 2010)
KS2011: Scheduler testing (October 24, 2011)
The Linaro Connect scheduler minisummit (February 22, 2012)
Linsched for 3.3 (March 21, 2012)
How 3.6 nearly broke PostgreSQL (October 2, 2012)
Per-entity load tracking (January 9, 2013)
and power management
Rethinking power-aware scheduling (January 10, 2012)
The return of power-aware scheduling (August 21, 2012)
Small-task packing (October 24, 2012)
Toward a more power-efficient scheduler (April 10, 2013)
big.LITTLE
Linux support for ARM big.LITTLE (February 15, 2012)
A big.LITTLE scheduler update (June 12, 2012)
Completely fair scheduler
Schedulers: the plot thickens (April 17, 2007)
This week in the scheduling discussion (April 24, 2007)
Fair user scheduling and other scheduler patches (October 16, 2007)
CFS bandwidth control (February 16, 2011)
Deadline scheduling
Deadline scheduling for Linux (October 13, 2009)
A new deadline scheduler patch (March 10, 2010)
Adding periods to SCHED_DEADLINE (July 20, 2010)
The IRMOS realtime scheduler (August 3, 2010)
KS2010: Deadline scheduling (November 2, 2010)
SCHED_DEADLINE returns (April 11, 2012)
Filtered wakeups
Filtered wakeups (May 5, 2004)
Group scheduling
CFS group scheduling (July 2, 2007)
TTY-based group scheduling (November 17, 2010)
Group scheduling and alternatives (December 6, 2010)
Realtime group scheduling doesn't know JACK (December 19, 2010)
A group scheduling demonstration (March 16, 2011)
NUMA
Toward better NUMA scheduling (March 16, 2012)
AutoNUMA: the other approach to NUMA scheduling (March 27, 2012)
A potential NUMA scheduling solution (October 31, 2012)
NUMA in a hurry (November 14, 2012)
scnprintf()
snprintf() confusion (February 3, 2004)
SCSI
Lots of SCSI disks (March 16, 2004)
Shooting at SCSI targets (December 22, 2010)
LSFMM: A storage technology update (April 23, 2013)
LSFMM: Unit attentions and thin provisioning thresholds (April 24, 2013)
LSFMM: I/O hints (April 24, 2013)
LSFMM: Reducing SCSI latency (April 25, 2013)
LSFMM: SCSI testing (April 25, 2013)
Block SCSI generic (bsg)
Recent patches of interest (August 4, 2004)
Command filtering
2.6.8 and CD recording (August 18, 2004)
SCSI command filtering (July 31, 2006)
A privilege escalation via SCSI pass-through (January 4, 2012)
Filtering SCSI commands (January 30, 2013)
SDIO
SDIO support coming (July 24, 2007)
Security
A weak cryptoloop implementation in Linux? (January 21, 2004)
The trouble with backporting fixes (February 26, 2004)
A new Adore root kit (March 17, 2004)
Kernel Summit: Security (July 21, 2004)
Securely renting out your CPU with Linux (January 26, 2005)
read() and write() access checking (February 8, 2005)
More hooks for kernel events (February 9, 2005)
The 2.4-hf tree launches (February 16, 2005)
The kernel gets a formal security contact (March 9, 2005)
Attack of the killer CD (March 22, 2005)
RHEL, kernel vulnerabilities, and days of risk (March 23, 2005)
OLS: Linux and trusted computing (July 22, 2005)
On the safety of the sysfs interfaces (April 5, 2006)
Appropriate sources of entropy (May 21, 2008)
Handling kernel security problems (July 16, 2008)
System calls and rootkits (September 10, 2008)
LCA: The security panel (January 21, 2009)
Seccomp and sandboxing (May 13, 2009)
Rootless X (July 15, 2009)
/proc and directory permissions (October 28, 2009)
Symbolic links in "sticky" directories (June 2, 2010)
An ancient kernel hole is closed (August 18, 2010)
KS2010: Security (November 3, 2010)
Protecting /proc/slabinfo (March 9, 2011)
On vsyscalls and the vDSO (June 8, 2011)
LSS: The kernel hardening roundtable (September 15, 2011)
Limiting system calls via control groups? (October 19, 2011)
KS2011: Kernel.org report (October 24, 2011)
Tightening security: not for the impatient (June 27, 2012)
Randomizing the kernel (April 10, 2013)
Integrity verification
The Integrity Measurement Architecture (May 24, 2005)
Integrity management in the kernel (March 28, 2007)
The return of EVM (June 30, 2010)
dm-verity (September 19, 2011)
IMA appraisal extension (March 28, 2012)
LSS: Integrity for directories and special files (September 19, 2012)
Key management
Trusted and encrypted keys (October 6, 2010)
Patch verification
Pull requests with signed tags (December 21, 2011)
Random number generation
On the safety of Linux random numbers (May 9, 2006)
Random numbers for embedded devices (July 17, 2012)
SCSI command filtering
2.6.8 and CD recording (August 18, 2004)
SCSI command filtering (July 31, 2006)
Security modules
Stackable security modules (November 10, 2004)
Trustees Linux (November 16, 2004)
Merging the realtime security module (January 11, 2005)
Time to remove LSM? (May 31, 2005)
securityfs (September 27, 2005)
Complete coverage in Linux security modules (October 3, 2005)
Some trusted computing security modules (November 15, 2005)
Linux security non-modules and AppArmor (June 27, 2007)
Smack for simplified access control (August 8, 2007)
SMACK meets the One True Security Module (October 2, 2007)
LSM: loadable or static? (October 24, 2007)
The return of authoritative hooks (March 18, 2008)
TOMOYO Linux and pathname-based security (April 14, 2008)
Snet and the LSM API (January 28, 2009)
Restricting the network (January 6, 2010)
FBAC-LSM (January 13, 2010)
LSM stacking (again) (June 23, 2010)
Pathname-based hooks for SELinux? (December 8, 2010)
Supporting multiple LSMs (February 9, 2011)
Security modules and ioctl() (February 16, 2011)
Dcache scalability and security modules (April 27, 2011)
Seccomp: replacing security modules? (May 16, 2011)
Seccomp filters: permission denied (May 25, 2011)
LSS: LSM roundtable (September 14, 2011)
Another LSM stacking approach (October 3, 2012)
The return of loadable security modules? (November 28, 2012)
Security technologies
x86 NX support (June 2, 2004)
Cryptographic signatures on kernel modules (July 7, 2004)
Address space randomization in 2.6 (February 2, 2005)
Defending against fork bombs (May 3, 2005)
Kernel Summit 2005: The ExecShield patches (July 19, 2005)
Rule set based access control (September 27, 2005)
The AppArmor debate begins (April 26, 2006)
Kernel Summit 2006: Security (July 19, 2006)
A bid to resurrect Linux capabilities (September 10, 2006)
File-based capabilities (November 29, 2006)
USB device authorization (July 17, 2007)
Credential records (September 25, 2007)
Kernel-based malware scanning (December 4, 2007)
Ksplice: kernel patches without reboots (April 29, 2008)
The TALPA molehill (August 6, 2008)
TALPA strides forward (August 27, 2008)
Followups: performance counters, ksplice, and fsnotify (December 17, 2008)
The future for grsecurity (January 7, 2009)
DazukoFS: a stackable filesystem for virus scanning (February 11, 2009)
Sanitizing kernel memory (May 27, 2009)
Page sanitization, part 2 (June 3, 2009)
The fanotify API (July 1, 2009)
Toward a saner execve() (March 30, 2010)
Extending the use of RO and NX (January 12, 2011)
Capabilities for loading network modules (March 2, 2011)
Fighting fork bombs (March 29, 2011)
Expanding seccomp (May 4, 2011)
Kernel address randomization (May 24, 2011)
Seccomp filters: No clear path (July 7, 2011)
Securely deleting files from ext4 filesystems (October 11, 2011)
Loading signed kernel modules (December 7, 2011)
Fixing the symlink race problem (December 14, 2011)
Yet another new approach to seccomp (January 11, 2012)
System call filtering and no_new_privs (January 18, 2012)
A library for seccomp filters (April 25, 2012)
Supervisor mode access prevention (September 26, 2012)
The module signing endgame (November 21, 2012)
UEFI secure boot
Preparing the kernel for UEFI secure boot (September 6, 2012)
UEFI secure boot kernel restrictions (November 7, 2012)
Signing ELF binaries (January 16, 2013)
Loading keys from Microsoft PE binaries (February 27, 2013)
Vulnerabilities
Subverting mremap() (January 6, 2004)
A new mremap() vulnerability (February 18, 2004)
TCP vulnerability: cancel red alert (April 21, 2004)
A nasty FPU bug (June 15, 2004)
Anatomy of a kernel vulnerability (December 15, 2004)
Linux kernel security (January 12, 2005)
A hole in PaX (March 9, 2005)
Is hyperthreading dangerous? (May 17, 2005)
A survey of recent kernel vulnerabilities (October 18, 2005)
Denial of reality vulnerabilities (July 12, 2006)
vmsplice(): the making of a local root exploit (February 12, 2008)
The rest of the vmsplice() exploit story (March 4, 2008)
Another Linux capabilities hole found (April 15, 2009)
A privilege escalation flaw in udev (April 22, 2009)
Linux ASLR vulnerabilities (April 29, 2009)
Fun with NULL pointers, part 1 (July 20, 2009)
Fun with NULL pointers, part 2 (July 21, 2009)
Another null pointer exploit (November 4, 2009)
The x86_64 DOS hole (February 2, 2010)
Another old security problem (September 8, 2010)
The hazards of 32/64-bit compatibility (September 22, 2010)
Kernel vulnerabilities: old or new? (October 19, 2010)
Structure holes and information leaks (December 1, 2010)
debugfs: rules not welcome (February 22, 2011)
RLIMIT_NPROC and setuid() (July 20, 2011)
A /proc/PID/mem vulnerability (January 25, 2012)
A story of three kernel vulnerabilities (February 19, 2013)
Seeking
Safely
Safe seeks (August 10, 2004)
SELinux
The lightweight auditing framework (April 7, 2004)
Kernel Summit 2006: Security (July 19, 2006)
Newer kernels and older SELinux policies (September 24, 2008)
Pathname-based hooks for SELinux? (December 8, 2010)
Semaphores
Time for a new semaphore type? (April 5, 2005)
Reworking the semaphore interface (December 14, 2005)
Semaphores and mutexes (December 20, 2005)
Goodbye semaphores? (January 3, 2006)
The mutex API (January 10, 2006)
Generic semaphores (March 17, 2008)
The big kernel lock strikes again (May 13, 2008)
Speculating on page faults (January 12, 2010)
send_kevent()
A kernel events layer (July 27, 2004)
Figuring out kernel event reporting (September 8, 2004)
seq_file
A seq_file API tweak (November 8, 2005)
Serial ATA
Big block transfers: good or bad? (March 29, 2004)
Big serial ATA changes (May 16, 2006)
set_fs_root()
The abrupt un-exporting of symbols (January 12, 2005)
Shared subtrees
Shared subtrees (November 8, 2005)
Shingled magnetic recording
LSFMM: A storage technology update (April 23, 2013)
signalfd()
Kernel events without kevents (March 13, 2007)
Signal handling
GCC 4.3.0 exposes a kernel bug (March 7, 2008)
skb_reserve()
On the alignment of IP packets (June 15, 2004)
Slab allocator
The SLUB allocator (April 11, 2007)
Some snags for SLUB (December 28, 2007)
SLQB - and then there were four (December 16, 2008)
The SLEB allocator (May 19, 2010)
Slab allocator of the week: SLUB+Queuing (June 29, 2010)
sleep_on()
sleep_on() in 2.6. (January 27, 2004)
Slow work
The slow work mechanism (April 22, 2009)
smbfs
On the future of smbfs (May 15, 2006)
Soft updates
Soft updates, hard problems (July 1, 2009)
Software interrupts
Software interrupts and realtime (October 17, 2012)
Software suspend
Software Suspend 2.0 (February 4, 2004)
Which is the real software suspend? (March 16, 2004)
Software suspend: and then there were two (July 21, 2004)
Recent patches of interest (August 4, 2004)
Power management: looking for a direction (August 18, 2004)
Merging swsusp2 (December 1, 2004)
A pair of suspend2 patches (July 26, 2005)
A new path to the refrigerator (August 3, 2005)
User-space software suspend (September 26, 2005)
A software suspend decision point (November 16, 2005)
Two software suspend image writing patches (February 1, 2006)
Software suspend - again (February 6, 2006)
Kernel Summit 2006: Software suspend (July 18, 2006)
Yet another approach to software suspend (July 18, 2007)
A new suspend/hibernate infrastructure (March 19, 2008)
TuxOnIce: in from the cold? (May 13, 2009)
Solid-state storage devices
Block layer discard requests (August 12, 2008)
The trouble with discard (August 18, 2009)
Log-structured file systems: There's one in every SSD (September 18, 2009)
Solid-state storage devices and the block layer (October 4, 2010)
The best way to throw blocks away (December 1, 2010)
Optimizing Linux with cheap flash drives (February 18, 2011)
Future storage technologies and Linux (April 6, 2011)
Supporting block I/O contexts (June 18, 2012)
LFCS: Preparing Linux for nonvolatile memory devices (April 19, 2013)
Sorting
Some more 2.6.12 API changes (March 16, 2005)
sparse
Finding kernel problems automatically (June 1, 2004)
Using sparse for endianness verification (October 25, 2006)
Sparse
Sparse gets a maintainer (November 8, 2006)
Spinlocks
Out-of-lining spinlocks (August 11, 2004)
Unified spinlock initialization (November 3, 2004)
Some 2.6.11 API changes (January 25, 2005)
The kernel lock validator (May 31, 2006)
Ticket spinlocks (February 6, 2008)
Realtime adaptive locks (March 5, 2008)
Atomic context and kernel API design (March 25, 2008)
A new realtime tree (December 9, 2008)
The realtime preemption endgame (August 5, 2009)
The realtime preemption mini-summit (September 28, 2009)
Eliminating rwlocks and IRQF_DISABLED (December 1, 2009)
Improving ticket spinlocks (January 3, 2013)
splice()
Circular pipes (January 11, 2005)
The evolution of pipe buffers (January 18, 2005)
Some new system calls (December 20, 2005)
Two new system calls: splice() and sync_file_range() (April 3, 2006)
tee() with your splice()? (April 11, 2006)
The splice() weekly news (April 24, 2006)
vmsplice(): the making of a local root exploit (February 12, 2008)
Stable pages
Notes from the block layer (February 22, 2011)
Stable pages (May 11, 2011)
The trouble with stable pages (March 13, 2012)
Optimizing stable pages (December 5, 2012)
LSFMM: Page forking (April 23, 2013)
Stack overflow
An ancient kernel hole is closed (August 18, 2010)
Stack size
4K Stacks in 2.6 (May 12, 2004)
4K stacks - again (November 15, 2005)
4K stacks by default? (April 23, 2008)
Staging tree
A new kernel tree: linux-staging (June 11, 2008)
Moving the -staging tree (October 1, 2008)
News from the staging tree (September 9, 2009)
On the driver life cycle (October 13, 2009)
KS2009: Staging, linux-next, and the development process (October 21, 2009)
Staging drivers out (October 28, 2009)
Staircase scheduler
The staircase scheduler (June 2, 2004)
Scheduler tweaks get serious (August 4, 2004)
The Rotating Staircase Deadline Scheduler (March 6, 2007)
RSDL hits a snag (March 14, 2007)
Stanford checker
Finding kernel problems automatically (June 1, 2004)
Static keys
very_unlikely() very unliked (February 29, 2012)
String processing
Converting strings to integers (March 23, 2011)
The word-at-a-time interface (June 12, 2012)
Sucker tree
Is the kernel development process broken? (March 9, 2005)
Swappiness parameter
2.6 swapping behavior (May 5, 2004)
Swimwear
Quote of the week (January 21, 2004)
swiotlb
DMA issues, part 2 (June 30, 2004)
What's holding up 2.6.14: two difficult bugs (October 18, 2005)
A better DMA memory allocator (March 10, 2008)
Symbolic links
Supporting deeper symbolic links (June 30, 2004)
Standards, the kernel, and Postfix (August 20, 2008)
Tightening security: not for the impatient (June 27, 2012)
sync_file_range()
Two new system calls: splice() and sync_file_range() (April 3, 2006)
synchronize_kernel()
API change: synchronize_kernel() deprecated (May 3, 2005)
sysctl()
The death and possible rebirth of sysctl() (October 18, 2006)
Re-deprecating sysctl() (August 29, 2007)
Removing binary sysctl (November 11, 2009)
Sysfs
Trimming down sysfs (February 4, 2004)
Safe sysfs support (February 11, 2004)
Driver core functions: GPL only (September 29, 2004)
A big set of driver core changes (June 21, 2005)
Nested classes (October 5, 2005)
Sysfs and a stable kernel ABI (February 22, 2006)
Some upcoming sysfs enhancements (March 7, 2006)
On the safety of the sysfs interfaces (April 5, 2006)
Toward a safer sysfs (April 9, 2007)
KS2007: The greater kernel ecosystem and user-space APIs (September 6, 2007)
Sysfs and namespaces (August 26, 2008)
Events layer
Figuring out kernel event reporting (September 8, 2004)
Moving module parameters
Recent patches of interest (August 4, 2004)
Syslets
Alternatives to fibrils (February 13, 2007)
Threadlets (February 27, 2007)
The return of syslets (May 30, 2007)
KS2007: Realtime and syslets (September 9, 2007)
sys_indirect() (November 19, 2007)
Simpler syslets (December 10, 2007)
LCA: A new approach to asynchronous I/O (January 27, 2009)
sys_reiser4()
Looking at reiser4 (August 25, 2004)
System calls
read() and write() access checking (February 8, 2005)
Some new system calls (December 20, 2005)
Fun with file descriptors (June 4, 2007)
More fun with file descriptors (June 12, 2007)
sys_indirect() (November 19, 2007)
System call updates: indirect(), timerfd(), and hijack() (November 28, 2007)
Extending system calls (May 14, 2008)
System calls and rootkits (September 10, 2008)
The two sides of reflink() (May 5, 2009)
This week's reflink() API (May 19, 2009)
xstat() and fxstat() (June 30, 2010)
Limiting system calls via control groups? (October 19, 2011)
clone()
Namespaces in operation, part 2: the namespaces API (January 8, 2013)
kcmp()
LCE: Checkpoint/restore in user space: are we there yet? (November 20, 2012)
setns()
Namespaces in operation, part 2: the namespaces API (January 8, 2013)
signalfd()
Checkpoint/restore and signals (January 9, 2013)
unshare()
Namespaces in operation, part 2: the namespaces API (January 8, 2013)
SystemTap
On DTrace envy (August 7, 2007)
Kernel markers (August 15, 2007)
A generic tracing interface (September 19, 2007)
File monitoring with Mortadelo and SystemTap (March 5, 2008)
More DTrace envy (July 2, 2008)
Tracing: no shortage of options (July 22, 2008)
A SystemTap update (January 21, 2009)
Tainting
Being honest with MODULE_LICENSE (April 27, 2004)
Tainting from user space (May 24, 2006)
TASK_KILLABLE
TASK_KILLABLE (July 1, 2008)
Tasklets
Eliminating tasklets (June 24, 2007)
Task watchers
Task watchers (November 7, 2006)
TCP
TCP window scaling and broken routers (July 7, 2004)
Linux and TCP offload engines (August 22, 2005)
TCP Fast Open: expediting web services (August 1, 2012)
tee()
tee() with your splice()? (April 11, 2006)
Textsearch
Some 2.6.13 API changes (July 12, 2005)
Thermal management
Tripping over trip points (August 7, 2007)
Thrashing
Token-based thrashing control (August 4, 2004)
Threadlets
Threadlets (February 27, 2007)
Timekeeping
A new core time subsystem (January 26, 2005)
Virtual time (April 18, 2006)
Counting on the time stamp counter (November 13, 2006)
timerfd()
Kernel events without kevents (March 13, 2007)
timerfd() and system call review (August 14, 2007)
The new timerfd() API (September 25, 2007)
System call updates: indirect(), timerfd(), and hijack() (November 28, 2007)
Timer frequency
Boot-time clock frequency selection (December 14, 2004)
The dynamic tick patch (June 7, 2005)
How fast should HZ be? (August 2, 2005)
The state of the dynamic tick patch (August 31, 2005)
Timers
Deleting timers quickly (May 12, 2004)
A new kernel timer API (May 18, 2005)
A new approach to kernel timers (September 20, 2005)
On the merging of ktimers (October 19, 2005)
The high-resolution timer API (January 16, 2006)
The timer API: size or type safety? (December 5, 2006)
Deferrable timers (March 28, 2007)
High- (but not too high-) resolution timeouts (September 2, 2008)
Timer slack (January 12, 2010)
The trouble with the TSC (May 19, 2010)
Waking systems from suspend (March 2, 2011)
Greedy hrtimer expiration (October 4, 2011)
Timer slack for slacker developers (October 17, 2011)
Short sleeps suffering from slack (February 17, 2012)
Leaping seconds and looping servers (July 2, 2012)
TOMOYO Linux
TOMOYO Linux and pathname-based security (April 14, 2008)
Tracing
On DTrace envy (August 7, 2007)
A generic tracing interface (September 19, 2007)
More DTrace envy (July 2, 2008)
Tracing: no shortage of options (July 22, 2008)
KS2008: Tracing (September 17, 2008)
Low-level tracing plumbing (September 30, 2008)
On the value of static tracepoints (April 28, 2009)
A lockless ring-buffer (July 8, 2009)
Dynamic probes with ftrace (July 28, 2009)
Fun with tracepoints (August 12, 2009)
TRACE_EVENT_ABI (September 30, 2009)
Minimizing instrumentation impacts (December 9, 2009)
Debugging the kernel using Ftrace - part 1 (December 9, 2009)
Debugging the kernel using Ftrace - part 2 (December 22, 2009)
Uprobes: not quite there yet (January 20, 2010)
Secrets of the Ftrace function tracer (January 20, 2010)
Using the TRACE_EVENT() macro (Part 1) (March 24, 2010)
Using the TRACE_EVENT() macro (Part 2) (March 31, 2010)
Using the TRACE_EVENT() macro (Part 3) (April 21, 2010)
ELC: Using LTTng (April 21, 2010)
Uprobes returns - again (May 11, 2010)
One ring buffer to rule them all? (May 26, 2010)
Statistics and tracepoints (August 24, 2010)
trace-cmd: A front-end for Ftrace (October 20, 2010)
KS2010: ABI status for tracepoints (November 2, 2010)
Conditional tracepoints (November 30, 2010)
Using KernelShark to analyze the real-time scheduler (February 2, 2011)
Uprobes: 11th time is the charm? (March 16, 2011)
Ftrace, perf, and the tracing ABI (May 11, 2011)
KS2011: Tracing for large-scale data centers (October 24, 2011)
LTTng rejection, next generation (December 14, 2011)
LTTng 2.0: Tracing for power users and developers - part 1 (April 11, 2012)
LTTng 2.0: Tracing for power users and developers - part 2 (April 18, 2012)
Uprobes in 3.5 (May 30, 2012)
Transcendent memory
Transcendent memory (July 8, 2009)
Cleancache and Frontswap (May 4, 2010)
zcache: a compressed page cache (July 27, 2010)
Transcendent memory in a nutshell (August 12, 2011)
Frontswap gets broadsided (November 2, 2011)
The zsmalloc allocator (January 25, 2012)
The zswap compressed swap cache (February 12, 2013)
In-kernel memory compression (April 3, 2013)
LSFMM: In-kernel memory compression (April 23, 2013)
Translation table maps (TTM)
Memory management for graphics processors (November 6, 2007)
GEM v. TTM (May 28, 2008)
LPC: The future of Linux graphics (September 24, 2008)
Trapfs
Trapfs - an automounter on the cheap (November 3, 2004)
Triggers
Triggers: less busy busy-waiting (August 18, 2008)
Trusted computing
OLS: Linux and trusted computing (July 22, 2005)
Some trusted computing security modules (November 15, 2005)
TSC
Counting on the time stamp counter (November 13, 2006)
TTY layer
A tempest in a tty pot (July 29, 2009)
UBIFS
UBIFS (April 2, 2008)
udev
The future of device numbers (January 6, 2004)
The return of devfs (May 6, 2009)
The udev tail wags the dog (August 24, 2011)
Udev and firmware (October 10, 2012)
UDPCP
How not to get a protocol implementation merged (January 12, 2011)
uninitialized_var()
Removing uninitialized_var() (December 19, 2012)
Unionfs
Unionfs (January 10, 2007)
State of the unionfs (January 15, 2008)
Unioning file systems: Implementations, part 2 (April 7, 2009)
Union mounts
Unifying filesystems with union mounts (December 24, 2008)
Union file systems: Implementations, part I (March 25, 2009)
Unioning file systems: Implementations, part 2 (April 7, 2009)
A brief history of union mounts (July 14, 2010)
unshare()
A system call for unsharing (May 10, 2005)
Some new system calls (December 20, 2005)
The last-minute unshare() discussion (March 21, 2006)
execns() (July 11, 2006)
Uprobes
Uprobes: not quite there yet (January 20, 2010)
Uprobes returns - again (May 11, 2010)
Uprobes: 11th time is the charm? (March 16, 2011)
Uprobes in 3.5 (May 30, 2012)
USB
Dynamic USB device IDs (November 21, 2005)
Putting a lid on USB power (June 5, 2006)
USB device authorization (July 17, 2007)
The USB composite framework (July 14, 2010)
__user
Finding kernel problems automatically (June 1, 2004)
User-mode Linux
Kernel Summit: Virtualization support (July 21, 2004)
OLS: Xen and UML (July 23, 2005)
Book Review: User Mode Linux (May 16, 2006)
User-space API
Kernel Summit 2006: The user-space API (July 18, 2006)
Application-friendly kernel interfaces (March 26, 2007)
timerfd() and system call review (August 14, 2007)
KS2007: The greater kernel ecosystem and user-space APIs (September 6, 2007)
The new timerfd() API (September 25, 2007)
System calls and 64-bit architectures (December 17, 2008)
Extended error reporting (February 17, 2010)
The hazards of 32/64-bit compatibility (September 22, 2010)
The x32 system call ABI (August 29, 2011)
The UAPI header file split (July 25, 2012)
EPOLL_CTL_DISABLE and multithreaded applications (October 17, 2012)
A kernel change breaks GlusterFS (March 27, 2013)
Design
EPOLL_CTL_DISABLE, epoll, and API design (October 23, 2012)
Error reporting
Making EPERM friendlier (January 19, 2013)
Testing
KS2012: Regression testing (August 30, 2012)
LCA: The Trinity fuzz tester (February 6, 2013)
UTF-8 encoding
The kernel and character set encodings (February 18, 2004)
Utrace
Introducing utrace (March 7, 2007)
The return of utrace (March 25, 2009)
Another mainline push for utrace (December 2, 2009)
Uprobes: not quite there yet (January 20, 2010)
Back to the drawing board for utrace? (January 27, 2010)
Replacing ptrace() (January 27, 2010)
v9fs
A filesystem from Plan 9 space (May 25, 2005)
vDSO
On vsyscalls and the vDSO (June 8, 2011)
Vectored I/O
Asynchronous I/O and vectored operations (February 7, 2006)
API changes: interrupt handlers and vectored I/O (October 2, 2006)
VFS
Some VFS address space operations changes (October 17, 2007)
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)
Video4Linux2 part 7: Controls (August 31, 2007)
On the management of the Video4Linux subsystem tree (February 24, 2009)
Video buffer pools (September 16, 2009)
Videobuf: buffer management for V4L2 drivers (November 23, 2009)
The end for Video4Linux1 (March 24, 2010)
2.6.35 Video4Linux2 enhancements (May 25, 2010)
The media controller subsystem (November 16, 2010)
The videobuf2 API (June 14, 2011)
Virtualization
Kernel Summit: Virtualization support (July 21, 2004)
Kernel Summit 2005: Virtualization (July 19, 2005)
OLS: Xen and UML (July 23, 2005)
SMP alternatives (December 14, 2005)
The VMI virtualization interface (March 15, 2006)
Virtual time (April 18, 2006)
Kernel Summit 2006: Paravirtualization and containers (July 19, 2006)
Connecting Linux to hypervisors (August 8, 2006)
Resource beancounters (August 29, 2006)
Guest page hinting (September 6, 2006)
An API for virtual I/O: virtio (July 11, 2007)
/dev/ksm: dynamic memory sharing (November 12, 2008)
KSM tries again (April 28, 2009)
AlacrityVM (August 5, 2009)
Memory management for virtualization (April 7, 2010)
Unmapped page cache control (December 13, 2010)
Directed yield (December 15, 2010)
Safe device assignment with VFIO (January 3, 2012)
Containers
Containers and PID virtualization (January 17, 2006)
PID virtualization: a wealth of choices (February 8, 2006)
Containers and lightweight virtualization (April 10, 2006)
Virtualization: now what? (May 22, 2006)
execns() (July 11, 2006)
Another container implementation (September 19, 2006)
Network namespaces (January 30, 2007)
Process containers (May 29, 2007)
Process IDs in a multi-namespace world (November 6, 2007)
Freezing filesystems and containers (June 25, 2008)
Divorcing namespaces from processes (March 3, 2010)
Namespace file descriptors (September 29, 2010)
Running distributions in containers (October 12, 2011)
LCE: The failure of operating systems and how we can fix it (November 14, 2012)
KVM
Patch summary: regulatory domains, network channels, and virtualization (October 25, 2006)
Some KVM developments (January 9, 2007)
KVM 15 (February 26, 2007)
KVM, QEMU, and kernel project management (March 23, 2010)
The native KVM tool (April 12, 2011)
Merging the kvm tool (August 23, 2011)
No kvmtool in the mainline (February 20, 2013)
Lguest
An introduction to lguest (January 23, 2007)
Network
Routing Open vSwitch into the mainline (November 30, 2011)
Xen
Xen is coming (November 22, 2004)
The Xen patches (May 10, 2006)
Xen: finishing the job (March 4, 2009)
Xen again (June 3, 2009)
vmalloc()
Reworking vmap() (October 21, 2008)
vm_insert_page()
The evolution of driver page remapping (December 6, 2005)
vmsplice()
The splice() weekly news (April 24, 2006)
Briefly: patch quality, CKRM, likely(), and vmsplice() (May 3, 2006)
VM_UNPAGED
PG_reserved, VM_RESERVED, and VM_UNPAGED (November 22, 2005)
The evolution of driver page remapping (December 6, 2005)
volatile
The trouble with volatile (May 9, 2007)
ACCESS_ONCE() (August 1, 2012)
Volatile ranges
POSIX_FADV_VOLATILE (November 22, 2011)
Volatile ranges with fallocate() (June 5, 2012)
KS2012: memcg/mm: Volatile ranges (September 17, 2012)
Many more words on volatile ranges (November 5, 2012)
LSFMM: Coprocessors, exit times, and volatile ranges, and more (April 23, 2013)
Voluntary preemption
Addressing latency problems in 2.6 (July 14, 2004)
Voluntary preemption and hardware interrupts (July 27, 2004)
Scheduler tweaks get serious (August 4, 2004)
Update from the latency front (August 18, 2004)
Approaches to realtime Linux (October 12, 2004)
vringfd()
vringfd() (April 7, 2008)
Wait queues
Filtered wakeups (May 5, 2004)
Wayland and Weston
XDC2012: Graphics stack security (September 25, 2012)
Web sites
Two new web sites (October 11, 2005)
Window scaling
TCP window scaling and broken routers (July 7, 2004)
Wireless extensions
Reworking the wireless extensions (June 23, 2004)
Linux and wireless networking (January 11, 2006)
The 2006 Wireless Networking Summit (April 10, 2006)
Kernel Summit 2006: Mini-summit summaries (July 18, 2006)
The final wireless extension? (October 4, 2006)
Word-at-a-time
The word-at-a-time interface (June 12, 2012)
Workqueues
Single-threaded workqueues (April 28, 2004)
Recent patches of interest (August 4, 2004)
Some 2.6.12 API changes (March 8, 2005)
A pair of suspend2 patches (July 26, 2005)
Workqueues and internal API conventions (August 29, 2006)
Workqueues get a rework (November 27, 2006)
Eliminating tasklets (June 24, 2007)
Concurrency-managed workqueues (October 7, 2009)
Turbulence for concurrency-managed workqueues (December 23, 2009)
Concurrency-managed workqueues and thread priorities (June 22, 2010)
Working on workqueues (September 7, 2010)
Making workqueues non-reentrant (August 15, 2012)
Lazy
In brief (August 26, 2009)
Write barriers
The return of write barriers (March 24, 2004)
Some block layer patches (October 26, 2005)
Barriers and journaling filesystems (May 21, 2008)
The end of block barriers (August 18, 2010)
Write throttling
Predictive per-task write throttling (September 21, 2005)
Smarter write throttling (August 14, 2007)
Writeout throttling (December 11, 2007)
No-I/O dirty throttling (August 31, 2011)
x32
The x32 system call ABI (August 29, 2011)
x86_64
Files with negative offsets (May 31, 2005)
i386 and x86_64: back together? (July 31, 2007)
KS2007: Hardware support and the i386/x86_64 merger (September 6, 2007)
Xen
Xen is coming (November 22, 2004)
alloc_skb_from_cache() (January 4, 2005)
Toward the merging of Xen (March 2, 2005)
Kernel Summit 2005: Virtualization (July 19, 2005)
OLS: Xen and UML (July 23, 2005)
The Xen patches (May 10, 2006)
Connecting Linux to hypervisors (August 8, 2006)
Xen: finishing the job (March 4, 2009)
Xen again (June 3, 2009)
Zero page
Some ado about zero (July 7, 2009)
Adding a huge zero page (September 26, 2012)
zswap
The zswap compressed swap cache (February 12, 2013)
In-kernel memory compression (April 3, 2013)
LSFMM: In-kernel memory compression (April 23, 2013)
|