The Linux Kernel
Development process
Submitting patches
Code of conduct
Maintainer handbook
All development-process docs
Core API
Driver APIs
Subsystems
Locking
Licensing rules
Writing documentation
Development tools
Testing guide
Hacking guide
Unreliable Guide To Hacking The Linux Kernel
Unreliable Guide To Locking
False Sharing
Tracing
Fault injection
Livepatching
Rust
Administration
Build system
Reporting issues
Userspace tools
Userspace API
Firmware
Firmware and Devicetree
CPU architectures
Unsorted documentation
Translations
The Linux Kernel
Kernel Hacking Guides
View page source
English
Chinese (Simplified)
Italian
Kernel Hacking Guides
¶
Unreliable Guide To Hacking The Linux Kernel
Introduction
The Players
Some Basic Rules
ioctls: Not writing a new system call
Recipes for Deadlock
Common Routines
Wait Queues
include/linux/wait.h
Atomic Operations
Symbols
Routines and Conventions
Putting Your Stuff in the Kernel
Kernel Cantrips
Thanks
Unreliable Guide To Locking
Introduction
The Problem With Concurrency
Locking in the Linux Kernel
Hard IRQ Context
Cheat Sheet For Locking
The trylock Functions
Common Examples
Common Problems
Locking Speed
What Functions Are Safe To Call From Interrupts?
Mutex API reference
Futex API reference
Further reading
Thanks
Glossary
False Sharing
What is False Sharing
False Sharing Pitfalls
How to detect and analyze False Sharing
Possible Mitigations
Miscellaneous