Re: [PATCHSET v5 0/12] Add support for async buffered reads

Sedat Dilek
2020-05-30T13:36:48Z

> Time to experience with ZRAM :-).

I switched over from swap-file to zramswap.

And I can definitely say, my last kernel w/o your patchset does not
show the symptoms.

# cat systemd-analyze-time_5.7.0-rc7-2-amd64-clang_2nd-try.txt
Startup finished in 6.129s (kernel) + 44.192s (userspace) = 50.322s
graphical.target reached after 44.168s in userspace

# cat systemd-analyze-blame_5.7.0-rc7-2-amd64-clang_2nd-try.txt
24.050s udisks2.service
23.711s accounts-daemon.service
18.615s dev-sdc2.device
17.119s polkit.service
16.980s avahi-daemon.service
16.879s NetworkManager.service
16.112s rtkit-daemon.service
15.126s switcheroo-control.service
15.117s wpa_supplicant.service
15.105s systemd-logind.service
14.475s NetworkManager-wait-online.service
14.258s smartmontools.service
13.161s zramswap.service
9.522s rsyslog.service
8.337s gpm.service
6.026s packagekit.service
5.871s ModemManager.service
5.746s networking.service
5.383s e2scrub_reap.service
3.960s systemd-udevd.service
3.396s apparmor.service
3.231s exim4.service
2.795s systemd-journal-flush.service
2.359s alsa-restore.service
2.186s systemd-rfkill.service
1.878s atd.service
1.164s keyboard-setup.service
1.098s bluetooth.service
1.089s systemd-tmpfiles-setup.service
1.021s pppd-dns.service
968ms systemd-backlight@backlight:intel_backlight.service
964ms upower.service
937ms binfmt-support.service
873ms systemd-modules-load.service
849ms systemd-sysusers.service
845ms systemd-journald.service
683ms systemd-timesyncd.service
676ms modprobe@drm.service
641ms systemd-udev-trigger.service
620ms dev-hugepages.mount
618ms dev-mqueue.mount
618ms sys-kernel-debug.mount
617ms sys-kernel-tracing.mount
501ms ifupdown-wait-online.service
434ms systemd-sysctl.service
419ms systemd-random-seed.service
413ms systemd-tmpfiles-setup-dev.service
405ms user@1000.service
389ms systemd-remount-fs.service
383ms console-setup.service
301ms kmod-static-nodes.service
181ms proc-sys-fs-binfmt_misc.mount
174ms systemd-update-utmp.service
85ms systemd-user-sessions.service
22ms user-runtime-dir@1000.service
19ms systemd-update-utmp-runlevel.service
5ms ifupdown-pre.service
4ms sys-fs-fuse-connections.mount

[ /etc/zramswap.conf ]

ZRAM_SIZE_PERCENT=20
# ZSTD support for ZRAM and ZSWAP requires Linux >= 5.7-rc+. -dileks
ZRAM_COMPRESSION_ALGO=zstd

[ /etc/fstab ]

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> || <mount point> || <type> || <options> || <dump> || <pass>
#
# Root-FS (here: /dev/sdc2)
UUID=<myUUID> / ext4 errors=remount-ro 0 1
# SWAP (here: /dev/zram0)
# Zram-based swap (compressed RAM block devices), for details see
zramswap.service and zramswap.conf

# dmesg | egrep 'zram|zswap'
[ 1.041958] zswap: loaded using pool zstd/zbud
[ 29.569355] zram: Added device: zram0
[ 29.581631] zram0: detected capacity change from 0 to 1647824896
[ 30.562279] Adding 1609200k swap on /dev/zram0. Priority:100
extents:1 across:1609200k SSFS

# cat /sys/devices/virtual/block/zram0/comp_algorithm
lzo lzo-rle lz4 lz4hc [zstd]

# swapon --show
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 1,5G 0B 100

# cat /proc/swaps
Filename Type Size Used Priority
/dev/zram0 partition 1609200 0 100

If you have any ideas let me know.

Ah, I see there is async-buffered.6.

- Sedat -

[1] https://aur.archlinux.org/packages/zramswap/
[2] https://aur.archlinux.org/cgit/aur.git/tree/zramswap.conf?h=zramswap
[3] https://aur.archlinux.org/cgit/aur.git/tree/zramswap.service?h=zramswap