Creating controllable D state (uninterruptible sleep) processes

tl;dr: Using vfork(), one can create a process in a D state that is not immune to signal interruption. Using fsfreeze, one can create a process in a D state that is immune to signal interruption. But wait, how can any D state process be "not immune to signal interruption"? Is … | Continue reading


@chrisdown.name | 8 months ago

Signals in prod: dangers and pitfalls

Link: Meta developer blog As part of my work improving our production stability at Meta, one of the areas that I am frequently involved in is in improving how operating system concepts and primitives are being used (or indeed misused). Most of the blog posts that I write on this … | Continue reading


@chrisdown.name | 2 years ago

tmpfs inode corruption: introducing inode64

A few months ago I got a report from a service owner that their service was crashing when trying to access certain files stored in tmpfs. This service provid... | Continue reading


@chrisdown.name | 3 years ago

Programming/gaming with the Kinesis Advantage 2

Advice on programming, gaming, and more with the Advantage 2 | Continue reading


@chrisdown.name | 3 years ago

mutt support for Gmail's "mute" feature

Gmail has a neat feature called | Continue reading


@chrisdown.name | 4 years ago

In defence of swap: common misconceptions

(This post is also available in Japanese.) | Continue reading


@chrisdown.name | 4 years ago

psi-notify: Alerting before CPU/memory/IO becomes oversaturated

Link: https://github.com/cdown/psi-notify | Continue reading


@chrisdown.name | 4 years ago

Unprivileged userland containers without root or userns

(This post goes into some details about Arch Linux, but the general principles apply the same to other Linux distributions, too.) | Continue reading


@chrisdown.name | 4 years ago

On “1195725856” and other mysterious numbers

Continue reading


@chrisdown.name | 4 years ago

Linux memory management at scale

One thing that has become clearer and clearer to me through these conversations is that many engineers -- and even senior SREs -- have a number of common misconceptions about Linux memory management, and this may be causing the services and systems they support to not be able to … | Continue reading


@chrisdown.name | 5 years ago

The curious case of stalled squashfs reads

Here's an interesting issue I and Tejun looked at a few days ago that I thought might be interesting to share with a wider audience. I hope it can serve as a... | Continue reading


@chrisdown.name | 6 years ago

Adding power related targets to systemd

systemd has a bunch of nice "power" related targets that come shipped by default. For example, sleep.target is extremely useful if you want to lock your scre... | Continue reading


@chrisdown.name | 7 years ago

cgroupv2: Linux's new unified control group hierarchy

This year I was back again at FOSDEM and elsewhere, this time talking about the new version of control groups I and others have been working on. | Continue reading


@chrisdown.name | 7 years ago

Simulating service cold cache starts with eBPF/strace + oflag=nocache

Occasionally I run into problems with cold cache startups for services. Debugging these issues can be kind of complicated since these issues can be sporadic,... | Continue reading


@chrisdown.name | 7 years ago