7 comments

  • EdSchouten 1 hour ago
    I still remember following Andries’s “Linux kernel hacker’s hut” course he taught at the Eindhoven University of Technology (TU/e) back in 2010. Every week we’d get an assignment where we had to write exploits for commonly occurring security vulnerabilities (e.g., buffer overflows, bad printf format). It was one of the most enjoyable courses I ever followed. Thanks for that, Andries!
    • blux 31 minutes ago
      Hey fellow TU/e'er :) I followed his course as well, somewhere around 2004/5. Executing man in the middle attacks, writing buffer overflow exploits. Good memories!
  • lelandfe 1 hour ago
    I never pay for the OOF insurance, it seems like a waste of money and I've never met anyone that's had it happen.
    • keyle 8 minutes ago
      It can only happen once anyway, and I fly weekly!
  • rwmj 1 hour ago
    It's 2026 and I still can't configure the OOM killer to kill firefox before anything else.
    • bellowsgulch 24 minutes ago
      I looked into this, and actually, it seems like maybe you can? https://man7.org/linux/man-pages/man5/proc_pid_oom_score_adj...

      So, in actuality, I think your assertion just taught us all something, because despite knowing that the OOM killer and that the Magic SysRq key[1] exists, I didn't know you could configure this as an input!

      [1]: https://en.wikipedia.org/wiki/Magic_SysRq_key

      • rwmj 10 minutes ago
        I'm aware of it, but it's awkward to use in practice. You have to track down all the FF processes, each time you run it, and adjust all their scores.
    • IsTom 7 minutes ago
      It's not a panacea, but in my case setting browser.tabs.unloadOnLowMemory in about:config helped a bunch.
    • SoftTalker 43 minutes ago
      I always wanted it to target java processes, as they were always the culprit. These days it's python, VSCode, and antigravity.
    • dvh 1 hour ago
      This. It's always browser running amok. I configured win+k shortcut key to: killall -9 chrome
  • hyperpape 20 minutes ago
    I confess, this is very funny and the underlying situation is a bit absurd, but it's unclear what point Brouwer is making by pointing out the absurdity.

    There surely is something absurd about having to register specific processes as exempt from the OOM killer. But given that the OOM killer exists, and could kill xlock...how should that be fixed?

  • sedatk 1 hour ago
    I’d say, let the one who tried to allocate memory crash, and if you’re a critical process like xlock, use statically allocated memory and don’t alloc again.
    • feelamee 1 hour ago
      > if you’re a critical process like xlock, use statically allocated memory and don’t alloc again.

      This doesn't save you if someone other allocates and OOM killer chooses you as victim

      • hkolk 1 hour ago
        What is proposed is to not have an OOM killer with a selection process, meaning that the "someone other allocates" would be the one dying.
        • tux3 1 hour ago
          The problem is that Linux has memory overcommit and it will OOM when a process faults a page in, not just when someone allocates memory.

          So the OOM condition can hit any random process, not necessarily one that just tried to allocate. If you don't have some sort of selection, then you would still have an OOM killer, only it will be killing completely at random.

          • muvlon 3 minutes ago
            That's true, but critical processes could mlockall() after setup, so their stuff never needs paging in.
        • sedatk 1 hour ago
          Yes, don’t have OOM roulette.
    • Retr0id 1 hour ago
      Statically allocated memory can still OOM on access, due to overcommit and lazy page table population. What you really want is mlockall(2) (probably with MCL_CURRENT|MCL_ONFAULT followed by madvise with MADV_POPULATE_*)
    • LoganDark 1 hour ago
      This is only a viable answer when overcommit is disabled. The problem comes when overcommit is enabled and you find yourself in a position where many programs think they already have memory and yet there is none to give them. If you simply kill the first piece of code that encounters the end of available memory you might take down anything including the kernel itself.

      Nothing like statically allocating memory can work when overcommit is enabled because the kernel is free to compress memory, page it out and etc. and then murder you the next time you try to perform any operation that it doesn't have the space for, no matter how safe and static your initialization was.

      Note that overcommit is very useful in many cases including the ones where swap saves the stability of the system under conditions that would otherwise completely lock up or panic, so it's also not viable to just prevent it from being used.

      • SoftTalker 41 minutes ago
        OOM killer always felt like a band-aid on a severed artery to me. I've rarely seen a machine that got into OOM state really recover without a full reboot.
      • sedatk 1 hour ago
        I’m not against taking down the kernel if the situation is that catastrophic. Better than killing the lock screen for sure.
        • josefx 1 hour ago
          Shouldn't desktop environments detect if a lock screen terminated abnormaly anyway? The OOM killer is just one of many possible causes.
        • LoganDark 1 hour ago
          IMO if the security of a system depends on the lock screen not crashing then the system is not very secure. Security protocols should never fail open like that; a lock screen should never simply be a layer on top of the authenticated desktop. Windows and macOS get this right. I believe Wayland display managers are also able to get this right (but I haven't checked).
    • amluto 1 hour ago
      The fact that xlock crashing unlocks an X11 session is, IMO, pathetic.
      • gjvc 1 hour ago
        looking forward to your other insights
  • bastawhiz 16 minutes ago
    Especially in an era where RAM is so expensive, the obvious answer is to simply never use memory. If your data can't fit in the plethora of CPU registers at your disposal, your software is probably too complicated. /s
  • cwillu 1 hour ago
    (2004)