Learned an important lesson about OpenBSD: When I first set up my new server, I did so in a VM on my local machine (see previous entries). I didn't really think about it, so I gave the VM two CPU cores. The system installed fine, it booted fine, I uploaded it to my hosting provider, and it worked fine there. Until I installed the first patch via "syspatch". In OpenBSD, there are two common kernels you can install: GENERIC and GENERIC.MP. Since my local VM had two cores, the installer installed GENERIC.MP. My VPS only has one core, though. GENERIC.MP works on a single-core machine as well, so that's not an issue. When syspatch installs a kernel update, it tries to find out which kernel you're running. Oh, no, that's exactly the problem. It does not do that. It looks at your CPU and deduces from the number of cores which kernel you SHOULD be running. Sure enough, a single-core machine should not be running the MP kernel, so syspatch happily installed patches for the SP kernel. In other words, it didn't install the patch at all. I don't know, this feels like a bug to me. Theo de Raadt doesn't think so: https://marc.info/?l=openbsd-misc&m=150043142926972&w=2 The problem has been reported by another user some months ago. It has been dismissed because it's considered a strange usage pattern. I totally get Theo's point. People do crazy stuff and then blame someone else for it. Yes, my setup is a strange usage pattern, absolutely. I'm still not convinced, though. WHY does syspatch look at the hardware instead of the running kernel? In what situation is that the proper action? Looking at the source code of syspatch doesn't help. The tool works this way since it was first written. The other user that reported this problem was doing some shuffling of GENERIC and GENERIC.MP. I fear that the devs were a bit quick to dismiss the case. ____________________ After some more testing: You can't just swap kernels on OpenBSD by moving around the /bsd, /bsd.mp, and /bsd.sp files. If you switch a kernel, you can boot from it -- but you can't install patches the syspatch way, because files are missing from /usr/share/compile. I don't know where they come from, probably some point in the base install ... Point is, even if syspatch was to look at which kernel is running instead of how many cores you have, it still wouldn't work. Only question remaining: Why are there two kernels? Is keeping the non-MP variant worth the trouble? ____________________ At the end of the day, it's just that I'm still unfamiliar with OpenBSD. Arch Linux might do similarly "weird" things, but I've been using Arch for almost ten years now, so there are very little surprises. I have to keep using OpenBSD to learn more about it. That's the way to go.