Bug 1223460 - Btrfs-cleaner causes Pageflip timeout on kde mobile
Summary: Btrfs-cleaner causes Pageflip timeout on kde mobile
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: x86-64 openSUSE Tumbleweed
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: David Sterba
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-28 16:40 UTC by ted chang
Modified: 2024-05-09 08:31 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
dmesg-kyber (517.76 KB, text/plain)
2024-04-29 09:37 UTC, ted chang
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ted chang 2024-04-28 16:40:55 UTC
I believe you should consider a different scheduler other than None for btrfs with snapper. I am running kde plasma mobile and btrfs-cleaner will hang the DE while it runs. Fortunately, the problem will fix itself after a minute or two. I do not care too much about the CPU usage.

I havn't tried kyber, mq-deadline, or bfq to see whether it solves the issue. 


System Information

LCD Steam Deck.

 cat /sys/block/nvme0n1/queue/scheduler 
[none] mq-deadline kyber bfq 

Operating System: openSUSE Tumbleweed 20240426
KDE Plasma Version: 6.0.4
KDE Frameworks Version: 6.1.0
Qt Version: 6.7.0
Kernel Version: 6.8.7-1-default (64-bit)
Graphics Platform: Wayland
Processors: 8 × AMD Custom APU 0405
Memory: 13.5 GiB of RAM
Graphics Processor: AMD Custom GPU 0405
Manufacturer: Valve
Product Name: Jupiter
System Version: 1

NVME Identify Controller:
vid       : 0x15b7
ssvid     : 0x15b7
sn        : 233101400993        
mn        : WD_BLACK SN770M 1TB    




sudo btrfs qgroup show /
Qgroupid    Referenced    Exclusive   Path 
--------    ----------    ---------   ---- 
0/5           16.00KiB     16.00KiB   <toplevel>
0/256         16.00KiB     16.00KiB   @
0/257         15.78GiB     15.78GiB   @/var
0/258         16.00KiB     16.00KiB   @/usr/local
0/259         16.00KiB     16.00KiB   @/srv
0/260          2.60MiB      2.60MiB   @/root
0/261         16.00KiB     16.00KiB   @/opt
0/262         70.44GiB     70.44GiB   @/home
0/263          4.21MiB      4.21MiB   @/boot/grub2/x86_64-efi
0/264         16.00KiB     16.00KiB   @/boot/grub2/i386-pc
0/265       1020.00KiB   1020.00KiB   @/.snapshots
0/610         16.00KiB     16.00KiB   @/var/lib/machines
0/1013        21.59GiB     36.60MiB   @/.snapshots/741/snapshot
0/1221           0.00B        0.00B   <stale>
0/1222           0.00B        0.00B   <stale>
0/1223        21.66GiB    524.43MiB   @/.snapshots/951/snapshot
0/1224        21.32GiB    114.02MiB   @/.snapshots/952/snapshot
0/1229        21.25GiB    237.35MiB   @/.snapshots/957/snapshot
0/1230        21.65GiB      1.66MiB   @/.snapshots/958/snapshot
0/1231        21.65GiB      1.80MiB   @/.snapshots/959/snapshot
0/1232        21.26GiB      9.66MiB   @/.snapshots/960/snapshot
0/1233        21.26GiB     19.21MiB   @/.snapshots/961/snapshot
0/1234        21.29GiB    697.49MiB   @/.snapshots/962/snapshot
0/1257           0.00B        0.00B   <stale>
0/1258           0.00B        0.00B   <stale>
0/1259        21.33GiB     94.70MiB   @/.snapshots/983/snapshot
0/1260        21.38GiB     96.00KiB   @/.snapshots/984/snapshot
0/1261        21.38GiB    128.00KiB   @/.snapshots/985/snapshot
0/1262        21.38GiB    144.00KiB   @/.snapshots/986/snapshot
0/1263        21.38GiB    224.00KiB   @/.snapshots/987/snapshot
0/1264        21.39GiB    128.00KiB   @/.snapshots/988/snapshot
0/1265        21.39GiB    128.00KiB   @/.snapshots/989/snapshot
0/1266        21.58GiB      2.31MiB   @/.snapshots/990/snapshot
0/1267        21.58GiB      1.92MiB   @/.snapshots/991/snapshot
0/1268        21.59GiB      8.55MiB   @/.snapshots/992/snapshot
1/0           32.19GiB     10.63GiB   <0 member qgroups>
255/610       16.00KiB     16.00KiB   <0 member qgroups>



```
Apr 27 14:48:16 steamdeck.lan kwin_wayland[3066]: kwin_wayland_drm: Pageflip timed out! This is a kernel bug
Apr 27 14:48:21 steamdeck.lan kwin_wayland[3066]: kwin_wayland_drm: Pageflip timed out! This is a kernel bug
Apr 27 14:48:26 steamdeck.lan kwin_wayland[3066]: kwin_wayland_drm: Pageflip timed out! This is a kernel bug
Apr 27 14:48:30 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_surrounding_text(co>
Apr 27 14:48:30 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_surrounding_text(co>
Apr 27 14:48:30 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_preferred_language(>
Apr 27 14:48:30 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_content_type(uint32>
Apr 27 14:48:30 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_commit_state(uint32>
Apr 27 14:48:35 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_surrounding_text(co>
Apr 27 14:48:35 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_surrounding_text(co>
Apr 27 14:48:35 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_preferred_language(>
Apr 27 14:48:35 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_content_type(uint32>
Apr 27 14:48:35 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_commit_state(uint32>
Apr 27 14:48:45 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_surrounding_text(co>
Apr 27 14:48:45 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_surrounding_text(co>
Apr 27 14:48:45 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_preferred_language(>
Apr 27 14:48:45 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_content_type(uint32>
Apr 27 14:48:45 steamdeck.lan maliit-keyboard[3157]: maliit.connection.wayland: virtual void Maliit::Wayland::InputMethodContext::zwp_input_method_context_v1_commit_state(uint32>
Apr 27 14:48:59 steamdeck.lan kwin_wayland[3066]: kwin_wayland_drm: Pageflip timed out! This is a kernel bug
Apr 27 14:49:04 steamdeck.lan kwin_wayland[3066]: kwin_wayland_drm: Pageflip timed out! This is a kernel bug
Apr 27 14:49:09 steamdeck.lan kwin_wayland[3066]: kwin_wayland_drm: Pageflip timed out! This is a kernel bug
```
Comment 1 ted chang 2024-04-28 16:42:13 UTC
Related discussions

https://github.com/pop-os/default-settings/pull/149

I do not know which default should be better for the end user. It is obvious that none stops the world which isn't good for interactivity.
Comment 2 ted chang 2024-04-29 09:37:22 UTC
Created attachment 874545 [details]
dmesg-kyber

Apr 29 02:31:27 steamdeck.lan kwin_wayland[3186]: kwin_libinput: Libinput: event18 - Lenovo TrackPoint Keyboard II: client bug: event processing lagging behind by 98ms, your system is too slow
Comment 3 ted chang 2024-04-29 09:39:07 UTC
Apr 29 02:31:27 steamdeck.lan kwin_wayland[3186]: kwin_libinput: Libinput: event18 - Lenovo TrackPoint Keyboard II: client bug: event processing lagging behind by 98ms, your system is too slow


With kyber, stop the world pauses still happen but it doesn't reach a full minute. Improvement but it doesn't solve the issue yet. Kwin does not complain about pageflip, but it does complain about input.
Comment 4 ted chang 2024-04-29 09:40:55 UTC
# 3. For "real" multiqueue devices, the kernel defaults to no IO scheduling
# Uncomment this (and select your scheduler) if you need an IO scheduler for them
TEST=="%S%p/mq/1", ATTR{queue/scheduler}="kyber", GOTO="scheduler_end"

# 4. BFQ scheduler for every device (uncomment if you need ionice or blk-cgroup features)
# ATTR{queue/scheduler}="bfq", GOTO="scheduler_end"

# 5. mq-deadline is the kernel default for devices with just one hardware queue
# ATTR{queue/scheduler}="mq-deadline"

# --- EDIT ABOVE HERE after copying to /etc/udev/rules.d ---
LABEL="scheduler_end"
doof@steamdeck:~> cat /sys/block/nvme0n1/queue/scheduler
none mq-deadline [kyber] bfq