You are not logged in.
Hello, I'm looking for help troubleshooting system freezes on my Framework 16.
Host: Framework Laptop 16
Kernel: Linux 7.2.6-arch2-1
Window manager: Hyprland 0.56.2 (Wayland)
CPU: AMD Ryzen 7 7840HS
iGPU: AMD Radeon 780M
dGPU: AMD Radeon RX 7700S
Memory: 16G
The system freezes started occurring sometime around September 18th. Here are the observable symptoms:
I am usually doing some fairly lightweight work. Hyprland is open, and I typically have firefox, an editor, and some terminal (kitty) windows open. RAM usage sits on average between 3-6G. Before the freeze occurs, I usually notice the fans spin faster (although CPU and GPU temps are still well within normal operating temperature), and RAM usage might increase slightly (by about 1G or so). Sometimes, I see clamav or snapper running, which may or may not be accounting for the increased fan speed and RAM usage.
Then the system freezes for anywhere between 3 seconds and 60 seconds. I have been unable to pinpoint what is causing the freeze, and thus have not been able to create a set of steps to duplicate the freeze on my machine. While the system is frozen, I can spawn new terminal windows, but they do not load and I cannot type in them. All windows/applications (current or newly created windows) are unresponsive. However, I can still move the mouse and switch workspaces in Hyprland. Using any of the SysRq key combos do not register until after the freeze ends.
And I want to note that the system freeze ALWAYS goes away without user intervention after somewhere between 3 and 60 seconds. Once the system is responsive again, any SysRq key combos pushed during that time print to journalctl -f. I often notice that journalctl logs that snapperd service has been deactivated successfully once the system freeze ends and resumes normal operation, but I do not know if this is related at all.
Any advice on how to collect more useful data/troubleshoot would be greatly appreciated.
Last edited by Anniemae (Yesterday 13:10:51)
Offline
A recording of the journal during a freeze should help. My guess is that it's the drive.
Offline
Do you mean to post the output of journalctl before and after when the freeze occurs, or is there another way to produce what you're requesting?
Offline
Yes, the unedited journal starting from a minute before the freeze, and ending a minute after. You can use the -S and -U flags in journalctl.
Last edited by topcat01 (2026-09-25 19:10:14)
Offline
Here are two unedited journal entries, from yesterday when the freezes were happening. I'm estimating the beginning timestamp based on when I noticed the system freeze according to the clock (journalctl shows nothing during the time of the freeze).
Freeze 1 (from approx. 12:36:15-12:36:40)
Sep 24 12:35:09 lilac kernel: BTRFS info (device nvme0n1p2): qgroup scan completed (inconsistency flag cleared)
Sep 24 12:36:40 lilac systemd[927]: Started kitty child process: 15363 launched by: 15253.
Sep 24 12:36:40 lilac systemd[927]: Started kitty child process: 15365 launched by: 15264.
Sep 24 12:36:40 lilac systemd[927]: Started kitty child process: 15496 launched by: 15241.
Sep 24 12:36:48 lilac nordvpnd[789]: 2026/09/24 12:36:48.489584 logger.go:49: [Info] HTTP CALL Duration: 117.497292ms
Sep 24 12:36:48 lilac nordvpnd[789]: Request: GET https://api.nordvpn.com/v1/servers?filters[servers.id]=0 map[Accept-Encoding:[gzip, deflate] Content-Length:[] Content-Type:[application/json] User-Agent:[NordApp Linux/5.4.0 (Arch Linux)]]
Sep 24 12:36:48 lilac nordvpnd[789]: Response: HTTP/3.0 200 - map[Accept-Ranges:[bytes] Age:[5] Alt-Svc:[h3=":443"; ma=86400] Cache-Control:[public, max-age=30] Cf-Cache-Status:[HIT] Cf-Ray:[a40335cafbe789b6-IAD] Content-Length:[2] Content-Type:[application/json] Date:[Thu, 24 Sep 2026 16:36:48 GMT] Expires:[Thu, 24 Sep 2026 16:37:18 GMT] Last-Modified:[Thu, 24 Sep 2026 16:36:43 GMT] Priority:[u=3,i=?0] Server:[cloudflare] Server-Timing:[cfExtPri] Set-Cookie:[__cf_bm=gi6yyzzokO_tScn3XKPivWgzwV8b0UGGA0s4SP.uubY-1790267808.476033-1.0.1.1-1SsAyhmu5hDVE_biLeNm.zE7Kiqvm8qCg6e3ARJJel1lO4cAPmMuObx9GVDj.NgdLd4kucefXdhUcK4_rcnylNp115XzEhEr2_XMskP_dM0U66PpuiGVv5kOjfuLk2VkIasDbl3rmQRFbJIYqMdBbw; HttpOnly; SameSite=None; Secure; Path=/; Domain=nordvpn.com; Expires=Thu, 24 Sep 2026 17:06:48 GMT] Strict-Transport-Security:[max-age=31536000; includeSubDomains; preload] Vary:[Accept-Encoding] X-Accept-Before:[1790311003] X-Authorization:[key-id="rsa-key-1",algorithm="rsa-sha256"] X-Content-Security-Policy:[frame-ancestors "none"] X-Digest:[4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945] X-Frame-Options:[deny] X-Signature:[eHohMYjlE3/hMhEZelukWC0ryALjHFw81E4I1HR7kTbIfmhKPBlGcsCokhInjrqZZgFebUKZwO3A/FdXeNOVErDTkhFh8I1mjNI11WJN2W8aWLQS4KzDlRyLIsDpEGCYHTPSWa6CgnfcmPVBtDJ6q8/OebJczG8KHzvW0X8NuUc6sVAUYJXHJsuljorT95J2P4GbT8RPKYzUAHaHyTOXO1DYItiWX2UYggbKR888i2HB4jht9M1L4GjH741xgomgCQXPAbVxZe0VbtqSeWmuH2mE0mtqxxA3TdX3QHzw3YucyfxKy1ZBpm2j63yHReP+DvHpn4koQHSJNt0FheWpElkli3gnMV7GB1a+8ooWhXi88k8UqGaOVIBG3fN8319UagDTglviBPOiyDpJDgrfpbfkMVanpzuGPOP+VO7b9lMgVGEJjSEXDgMvTUECSu9kMAoM24APCbLKiQP0+Okc7i9fY0Hmi4Mh21dfXgU8T5wlSJE3o7CzEsmh53fwoGvbfmBvry8DZg0J7rS/kIhiFhxpheo9ced6zQt5wbIw2zSQoFN5glFI/jGIwJkmmor6cpScglY28ulBClyQMtp+VGz8lv2HKPNxGOKck8x0rnnJyKaoeatJpsTGij7LlNHZnLQIJHwShpAIWuT0pjgWZXsH6o3gdTXbLWBibeQ42oo=]]
Sep 24 12:36:53 lilac nordvpnd[789]: 2026/09/24 12:36:53.318515 logger.go:49: [Info] HTTP CALL Duration: 163.873558ms
Sep 24 12:36:53 lilac nordvpnd[789]: Request: HTTP/1.1 POST https://applytics.nordvpn.com/v2/app/events map[Content-Encoding:[gzip] Content-Type:[application/json] User-Agent:[Moose/24.5.0 (Arch Linux; linux x86_64) (No Name/No Version) service_quality/request_servers]] (binary data)
Sep 24 12:36:53 lilac nordvpnd[789]: Response: HTTP/1.1 200 - map[Alt-Svc:[h3=":443"; ma=86400] Cf-Cache-Status:[DYNAMIC] Cf-Ray:[a40335e90fc4128e-CLT] Connection:[keep-alive] Content-Length:[0] Date:[Thu, 24 Sep 2026 16:36:53 GMT] Nel:[{"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}] Report-To:[{"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=dsDwVN7Y5RgshzDal1l5seJ98%2B11HNTGQzUue8UsBOilY%2FYQsxyJf8LPOAk5Yc5hww6z92MyBPlHm7ovAb6%2FPc%2BbNqrt5oUqnXuvZ3utEYN7ETeaP8yOLdKosEuaELKZZdZRnP0hwJs%3D"}]}] Server:[cloudflare] Vary:[Accept-Encoding]]
Sep 24 12:37:07 lilac systemd[927]: Started kitty child process: 15640 launched by: 15626.
Sep 24 12:37:13 lilac sudo[15733]: anniemae : TTY=pts/2 ; PWD=/home/anniemae ; USER=root ; COMMAND=/usr/bin/journalctl -f
Sep 24 12:37:13 lilac sudo[15733]: pam_unix(sudo:session): session opened for user root(uid=0) by anniemae(uid=1000)
Sep 24 12:37:36 lilac sudo[15733]: pam_unix(sudo:session): session closed for user root
Sep 24 12:37:38 lilac sudo[15801]: anniemae : TTY=pts/2 ; PWD=/home/anniemae ; USER=root ; COMMAND=/usr/bin/journalctl -b
Sep 24 12:37:38 lilac sudo[15801]: pam_unix(sudo:session): session opened for user root(uid=0) by anniemae(uid=1000)
Sep 24 12:37:50 lilac kernel: BTRFS info (device nvme0n1p2): qgroup scan completed (inconsistency flag cleared) Freeze 2 (from approx. 12:40:20-12:40:52)
Sep 24 12:40:06 lilac systemd[927]: Started kitty child process: 16033 launched by: 16013.
Sep 24 12:40:07 lilac kernel: evmisc-0132 ev_queue_notify_reques: Dispatching Notify on [BAT1] (Device) Value 0x81 (Information Change) Node 00000000b646e486
Sep 24 12:40:08 lilac kernel: evmisc-0132 ev_queue_notify_reques: Dispatching Notify on [BAT1] (Device) Value 0x80 (Status Change) Node 00000000b646e486
Sep 24 12:40:18 lilac sudo[15801]: pam_unix(sudo:session): session closed for user root
Sep 24 12:40:52 lilac systemd[927]: Started kitty child process: 16201 launched by: 16140.
Sep 24 12:40:52 lilac systemd[927]: Started kitty child process: 16316 launched by: 16136.
Sep 24 12:40:54 lilac clamd[631]: Thu Sep 24 12:40:54 2026 -> SelfCheck: Database status OK.
Sep 24 12:41:19 lilac sudo[16468]: anniemae : TTY=pts/2 ; PWD=/home/anniemae ; USER=root ; COMMAND=/usr/bin/journalctl -f
Sep 24 12:41:19 lilac sudo[16468]: pam_unix(sudo:session): session opened for user root(uid=0) by anniemae(uid=1000)
Sep 24 12:41:47 lilac systemd[927]: Started kitty child process: 16557 launched by: 16496.
Sep 24 12:41:47 lilac systemd[927]: Started kitty child process: 16598 launched by: 16477. Offline
I see you're using btrfs. Is
sudo btrfs device stats / # mount point or deviceclean?
Edit: is quota support enabled for btrfs? Please also post:
sudo btrfs subvolume show /Last edited by topcat01 (2026-09-25 19:40:05)
Offline
running
sudo btrfs device statsoutputs 0 errors:
[/dev/nvme0n1p2].write_io_errs 0
[/dev/nvme0n1p2].read_io_errs 0
[/dev/nvme0n1p2].flush_io_errs 0
[/dev/nvme0n1p2].corruption_errs 0
[/dev/nvme0n1p2].generation_errs 0The output of
sudo btrfs subvolume show /shows:
/
Name: <FS_TREE>
UUID: 84b6195c-47c4-45d1-ab41-4a80b3d3e2cc
Parent UUID: -
Received UUID: -
Creation time: 2026-04-29 12:43:35 -0400
Subvolume ID: 5
Generation: 66668
Gen at creation: 0
Parent ID: 0
Top level ID: 0
Flags: -
Send transid: 0
Send time: 2026-04-29 12:43:35 -0400
Receive transid: 0
Receive time: -
Snapshot(s):
.snapshots/28/snapshot
.snapshots/29/snapshot
.snapshots/30/snapshot
.snapshots/31/snapshot
.snapshots/33/snapshot
.snapshots/34/snapshot
.snapshots/36/snapshot
.snapshots/37/snapshot
.snapshots/38/snapshot
.snapshots/39/snapshot
.snapshots/40/snapshot
.snapshots/41/snapshot
.snapshots/44/snapshot
.snapshots/45/snapshot
.snapshots/46/snapshot
.snapshots/47/snapshot
.snapshots/48/snapshot
.snapshots/49/snapshot
.snapshots/50/snapshot
.snapshots/51/snapshot
Quota group: 0/5
Limit referenced: -
Limit exclusive: -
Usage referenced: 428.63GiB
Usage exclusive: 157.98MiBAnd running
sudo btrfs quota status /shows:
Quotas on /:
Enabled: yes
Mode: qgroup (full accounting)
Inconsistent: no
Override limits: no
Drop subtree threshold: 3
Total count: 26
Level 0: 25so it does look like quota support is enabled. To be totally honest, I'm not familiar with quota support and am just starting to read about it and what it does. I'm new to Arch and using btrfs as of this year, so I'm still learning a lot.
Offline
I disabled btrfs quotas to see if that was the problem. When I search the journal, I *usually* am seeing a btrfs quota rescan occurring within a minute or so before the freezes occur. I have one documented freeze where the journal did not record a btrfs quota rescan though.
Possibly related, before trying all of these steps, I did notice that when snapper ran a cleanup the freezes often, though not always, occurred. Maybe it's related to the btrfs quota rescan?
Also, ran Memtest overnight with no errors so I have pretty high confidence it's not a memory issue.
Offline
Quotas can cause performance issues once the number of snapshots approaches about a hundred. Are the freezes gone now after disabling quotas?
Offline