Articles

Linux

What Does TCP listen() Backlog Actually Control on Linux?

Does listen() backlog control the SYN queue or accept queue? Trace Linux 6.10 behavior through somaxconn, SYN cookies, …

7 min read
Linux

How epoll Wakes a Waiting Thread in the Linux Kernel

Trace epoll from epoll_ctl() registration to socket wakeups, ep_poll_callback(), ready-list delivery, ovflist races, …

8 min read
Linux

What Actually Happens During a Linux System Call on x86-64?

Follow a Linux system call across the x86-64 privilege boundary: registers, entry_SYSCALL_64, kernel stacks, KPTI, …

8 min read
Linux

Why Fewer Syscalls Don't Make io_uring Faster Than epoll

io_uring can reduce system calls without improving throughput or tail latency. Compare its completion model, batching, …

8 min read
LLM

10M-Token Context Windows: What Fits Is Not What Works

Maximum context length, effective context, and economically servable context are three different things. The U-shaped …

9 min read
Redis

Redis Distributed Locks: Fine for Efficiency, Not Enough for Correctness

Redis distributed locks explained: SET NX PX basics, TTL expiry and stale clients, watchdog limits, the Redlock debate, …

11 min read
Linux

mmap() vs read(): When Zero-Copy Is Actually Slower

Is mmap() faster than read()? Compare copying, page faults, readahead, TLB pressure, tail latency, and the workloads …

9 min read
Linux

fork() in Multithreaded Programs: The Child Gets the State, Not the Threads

When a multithreaded process calls fork(), the child keeps locked mutexes, half-flushed buffers, and shared file …

9 min read
Claude Code

Claude Opus 4.8 Released, But Not Showing Up in Claude Code? Here's the Fix

Anthropic released Claude Opus 4.8, but the model picker in Claude Code doesn't show it. Here's why it happens, how to …

5 min read
Hermes

Hermes in Practice: Two Saves and a Sharp Edge

A few months into running Hermes day-to-day, here are the moments worth writing down — the diagnosis from a machine I'd …

4 min read