How the Linux Buddy and SLUB Allocators Work: Orders, Partial Slabs, and Why malloc Is Not a Page Fault
A driver that calls kmalloc(256, GFP_ATOMIC) from an interrupt handler and a process that calls malloc(256) are not talking to the same al...
A driver that calls kmalloc(256, GFP_ATOMIC) from an interrupt handler and a process that calls malloc(256) are not talking to the same al...
A database that updates a 4 KiB page does not update a 4 KiB cell on the SSD. The host sends a logical block address. The drive's flash ...
A call to puts in a normal C binary is not a direct jump to libc. The machine code in the executable names a procedure-linkage-table stub. ...
A NIC that just received a frame cannot wait for the current process to finish a syscall. The device raises a hardware interrupt. The CPU st...
A process that spends all its time in a tight userspace loop never notices SIGTERM until the kernel has a chance to put that process back on...
A mutex that takes a system call on every lock and unlock would dominate a hot critical section. The uncontended case is a few atomic instru...
A shared linked list in the kernel can be walked by thousands of cores at once. A writer still has to insert or delete a node. If every walk...
A CPU core runs one thread at a time. Everything else that looks concurrent is a lie the operating system maintains by switching. The policy...
A tight loop of read and write pays for a privilege crossing on every operation. After Spectre-era mitigations that crossing got more expe...