From: Askar Safin <safinaskar@gmail.com>
To: Zdenek Kabelac <zkabelac@redhat.com>
Cc: Mikulas Patocka <mpatocka@redhat.com>,
adrelanos@whonix.org, arraybolt3@gmail.com,
cryptsetup@lists.linux.dev, dm-devel@lists.linux.dev,
gmazyland@gmail.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: Hard system lock-ups when using encrypted swap and RAM is exhausted
Date: Thu, 15 Jan 2026 13:36:58 +0300 [thread overview]
Message-ID: <CAPnZJGBkR-ossXKGAj-62Wf-stiuWUwKQUGNo286J_jEiA+nDw@mail.gmail.com> (raw)
In-Reply-To: <fc1d7900-3a5f-4b31-8aa3-8c8cd317d646@redhat.com>
On Sun, Jan 11, 2026 at 4:34 PM Zdenek Kabelac <zkabelac@redhat.com> wrote:
> You probably do need to configure your systemd-oom killer to prevent getting
[[ I think I know why I get this behaviour, see section "Why
dm-integrity behaves so"
below. ]]
I don't like systemd-oomd. It starts to kill processes long before
both memory and
swap is full.
Let me repeat what I need: I have big RAM and big swap. And I want OOM killer
to kill processes only when absolutely necessary, i. e. when both RAM and swap
is full. systemd-oomd is opposite of this: it kills processes long before that
moment, in misguided attempt to keep the system responsive.
But for me my apps are more important than responsiveness. I. e. 4 minutes long
freezes I talk about are lesser evil than killing everything.
So I explicitly disabled systemd-oomd on my system.
> configuration - as OOM is supposed to kill userland RAM hogging task much
I will repeat: "free -h" output at that moment showed that my RAM is full,
but swap is 23% full (87 Gb out of 378 Gb are used). So, there is
a lot of space.
> So I think you should also show whole device tree of your system and some more
My system is not unusual at all. It is a laptop. With 64 Gb memory and
378 Gb swap.
I will repeat: swap is located on dm-integrity.
CPU is Intel Core i9.
> information - so there is even 'remote' chance trying to reproduce your scenario.
Here are steps to reproduce:
- Take some high-specced machine. I. e. this should be machine, which
is fast, and which never experiences
slowdowns in normal situations
- Put swap on dm-integrity in journaled mode
- RAM should be 64 Gb and swap should be 378 Gb
- Open a lot of Chromium tabs until your RAM is nearly full and your
swap is 23% full
- Work at your computer for some days (play Youtube videos and perform
various other activity)
- At some point your whole computer will freeze for some time, say 4 minutes
- You will also notice that this happens with journaled dm-integrity
mode, but doesn't happen in non-journaled mode
- (Kernel version is 6.12.48)
I'm nearly sure that everybody will be able to successfully reproduce
this. I don't think precise device tree matters.
= Why dm-integrity behaves so =
I think I know why this happens.
- Some process needs memory, but RAM is full
- So kernel attempts to send some memory (i. e. some page) to swap
- But swap is located on top of dm-integrity
- And dm-integrity (in journaled mode) write everything twice: once to
journal and then to final place
- So dm-integrity layer at first writes that page to journal
- But journal is cached. Using so-called dm-bufio cache
- And this cache is located in RAM as opposed to disk!
- So that page is written to dm-bufio cache, which is located in memory!
- Thus this page is not actually removed from memory, it is merely
moved from one
memory place to another (!!!!!!)
- This means that the system is still short of memory (!!!!!)
- Thus kernel attempts to flush to swap more memory
- But this merely causes whole process to repeat
I think that is why I experience freezes. But I'm not sure about this.
Also, I will repeat: this is merely an experience report. I'm not
really interested
in fixing of this bug. I merely sent this report for your information.
I personally
switched to non-journaled mode, and I'm happy.
I'm okay with sharing more info about my setup. But I will not test any patches.
--
Askar Safin
next prev parent reply other threads:[~2026-01-15 10:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-12 5:18 Aaron Rainbolt
2025-11-27 7:59 ` Milan Broz
2025-11-27 17:54 ` Mikulas Patocka
2025-11-27 23:24 ` Aaron Rainbolt
2025-11-28 0:51 ` Kurt Fitzner
2025-11-28 13:06 ` Mikulas Patocka
2025-12-11 18:24 ` Askar Safin
2026-01-02 13:46 ` Mikulas Patocka
2026-01-10 7:09 ` Askar Safin
2026-01-11 13:34 ` Zdenek Kabelac
2026-01-15 10:36 ` Askar Safin [this message]
2026-01-15 11:01 ` Askar Safin
2025-11-27 23:37 ` Aaron Rainbolt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAPnZJGBkR-ossXKGAj-62Wf-stiuWUwKQUGNo286J_jEiA+nDw@mail.gmail.com \
--to=safinaskar@gmail.com \
--cc=adrelanos@whonix.org \
--cc=arraybolt3@gmail.com \
--cc=cryptsetup@lists.linux.dev \
--cc=dm-devel@lists.linux.dev \
--cc=gmazyland@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mpatocka@redhat.com \
--cc=zkabelac@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox